diff --git a/unpacked.ttslua b/unpacked.ttslua index 93512c5f9..e69deb0c8 100644 --- a/unpacked.ttslua +++ b/unpacked.ttslua @@ -41,133 +41,313 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local NavigationOverlayApi = {} - local HANDLER_GUID = "797ede" + local GUIDReferenceApi = {} - -- Copies the visibility for the Navigation overlay - ---@param startColor String Color of the player to copy from - ---@param targetColor String Color of the targeted player - NavigationOverlayApi.copyVisibility = function(startColor, targetColor) - getObjectFromGUID(HANDLER_GUID).call("copyVisibility", { - startColor = startColor, - targetColor = targetColor + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 - -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) - ---@param playerColor String Color of the player to update the visibility for - NavigationOverlayApi.cycleVisibility = function(playerColor) - getObjectFromGUID(HANDLER_GUID).call("cycleVisibility", playerColor) - end - - return NavigationOverlayApi + return GUIDReferenceApi end end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi end end) +__bundle_register("core/SoundCubeApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local SoundCubeApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + -- this table links the name of a trigger effect to its index + local soundIndices = { + ["Vacuum"] = 0, + ["Deep Bell"] = 1, + ["Dark Souls"] = 2 + } + + local function playTriggerEffect(index) + local SoundCube = guidReferenceApi.getObjectByOwnerAndType("Mythos", "SoundCube") + SoundCube.AssetBundle.playTriggerEffect(index) + end + + -- plays the by name requested sound + ---@param soundName String Name of the sound to play + SoundCubeApi.playSoundByName = function(soundName) + playTriggerEffect(soundIndices[soundName]) + end + + return SoundCubeApi +end +end) +__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + -- local function to call the token arranger, if it is on the table + ---@param functionName String Name of the function to cal + ---@param argument Variant 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("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local NavigationOverlayApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getNOHandler() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "NavigationOverlayHandler") + end + + -- Copies the visibility for the Navigation overlay + ---@param startColor String Color of the player to copy from + ---@param targetColor String Color of the targeted player + NavigationOverlayApi.copyVisibility = function(startColor, targetColor) + getNOHandler().call("copyVisibility", { + startColor = startColor, + targetColor = targetColor + }) + end + + -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) + ---@param playerColor String Color of the player to update the visibility for + NavigationOverlayApi.cycleVisibility = function(playerColor) + getNOHandler().call("cycleVisibility", playerColor) + end + + -- loads the specified camera for a player + ---@param player TTSPlayerInstance Player whose camera should be moved + ---@param camera Variant If number: Index of the camera view to load | If string: Color of the playermat to swap to + NavigationOverlayApi.loadCamera = function(player, camera) + getNOHandler().call("loadCameraFromApi", { + player = player, + camera = camera + }) + end + + return NavigationOverlayApi +end +end) +__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local CHAOS_TOKEN_NAMES = { + ["Elder Sign"] = true, + ["+1"] = true, + ["0"] = true, + ["-1"] = true, + ["-2"] = true, + ["-3"] = true, + ["-4"] = true, + ["-5"] = true, + ["-6"] = true, + ["-7"] = true, + ["-8"] = true, + ["Skull"] = true, + ["Cultist"] = true, + ["Tablet"] = true, + ["Elder Thing"] = true, + ["Auto-fail"] = true, + ["Bless"] = true, + ["Curse"] = true, + ["Frost"] = true + } + + local TokenChecker = {} + + -- returns true if the passed object is a chaos token (by name) + TokenChecker.isChaosToken = function(obj) + if CHAOS_TOKEN_NAMES[obj.getName()] then + return true + else + return false + end + end + + return TokenChecker +end +end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -285,15 +465,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -308,7 +483,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -326,13 +501,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -366,16 +543,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -388,9 +566,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -470,7 +650,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -503,8 +683,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -516,7 +696,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -531,19 +711,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -566,22 +744,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -601,13 +778,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -643,7 +819,6 @@ do local row = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x - 1 + 0.55 * row, pos.y, pos.z - 1.4 - 0.55 * column)) end - return cluePositions end @@ -657,12 +832,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -694,423 +867,425 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, - type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false - }) - end - return TokenManager end end) -__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenSpawnTracker = { } + local OptionPanelApi = {} - local SPAWN_TRACKER_GUID = "e3ffc9" - - TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) end - TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") end - TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") - end - - TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") - end - - TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") - end - - return TokenSpawnTracker -end -end) -__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local TokenArrangerApi = {} - - -- local function to call the token arranger, if it is on the table - ---@param functionName String Name of the function to cal - ---@param argument Variant Parameter to pass - local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] - if tokenArranger ~= nil then - tokenArranger.call(functionName, argument) - end - end - - -- updates the token modifiers with the provided data - ---@param tokenData 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 MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) - end - - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { 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) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi + return OptionPanelApi end end) __bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local MythosAreaApi = {} - local MYTHOS_AREA_GUID = "9f334f" + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end -- returns the chaos token metadata (if provided through scenario reference card) MythosAreaApi.returnTokenData = function() - return getObjectFromGUID(MYTHOS_AREA_GUID).call("returnTokenData") + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) end return MythosAreaApi end end) -__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local CHAOS_TOKEN_NAMES = { - ["Elder Sign"] = true, - ["+1"] = true, - ["0"] = true, - ["-1"] = true, - ["-2"] = true, - ["-3"] = true, - ["-4"] = true, - ["-5"] = true, - ["-6"] = true, - ["-7"] = true, - ["-8"] = true, - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, - ["Auto-fail"] = true, - ["Bless"] = true, - ["Curse"] = true, - ["Frost"] = true - } - - local TokenChecker = {} - - -- returns true if the passed object is a chaos token (by name) - TokenChecker.isChaosToken = function(obj) - if CHAOS_TOKEN_NAMES[obj.getName()] then - return true - else - return false - end - end - - return TokenChecker -end -end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/Global") end) __bundle_register("core/Global", function(require, _LOADED, __bundle_register, __bundle_modules) +local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local guidReferenceApi = require("core/GUIDReferenceApi") +local mythosAreaApi = require("core/MythosAreaApi") +local navigationOverlayApi = require("core/NavigationOverlayApi") +local playAreaApi = require("core/PlayAreaApi") +local playmatApi = require("playermat/PlaymatApi") +local searchLib = require("util/SearchLib") +local soundCubeApi = require("core/SoundCubeApi") +local tokenArrangerApi = require("accessories/TokenArrangerApi") +local tokenChecker = require("core/token/TokenChecker") +local tokenManager = require("core/token/TokenManager") + --------------------------------------------------------- -- general setup --------------------------------------------------------- -ENCOUNTER_DECK_POS = {-3.93, 1, 5.76} -ENCOUNTER_DECK_DISCARD_POSITION = {-3.85, 1, 10.38} - --- optionPanel data -optionPanel = {} - --- GUID of data helper -DATA_HELPER_GUID = "708279" +ENCOUNTER_DECK_POS = { -3.93, 1, 5.76 } +ENCOUNTER_DECK_DISCARD_POSITION = { -3.85, 1, 10.38 } -- GUIDs that will not be interactable (e.g. parts of the table) local NOT_INTERACTABLE = { "6161b4", -- Decoration-Map - "721ba2", -- PlayArea "9f334f", -- MythosArea "463022", -- Panel behind tentacle stand "f182ee", -- InvestigatorCount @@ -1122,27 +1297,38 @@ local NOT_INTERACTABLE = { } local chaosTokens = {} -local chaosTokensLastMat = nil -local IS_RESHUFFLING = false +local chaosTokensLastMatGUID = nil + +-- chaos token stat tracking +local tokenDrawingStats = { ["Overall"] = {} } + local bagSearchers = {} -local MAT_COLORS = {"White", "Orange", "Green", "Red"} +local MAT_COLORS = { "White", "Orange", "Green", "Red" } local hideTitleSplashWaitFunctionId = nil -local playmatApi = require("playermat/PlaymatApi") -local tokenManager = require("core/token/TokenManager") -local playAreaAPI = require("core/PlayAreaApi") -local soundCubeApi = require("core/SoundCubeApi") -local mythosAreaApi = require("core/MythosAreaApi") -local tokenArrangerApi = require("accessories/TokenArrangerApi") -local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") -local navigationOverlayApi = require("core/NavigationOverlayApi") -local tokenChecker = require("core/token/TokenChecker") -- online functionality related variables -local MOD_VERSION = "3.2.0" +local MOD_VERSION = "3.5.0" local SOURCE_REPO = 'https://raw.githubusercontent.com/chr1z93/loadable-objects/main' -local library, requestObj, modMeta, notificationVisible +local library, requestObj, modMeta local acknowledgedUpgradeVersions = {} +local contentToShow = "campaigns" +local currentListItem = 1 +local xmlVisibility = { + downloadWindow = false, + optionPanel = false, + playAreaGallery = false, + updateNotification = false +} +local tabIdTable = { + tab1 = "campaigns", + tab2 = "scenarios", + tab3 = "fanmadeCampaigns", + tab4 = "fanmadeScenarios", + tab5 = "fanmadePlayerCards" +} +-- optionPanel data +optionPanel = {} local LANGUAGES = { { code = "zh_CN", name = "简体中文" }, { code = "zh_TW", name = "繁體中文" }, @@ -1152,6 +1338,11 @@ local LANGUAGES = { { code = "fr", name = "Français" }, { code = "it", name = "Italiano" } } +local RESOURCE_OPTIONS = { + "enabled", + "custom", + "disabled" +} --------------------------------------------------------- -- data for tokens @@ -1187,32 +1378,26 @@ ID_URL_MAP = { ['frost'] = {name = "Frost", url = 'http://cloud-3.steamusercontent.com/ugc/1858293462583104677/195F93C063A8881B805CE2FD4767A9718B27B6AE/'} } ---------------------------------------------------------- --- data for chaos token stat tracker ---------------------------------------------------------- - -local MAT_GUID_TO_COLOR = { - ["Overall"] = "Overall", - ["8b081b"] = "White", - ["bd0ff4"] = "Orange", - ["383d8b"] = "Green", - ["0840d5"] = "Red" -} - -local tokenDrawingStats = { - ["Overall"] = {}, - ["8b081b"] = {}, - ["bd0ff4"] = {}, - ["383d8b"] = {}, - ["0840d5"] = {} -} - --------------------------------------------------------- -- general code --------------------------------------------------------- -- saving state of optionPanel to restore later -function onSave() return JSON.encode({ optionPanel = optionPanel, acknowledgedUpgradeVersions = acknowledgedUpgradeVersions }) end +function onSave() + local chaosTokensGUID = {} + for _, obj in ipairs(chaosTokens) do + if obj ~= nil then + table.insert(chaosTokensGUID, obj.getGUID()) + end + end + + return JSON.encode({ + optionPanel = optionPanel, + acknowledgedUpgradeVersions = acknowledgedUpgradeVersions, + chaosTokensLastMatGUID = chaosTokensLastMatGUID, + chaosTokensGUID = chaosTokensGUID + }) +end function onLoad(savedData) if savedData then @@ -1226,6 +1411,12 @@ function onLoad(savedData) applyOptionPanelChange("useResourceCounters", true) applyOptionPanelChange("showTokenArranger", true) applyOptionPanelChange("showChaosBagManager", true) + + -- restore saved state for drawn chaos tokens + for _, guid in ipairs(loadedData.chaosTokensGUID or {}) do + table.insert(chaosTokens, getObjectFromGUID(guid)) + end + chaosTokensLastMatGUID = loadedData.chaosTokensLastMatGUID else print("Saved state could not be found!") end @@ -1235,25 +1426,21 @@ function onLoad(savedData) if obj ~= nil then obj.interactable = false end end - resetChaosTokenStatTracker() getModVersion() math.randomseed(os.time()) + + -- initialization of loadable objects library (delay to let Navigation Overlay build) + Wait.time(function() + WebRequest.get(SOURCE_REPO .. '/library.json', libraryDownloadCallback) + end, 1) end ---------------------------------------------------------- --- encounter card drawing ---------------------------------------------------------- - -function isDeck(x) return x.tag == 'Deck' end - -function isCardOrDeck(x) return x.tag == 'Card' or x.tag == 'Deck' end - -- Event hook for any object search. When chaos tokens are manipulated while the chaos bag -- container is being searched, a TTS bug can cause tokens to duplicate or vanish. We lock the -- chaos bag during search operations to avoid this. function onObjectSearchStart(object, playerColor) - chaosbag = findChaosBag() - if object == chaosbag then + local chaosBag = findChaosBag() + if object == chaosBag then bagSearchers[playerColor] = true end end @@ -1262,8 +1449,8 @@ end -- container is being searched, a TTS bug can cause tokens to duplicate or vanish. We lock the -- chaos bag during search operations to avoid this. function onObjectSearchEnd(object, playerColor) - chaosbag = findChaosBag() - if object == chaosbag then + local chaosBag = findChaosBag() + if object == chaosBag then bagSearchers[playerColor] = nil end end @@ -1272,79 +1459,37 @@ end -- This requires the try method as cards won't exist any more after they enter a deck, so the lines -- can't be cleared. function tryObjectEnterContainer(container, object) - playAreaAPI.tryObjectEnterContainer(container, object) + playAreaApi.tryObjectEnterContainer(container, object) return true end -function drawEncountercard(color) --[[ Parameter Player color ]] - local items = findInRadiusBy(ENCOUNTER_DECK_POS, 4, isCardOrDeck) - if #items > 0 then - for _, v in ipairs(items) do - if v.tag == 'Deck' then - v.deal(1, color) - return - end - end - -- we didn't find the deck so just pull the first thing we did find - items[1].deal(1, color) - else - -- nothing here, time to reshuffle - reshuffleEncounterDeck(color) +-- TTS event for objects that enter zones +-- used to detect the "token discard zones" beneath the hand zones +function onObjectEnterZone(zone, enteringObj) + if zone.getName() ~= "TokenDiscardZone" then return end + if tokenChecker.isChaosToken(enteringObj) then return end + + if enteringObj.type == "Tile" and enteringObj.getMemo() and enteringObj.getLock() == false then + local matcolor = playmatApi.getMatColorByPosition(enteringObj.getPosition()) + local trash = guidReferenceApi.getObjectByOwnerAndType(matcolor, "Trash") + trash.putObject(enteringObj) end end -function actualEncounterCardDraw(card, params) - local position = params[1] - local rotation = params[2] - local alwaysFaceUp = params[3] - local faceUpRotation = 0 - if not alwaysFaceUp then - local metadata = JSON.decode(card.getGMNotes()) or {} - if metadata.hidden or getObjectFromGUID(DATA_HELPER_GUID).call('checkHiddenCard', card.getName()) then - faceUpRotation = 180 +-- handle card drawing via number typing for multihanded gameplay +-- (and additionally allow Norman Withers to draw multiple cards via number) +function onObjectNumberTyped(hoveredObject, playerColor, number) + -- only continue for decks or cards + if hoveredObject.type ~= "Deck" and hoveredObject.type ~= "Card" then return end + + -- check whether the hovered object is part of a players draw objects + for _, color in ipairs(playmatApi.getUsedMatColors()) do + local deckAreaObjects = playmatApi.getDeckAreaObjects(color) + if deckAreaObjects.topCard == hoveredObject or deckAreaObjects.draw == hoveredObject then + playmatApi.drawCardsWithReshuffle(color, number) + return true end end - card.setPositionSmooth(position, false, false) - card.setRotationSmooth({0, rotation.y, faceUpRotation}, false, false) -end - -function reshuffleEncounterDeck(color) - -- finishes moving the deck back and draws a card - local function move(deck) - deck.setPositionSmooth({ENCOUNTER_DECK_POS[1], ENCOUNTER_DECK_POS[2] + 2, ENCOUNTER_DECK_POS[3]}, false, true) - deck.deal(1, color) - Wait.time(function() IS_RESHUFFLING = false end, 1) - end - -- bail out if we're mid reshuffle - if IS_RESHUFFLING then return end - local discarded = findInRadiusBy(ENCOUNTER_DECK_DISCARD_POSITION, 4, isDeck) - if #discarded > 0 then - IS_RESHUFFLING = true - local deck = discarded[1] - if not deck.is_face_down then deck.flip() end - deck.shuffle() - Wait.time(|| move(deck), 0.3) - else - printToAll("Couldn't find encounter discard pile to reshuffle.", {1, 0, 0}) - end -end - -function findInRadiusBy(pos, radius, filter) - local objList = Physics.cast({ - origin = pos, - direction = {0, 1, 0}, - type = 2, - size = {radius, radius, radius}, - max_distance = 0 - }) - - local filteredList = {} - for _, obj in ipairs(objList) do - if filter and filter(obj.hit_object) then - table.insert(filteredList, obj.hit_object) - end - end - return filteredList end --------------------------------------------------------- @@ -1353,15 +1498,15 @@ end -- checks scripting zone for chaos bag (also called by a lot of objects!) function findChaosBag() - local chaosbag_zone = getObjectFromGUID("83ef06") + local chaosBagZone = guidReferenceApi.getObjectByOwnerAndType("Mythos", "ChaosBagZone") -- error handling: scripting zone not found - if chaosbag_zone == nil then + if chaosBagZone == nil then printToAll("Zone for chaos bag detection couldn't be found.", "Red") return end - for _, item in ipairs(chaosbag_zone.getObjects()) do + for _, item in ipairs(chaosBagZone.getObjects()) do if item.getDescription() == "Chaos Bag" then return item end @@ -1372,12 +1517,25 @@ function findChaosBag() end function returnChaosTokens() + local chaosBag = findChaosBag() for _, token in pairs(chaosTokens) do - if token ~= nil then chaosbag.putObject(token) end + if token ~= nil then chaosBag.putObject(token) end end chaosTokens = {} end +-- returns a single chaos token to the bag and calls respective functions +function returnChaosTokenToBag(token) + local name = token.getName() + local guid = token.getGUID() + local chaosBag = findChaosBag() + chaosBag.putObject(token) + tokenArrangerApi.layout() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.releasedToken(name, guid) + end +end + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the -- contents of the bag should check this method before doing so. @@ -1397,31 +1555,30 @@ end function drawChaosToken(params) if not canTouchChaosTokens() then return end - local mat = params[1] - local tokenOffset = params[2] - local isRightClick = params[3] - chaosbag = findChaosBag() + local tokenOffset = {-1.55, 0.25, -0.58} + local matGUID = params.mat.getGUID() -- return token(s) on other playmat first - if chaosTokensLastMat ~= nil and chaosTokensLastMat ~= mat and #chaosTokens ~= 0 then + if chaosTokensLastMatGUID ~= nil and chaosTokensLastMatGUID ~= matGUID and #chaosTokens ~= 0 then returnChaosTokens() - chaosTokensLastMat = nil + chaosTokensLastMatGUID = nil return end - chaosTokensLastMat = mat + chaosTokensLastMatGUID = matGUID -- if we have left clicked and have no tokens OR if we have right clicked - if isRightClick or #chaosTokens == 0 then - if #chaosbag.getObjects() == 0 then return end - chaosbag.shuffle() + if params.drawAdditional or #chaosTokens == 0 then + local chaosBag = findChaosBag() + if #chaosBag.getObjects() == 0 then return end + chaosBag.shuffle() -- add the token to the list, compute new position based on list length tokenOffset[1] = tokenOffset[1] + (0.17 * #chaosTokens) - local token = chaosbag.takeObject({ + local token = chaosBag.takeObject({ index = 0, - position = mat.positionToWorld(tokenOffset), - rotation = mat.getRotation() + position = params.mat.positionToWorld(tokenOffset), + rotation = params.mat.getRotation() }) -- get data for token description @@ -1431,9 +1588,8 @@ function drawChaosToken(params) token.setDescription(specificData.description or "") -- track the chaos token (for stat tracker and future returning) - trackChaosToken(name, mat.getGUID()) + trackChaosToken(name, matGUID) chaosTokens[#chaosTokens + 1] = token - return else returnChaosTokens() end @@ -1455,6 +1611,10 @@ end --------------------------------------------------------- function trackChaosToken(tokenName, matGUID) + -- initialize tables + if not tokenDrawingStats[matGUID] then tokenDrawingStats[matGUID] = {} end + + -- increase stats by 1 tokenDrawingStats["Overall"][tokenName] = (tokenDrawingStats["Overall"][tokenName] or 0) + 1 tokenDrawingStats[matGUID][tokenName] = (tokenDrawingStats[matGUID][tokenName] or 0) + 1 end @@ -1464,8 +1624,8 @@ function handleStatTrackerClick(_, _, isRightClick) if isRightClick then resetChaosTokenStatTracker() else - local squidKing = "Nobody" - local maxSquid = 0 + local squidKing = "Nobody" + local maxSquid = 0 local foundAnyStats = false for key, personalStats in pairs(tokenDrawingStats) do @@ -1475,10 +1635,12 @@ function handleStatTrackerClick(_, _, isRightClick) playerColor = "White" playerName = "Overall" else - playerColor = playmatApi.getPlayerColor(MAT_GUID_TO_COLOR[key]) + -- get mat color + local matColor = playmatApi.getMatColorByPosition(getObjectFromGUID(key).getPosition()) + playerColor = playmatApi.getPlayerColor(matColor) playerName = Player[playerColor].steam_name or playerColor - local playerSquidCount = personalStats["Auto-fail"] + local playerSquidCount = personalStats["Auto-fail"] or 0 if playerSquidCount > maxSquid then squidKing = playerName maxSquid = playerSquidCount @@ -1495,8 +1657,8 @@ function handleStatTrackerClick(_, _, isRightClick) if totalCount > 0 then foundAnyStats = true printToAll("------------------------------") - printToAll(playerName .. " Stats", playerColor) - + printToAll(playerName .. " Stats", playerColor) + for tokenName, value in pairs(personalStats) do if value ~= 0 then printToAll(tokenName .. ': ' .. tostring(value)) @@ -1509,7 +1671,7 @@ function handleStatTrackerClick(_, _, isRightClick) -- detect if any player drew tokens if foundAnyStats then printToAll("------------------------------") - printToAll(squidKing .. " is an auto-fail magnet.", {255, 0, 0}) + printToAll(squidKing .. " is an auto-fail magnet.", { 255, 0, 0 }) else printToAll("No tokens have been drawn yet.", "Yellow") end @@ -1518,12 +1680,7 @@ end -- resets the count for each token to 0 function resetChaosTokenStatTracker() - for key, _ in pairs(tokenDrawingStats) do - tokenDrawingStats[key] = {} - for _, token in pairs(ID_URL_MAP) do - tokenDrawingStats[key][token.name] = 0 - end - end + tokenDrawingStats = { ["Overall"] = {} } end --------------------------------------------------------- @@ -1531,18 +1688,19 @@ end --------------------------------------------------------- -- called for button creation on the difficulty selectors ----@param object object Usually "self" ----@param key string Name of the scenario +---@param args Table Parameters for this function: +-- object TTSObject Usually "self" +-- key String Name of the scenario function createSetupButtons(args) local data = getDataValue('modeData', args.key) if data ~= nil then local buttonParameters = {} buttonParameters.function_owner = args.object - buttonParameters.position = {0, 0.1, -0.15} - buttonParameters.scale = {0.47, 1, 0.47} + buttonParameters.position = { 0, 0.1, -0.15 } + buttonParameters.scale = { 0.47, 1, 0.47 } buttonParameters.height = 200 buttonParameters.width = 1150 - buttonParameters.color = {0.87, 0.8, 0.7} + buttonParameters.color = { 0.87, 0.8, 0.7 } if data.easy ~= nil then buttonParameters.label = "Easy" @@ -1581,9 +1739,10 @@ function createSetupButtons(args) end -- called for adding chaos tokens ----@param object object Usually "self" ----@param key string Name of the scenario ----@param mode string difficulty (e.g. "hard" or "expert") +---@param args Table Parameters for this function: +-- object object Usually "self" +-- key string Name of the scenario +-- mode string difficulty (e.g. "hard" or "expert") function fillContainer(args) local data = getDataValue('modeData', args.key) if data == nil then return end @@ -1625,7 +1784,8 @@ function fillContainer(args) end function getDataValue(storage, key) - local data = getObjectFromGUID(DATA_HELPER_GUID).getTable(storage) + local DATA_HELPER = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") + local data = DATA_HELPER.getTable(storage) if data ~= nil then local value = data[key] if value ~= nil then @@ -1653,14 +1813,20 @@ function createChaosTokenNameLookupTable() return namesToIds end +-- returns the currently drawn chaos tokens +---@api ChaosBagApi +function getChaosTokensinPlay() + return chaosTokens +end + -- returns a Table List of chaos token ids in the current chaos bag ----@api chaosbag/ChaosBagApi +---@api ChaosBag / ChaosBagApi function getChaosBagState() local tokens = {} local invertedTable = createChaosTokenNameLookupTable() - local chaosbag = findChaosBag() + local chaosBag = findChaosBag() - for _, v in ipairs(chaosbag.getObjects()) do + for _, v in ipairs(chaosBag.getObjects()) do local id = invertedTable[v.name] if id then table.insert(tokens, id) @@ -1670,17 +1836,16 @@ function getChaosBagState() end return tokens - end -- respawns the chaos bag with a new state of tokens ---@param tokenList Table List of chaos token ids ----@api chaosbag/ChaosBagApi +---@api ChaosBag / ChaosBagApi function setChaosBagState(tokenList) if not canTouchChaosTokens() then return end - local chaosbag = findChaosBag() - local chaosbagData = chaosbag.getData() + local chaosBag = findChaosBag() + local chaosBagData = chaosBag.getData() local reserveData = getObjectFromGUID("106418").getData() local tokenCache = {} local containedObjects = {} @@ -1697,16 +1862,16 @@ function setChaosBagState(tokenList) end -- overwrite chaos bag content and respawn it - chaosbagData.ContainedObjects = containedObjects - chaosbag.destruct() - spawnObjectData({data = chaosbagData}) + chaosBagData.ContainedObjects = containedObjects + chaosBag.destruct() + spawnObjectData({ data = chaosBagData }) -- remove tokens that are still in play for _, token in pairs(chaosTokens) do if token ~= nil then token.destruct() end end chaosTokens = {} - chaosTokensLastMat = nil + chaosTokensLastMatGUID = nil -- reset bless / curse manager blessCurseManagerApi.removeTakenTokensAndReset() @@ -1720,7 +1885,7 @@ function spawnChaosToken(id) if not canTouchChaosTokens() then return end id = id:lower() - local chaosbag = findChaosBag() + local chaosBag = findChaosBag() local url = ID_URL_MAP[id].url or "" if url ~= "" then @@ -1728,10 +1893,10 @@ function spawnChaosToken(id) type = 'Custom_Tile', position = { 0.49, 3, 0 }, scale = { 0.81, 1.0, 0.81 }, - rotation = {0, 270, 0}, + rotation = { 0, 270, 0 }, callback_function = function(obj) obj.setName(ID_URL_MAP[id].name) - chaosbag.putObject(obj) + chaosBag.putObject(obj) tokenArrangerApi.layout() end }).setCustomObject({ @@ -1748,10 +1913,10 @@ function removeChaosToken(id) if not canTouchChaosTokens() then return end local tokens = {} - local chaosbag = findChaosBag() + local chaosBag = findChaosBag() local name = ID_URL_MAP[id].name - for _, v in ipairs(chaosbag.getObjects()) do + for _, v in ipairs(chaosBag.getObjects()) do if v.name == name then table.insert(tokens, v.guid) end end @@ -1761,7 +1926,7 @@ function removeChaosToken(id) return end - chaosbag.takeObject({ + chaosBag.takeObject({ guid = tokens[1], smooth = false, callback_function = function(obj) @@ -1776,15 +1941,15 @@ end function emptyChaosBag() if not canTouchChaosTokens() then return end - local chaosbag = findChaosBag() - for _, object in ipairs(chaosbag.getObjects()) do - chaosbag.takeObject({callback_function = function(item) item.destruct() end}) + local chaosBag = findChaosBag() + for _, object in ipairs(chaosBag.getObjects()) do + chaosBag.takeObject({ callback_function = function(item) item.destruct() end }) end end -- returns all sealed tokens on cards to the chaos bag function releaseAllSealedTokens(playerColor) - local chaosbag = findChaosBag() + local chaosBag = findChaosBag() for _, obj in ipairs(getObjectsWithTag("CardThatSeals")) do obj.call("releaseAllTokens", playerColor) end @@ -1794,174 +1959,492 @@ end -- Content Importing and XML functions --------------------------------------------------------- -function onClick_refreshList() - local request = WebRequest.get(SOURCE_REPO .. '/library.json', completed_list_update) - requestObj = request - startLuaCoroutine(Global, 'downloadCoroutine') -end - -function onClick_select(player, params) - params = JSON.decode(urldecode(params)) - local url = SOURCE_REPO .. '/' .. params.url - local request = WebRequest.get(url, function (request) complete_obj_download(request, params) end ) - requestObj = request - startLuaCoroutine(Global, 'downloadCoroutine') -end - -function onClick_load() - UI.show('progress_display') - UI.hide('load_button') -end - -function onClick_toggleUi(player, title) - if title == "Navigation Overlay" then - navigationOverlayApi.cycleVisibility(player.color) - return - end - - UI.hide('optionPanel') - UI.hide('load_ui') - - -- when same button is clicked or close window button is pressed, don't open UI - if UI.getValue('title') ~= title and title ~= 'Hidden' then - UI.setValue('title', title) - - if title == "Options" then - UI.show('optionPanel') +-- forwards the requested content type to the update function and sets highlight to clicked tab +---@param tabId String Id of the clicked tab +function onClick_tab(_, _, tabId) + for listId, listContent in pairs(tabIdTable) do + if listId == tabId then + UI.setClass(listId, 'downloadTab activeTab') + contentToShow = listContent else - update_window_content(title) - UI.show('load_ui') + UI.setClass(listId, 'downloadTab') end - else - UI.setValue('title', "Hidden") end + currentListItem = 1 + updateDownloadItemList() +end + +-- click function for the items in the download window +-- updates backgroundcolor for row panel and fontcolor for list item +function onClick_select(_, _, identificationKey) + UI.setAttribute("panel" .. currentListItem, "color", "clear") + UI.setAttribute(contentToShow .. "_" .. currentListItem, "color", "white") + + -- parses the identification key (contentToShow_currentListItem) + if identificationKey then + contentToShow = nil + currentListItem = nil + for str in string.gmatch(identificationKey, "([^_]+)") do + if not contentToShow then + -- grab the first part to know the content type + contentToShow = str + else + -- get the index + currentListItem = tonumber(str) + break + end + end + end + + UI.setAttribute("panel" .. currentListItem, "color", "grey") + UI.setAttribute(contentToShow .. "_" .. currentListItem, "color", "black") + updatePreviewWindow() +end + +-- click function for the "Custom URL" button in the playarea image gallery +function onClick_customUrl(player) + onClick_toggleUi(_, "playareaGallery") + Wait.time(function() + player.showInputDialog("Enter a custom URL for the playarea image", "", function(newURL) + playAreaApi.updateSurface(newURL) + end) + end, 0.15) +end + +-- click function for the download button in the preview window +function onClick_download(player) + local params = library[contentToShow][currentListItem] + params.player = player + placeholder_download(params) +end + +-- the download button on the placeholder objects calls this to directly initiate a download +---@param params Table contains url and guid of replacement object +function placeholder_download(params) + local url = SOURCE_REPO .. '/' .. params.url + requestObj = WebRequest.get(url, function (request) contentDownloadCallback(request, params) end) + startLuaCoroutine(Global, 'downloadCoroutine') end function downloadCoroutine() + -- show progress bar + UI.setAttribute('download_progress', 'active', true) + + -- update progress bar while requestObj do UI.setAttribute('download_progress', 'percentage', requestObj.download_progress * 100) coroutine.yield(0) end + UI.setAttribute('download_progress', 'percentage', 100) + + -- wait 30 frames + for i = 1, 30 do + coroutine.yield(0) + end + + -- hide progress bar + UI.setAttribute('download_progress', 'active', false) + + -- hide download window + if xmlVisibility.downloadWindow then + xmlVisibility.downloadWindow = false + UI.hide('downloadWindow') + end return 1 end -function update_list(objects) - local ui = UI.getXmlTable() - local update_height = find_tag_with_id(ui, 'ui_update_height') - local update_children = find_tag_with_id(update_height.children, 'ui_update_point') +-- spawns a bag that contains every object from the library +function onClick_downloadAll() + broadcastToAll("Download initiated - this will take a few minutes!") - update_children.children = {} + -- hide download window + if xmlVisibility.downloadWindow then + xmlVisibility.downloadWindow = false + UI.hide('downloadWindow') + end - for _, v in ipairs(objects) do - local s = JSON.encode(v); - table.insert(update_children.children, - { tag = 'Text', - value = v.name, - attributes = { onClick = 'onClick_select(' .. urlencode(JSON.encode(v)) .. ')', alignment = 'MiddleLeft' } + startLuaCoroutine(Global, "coroutineDownloadAll") +end + +function coroutineDownloadAll() + local JSON = [[ + { + "Name": "Bag", + "Transform": { + "posX": {{POSX}}, + "posY": 2, + "posZ": -95, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1.0, + "scaleY": 1.0, + "scaleZ": 1.0 + }, + "Nickname": "{{NICKNAME}}", + "Bag": { + "Order": 0 + }, + "ContainedObjects": [ + ]] + + local posx = -45.0 + local downloadedItems = 0 + local skippedItems = 0 + + -- loop through the library to add content + for contentType, objectList in pairs(library) do + broadcastToAll("Downloading " .. contentType .. "...") + local contained = "" + for _, params in ipairs(objectList) do + local request = WebRequest.get(SOURCE_REPO .. '/' .. params.url) + local start = os.time() + while true do + if request.is_done then + contained = contained .. request.text .. "," + downloadedItems = downloadedItems + 1 + break + -- time-out if item can't be loaded in 5s + elseif request.is_error or (os.time() - start) > 5 then + skippedItems = skippedItems + 1 + break + end + coroutine.yield(0) + end + end + local JSONCopy = JSON + JSONCopy = JSONCopy .. contained .. "]}" + JSONCopy = JSONCopy:gsub("{{POSX}}", posx) + JSONCopy = JSONCopy:gsub("{{NICKNAME}}", contentType) + spawnObjectJSON({json = JSONCopy}) + posx = posx + 3 + end + + broadcastToAll(downloadedItems .. " objects downloaded.", "Green") + broadcastToAll(skippedItems .. " objects had a time-out / error.", "Orange") + return 1 +end + +-- spawns a placeholder box for the selected object +function onClick_spawnPlaceholder() + -- get object references + local item = library[contentToShow][currentListItem] + local dummy = guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlaceholderBoxDummy") + + -- error handling + if not item.boxsize or item.boxsize == "" or not item.boxart or item.boxart == "" then + print("Error loading object.") + return + end + + -- get data for placeholder + local spawnPos = {-39.5, 2, -87} + + local meshTable = { + big = "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj", + small = "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj", + wide = "http://cloud-3.steamusercontent.com/ugc/2278324073260846176/33EFCAF30567F8756F665BE5A2A6502E9C61C7F7/" + } + + local scaleTable = { + big = {1.00, 0.14, 1.00}, + small = {2.21, 0.46, 2.42}, + wide = {2.00, 0.11, 1.69} + } + + local placeholder = spawnObject({ + type = "Custom_Model", + position = spawnPos, + rotation = {0, 270, 0}, + scale = scaleTable[item.boxsize], + }) + + placeholder.setCustomObject({ + mesh = meshTable[item.boxsize], + diffuse = item.boxart, + material = 3 + }) + + placeholder.setColorTint({1, 1, 1, 71/255}) + placeholder.setName(item.name) + placeholder.setDescription("by " .. (item.author or "Unknown")) + placeholder.setGMNotes(item.url) + placeholder.setLuaScript(dummy.getLuaScript()) + Player.getPlayers()[1].pingTable(spawnPos) + + -- hide download window + if xmlVisibility.downloadWindow then + xmlVisibility.downloadWindow = false + UI.hide('downloadWindow') + end +end + +-- toggles the visibility of the respective UI +---@param player LuaPlayer Player that triggered this +---@param title String Name of the UI to toggle +function onClick_toggleUi(player, title) + if title == "Navigation Overlay" then + navigationOverlayApi.cycleVisibility(player.color) + return + -- hide the playareaGallery if visible + elseif title == "downloadWindow" and xmlVisibility.playAreaGallery then + onClick_toggleUi(_, "playAreaGallery") + -- hide the downloadWindow if visible + elseif title == "playAreaGallery" and xmlVisibility.downloadWindow then + onClick_toggleUi(_, "downloadWindow") + end + + if xmlVisibility[title] then + -- small delay to allow button click sounds to play + Wait.time(function() UI.hide(title) end, 0.1) + else + UI.show(title) + end + xmlVisibility[title] = not xmlVisibility[title] +end + +-- forwards the call to the onClick function +function togglePlayAreaGallery() + onClick_toggleUi(_, "playAreaGallery") +end + +-- updates the preview window +function updatePreviewWindow() + local item = library[contentToShow][currentListItem] + local tempImage = "http://cloud-3.steamusercontent.com/ugc/2115061845788345842/2CD6ABC551555CCF58F9D0DDB7620197BA398B06/" + + -- set default image if not defined + if item.boxsize == nil or item.boxsize == "" or item.boxart == nil or item.boxart == "" then + item.boxsize = "big" + item.boxart = "http://cloud-3.steamusercontent.com/ugc/762723517667628371/18438B0A0045038A7099648AA3346DFCAA267C66/" + end + + UI.setValue("previewTitle", item.name) + UI.setValue("previewAuthor", "by " .. (item.author or "- Author not found -")) + UI.setValue("previewDescription", item.description or "- Description not found -") + + -- update mask according to size (hardcoded values to align image in mask) + local maskData = {} + if item.boxsize == "big" then + maskData = { + image = "box-cover-mask-big", + width = "870", + height = "435", + offsetXY = "154 60" + } + elseif item.boxsize == "small" then + maskData = { + image = "box-cover-mask-small", + width = "792", + height = "594", + offsetXY = "135 13" + } + elseif item.boxsize == "wide" then + maskData = { + image = "box-cover-mask-wide", + width = "756", + height = "630", + offsetXY = "-190 -70" + } + end + + -- loading empty image as placeholder until real image is loaded + UI.setAttribute("previewArtImage", "image", tempImage) + + -- insert the image itself + UI.setAttribute("previewArtImage", "image", item.boxart) + UI.setAttributes("previewArtMask", maskData) +end + +-- formats the json response from the webrequest into a key-value lua table +-- strips the prefix from the community content items +function formatLibrary(json_response) + library = {} + library["campaigns"] = json_response.campaigns + library["scenarios"] = json_response.scenarios + library["extras"] = json_response.extras + library["fanmadeCampaigns"] = {} + library["fanmadeScenarios"] = {} + library["fanmadePlayerCards"] = {} + + for _, item in ipairs(json_response.community) do + local identifier = nil + for str in string.gmatch(item.name, "([^:]+)") do + if not identifier then + -- grab the first part to know the content type + identifier = str + else + -- update the name without the content type + item.name = str + break + end + end + + if identifier == "Fan Investigators" then + table.insert(library["fanmadePlayerCards"], item) + elseif identifier == "Fan Campaign" then + table.insert(library["fanmadeCampaigns"], item) + elseif identifier == "Fan Scenario" then + table.insert(library["fanmadeScenarios"], item) + end + end +end + +-- updates the window content to the requested content +function updateDownloadItemList() + if not library then return end + + -- addition of list items according to library file + local globalXml = UI.getXmlTable() + local contentList = getXmlTableElementById(globalXml, 'contentList') + + contentList.children = {} + for i, v in ipairs(library[contentToShow]) do + table.insert(contentList.children, + { + tag = "Panel", + attributes = { id = "panel" .. i }, + children = { + tag = 'Text', + value = v.name, + attributes = { + id = contentToShow .. "_" .. i, + onClick = 'onClick_select', + alignment = 'MiddleLeft' + } + } }) end - update_height.attributes.height = #(update_children.children) * 24 - UI.setXmlTable(ui) + contentList.attributes.height = #contentList.children * 27 + UI.setXmlTable(globalXml) + + -- select the first item + Wait.time(onClick_select, 0.2) end -function update_window_content(new_title) - if not library then return end +-- called after the webrequest of downloading an item +-- deletes the placeholder and spawns the downloaded item +function contentDownloadCallback(request, params) + requestObj = nil - if new_title == 'Campaigns' then - update_list(library.campaigns) - elseif new_title == 'Standalone Scenarios' then - update_list(library.scenarios) - elseif new_title == 'Investigators' then - update_list(library.investigators) - elseif new_title == 'Community Content' then - update_list(library.community) - elseif new_title == 'Extras' then - update_list(library.extras) - else - update_list({}) - end -end - -function complete_obj_download(request, params) - assert(request.is_done) + -- error handling if request.is_error or request.response_code ~= 200 then - print('error: ' .. request.error) - else - if pcall(function() - local replaced_object - pcall(function() - if params.replace then - replaced_object = getObjectFromGUID(params.replace) + print('Error: ' .. request.error) + return + end + + -- initiate content spawning + local spawnTable = { json = request.text } + if params.replace then + local replacedObject = getObjectFromGUID(params.replace) + if replacedObject then + spawnTable.position = replacedObject.getPosition() + spawnTable.rotation = replacedObject.getRotation() + spawnTable.scale = replacedObject.getScale() + destroyObject(replacedObject) + end + end + + -- if position is undefined, get empty position + if not spawnTable.position then + spawnTable.rotation = { 0, 270, 0} + + local pos = getValidSpawnPosition() + if pos then + spawnTable.position = pos + else + broadcastToAll("Please make space in the area below the tentacle stand in the upper middle of the table and try again.", "Red") + return + end + end + + -- if spawned from menu, move the camera and/or ping the table + if params.name then + spawnTable["callback_function"] = function(obj) + Wait.time(function() + -- move camera + if params.player then + params.player.lookAt({ + position = obj.getPosition(), + pitch = 65, + yaw = 90, + distance = 65 + }) end - end) - local json = request.text - if replaced_object then - local pos = replaced_object.getPosition() - local rot = replaced_object.getRotation() - destroyObject(replaced_object) - Wait.frames(function() - spawnObjectJSON({json = json, position = pos, rotation = rot}) - end, 1) - else - spawnObjectJSON({json = json}) - end - end) then - print('Object loaded.') - else - print('Error loading object.') + + -- ping object + local pingPlayer = params.player or Player.getPlayers()[1] + pingPlayer.pingTable(obj.getPosition()) + end, 0.1) end end - requestObj = nil - UI.setAttribute('download_progress', 'percentage', 100) -end - --- the download button on the placeholder objects calls this to directly initiate a download --- params is a table with url and guid of replacement object, which happens to match what onClick_select wants -function placeholder_download(params) - onClick_select(nil, JSON.encode(params)) -end - -function completed_list_update(request) - assert(request.is_done) - if request.is_error or request.response_code ~= 200 then - print('error: ' .. request.error) + if pcall(function() spawnObjectJSON(spawnTable) end) then + print('Object loaded.') else - local json_response = nil - if pcall(function () json_response = JSON.decode(request.text) end) then - library = json_response - update_window_content(UI.getValue('title')) - else - print('error parsing downloaded library') - end + print('Error loading object.') end - - requestObj = nil - UI.setAttribute('download_progress', 'percentage', 100) end -function find_tag_with_id(ui, id) - for _, obj in ipairs(ui) do - if obj.attributes and obj.attributes.id and obj.attributes.id == id then return obj end - if obj.children then - local result = find_tag_with_id(obj.children, id) - if result then return result end +-- gets the first empty position to spawn a custom content object safely +function getValidSpawnPosition() + local potentialSpawnPositionX = { 65, 50, 35 } + local potentialSpawnPositionY = 1.5 + local potentialSpawnPositionZ = { 35, 21, 7, -7, -21, -35 } + + for i, posX in ipairs(potentialSpawnPositionX) do + for j, posZ in ipairs(potentialSpawnPositionZ) do + local pos = { + x = posX, + y = potentialSpawnPositionY, + z = posZ, + } + if checkPositionForContentSpawn(pos) then + return pos + end end end return nil end -function urlencode(str) - local str = string.gsub(str, "([^A-Za-z0-9-_.~])", - function (c) return string.format("%%%02X", string.byte(c)) end) - return str +-- checks whether something is in the specified position +-- returns true if empty +function checkPositionForContentSpawn(checkPos) + local searchResult = searchLib.atPosition(checkPos) + + -- first hit is the table surface, additional hits means something is there + return #searchResult == 1 end -function urldecode(str) - local str = string.gsub(str, "%%(%x%x)", - function (h) return string.char(tonumber(h, 16)) end) - return str +-- downloading of the library file +function libraryDownloadCallback(request) + if request.is_error or request.response_code ~= 200 then + print('error: ' .. request.error) + return + end + + local json_response = nil + if pcall(function () json_response = JSON.decode(request.text) end) then + formatLibrary(json_response) + updateDownloadItemList() + else + print('error parsing downloaded library') + end +end + +-- loops through an XML table and returns the specified object +---@param ui Table XmlTable (get this via getXmlTable) +---@param id String Id of the object to return +function getXmlTableElementById(ui, id) + for _, obj in ipairs(ui) do + if obj.attributes and obj.attributes.id and obj.attributes.id == id then return obj end + if obj.children then + local result = getXmlTableElementById(obj.children, id) + if result then return result end + end + end + return nil end --------------------------------------------------------- @@ -1983,6 +2466,13 @@ function onClick_toggleOption(_, id) applyOptionPanelChange(id, state) end +-- color selection for playArea +function onClick_playAreaConnectionColor(player, _, id) + player.showColorDialog(optionPanel[id], function(color) + applyOptionPanelChange(id, color) + end) +end + -- called by the language selection dropdown function languageSelected(_, selectedIndex, id) optionPanel[id] = LANGUAGES[tonumber(selectedIndex) + 1].code @@ -1997,12 +2487,70 @@ function returnLanguageId(code) end end +-- called by the resource counter selection dropdown +function resourceCounterSelected(_, selectedIndex, id) + optionPanel[id] = RESOURCE_OPTIONS[tonumber(selectedIndex) + 1] +end + +-- returns the ID for the provided option name +function returnResourceCounterId(name) + for index, optionName in ipairs(RESOURCE_OPTIONS) do + if optionName == name then + return index + end + end +end + +-- called by the playermat removal selection dropdown +function playermatRemovalSelected(player, selectedIndex, id) + if selectedIndex == "0" then return end + + local matColorList = { "White", "Orange", "Green", "Red" } + local matColor = matColorList[tonumber(selectedIndex)] + local mat = guidReferenceApi.getObjectByOwnerAndType(matColor, "Playermat") + + if mat then + -- confirmation dialog about deletion + player.pingTable(mat.getPosition()) + player.showConfirmDialog("Do you really want to remove " .. matColor .. "'s playermat and related objects? This can't be reversed.", function() removePlayermat(matColor) end) + else + -- info dialog that it is already deleted + player.showInfoDialog(matColor .. "'s playermat has already been removed.") + end + + -- set selected value back to first option + UI.setAttribute(id, "value", 0) +end + +-- removes a playermat and all related objects from play +---@param matColor String Color of the playermat to remove +function removePlayermat(matColor) + local matObjects = guidReferenceApi.getObjectsByOwner(matColor) + if not matObjects.Playermat then return end + + -- remove action tokens + local actionTokens = playmatApi.searchAroundPlaymat(matColor, "isActionToken") + for _, obj in ipairs(actionTokens) do + obj.destruct() + end + + -- remove mat owned objects + for _, obj in pairs(matObjects) do + obj.destruct() + end +end + -- sets the option panel to the correct state (corresponding to 'optionPanel') function updateOptionPanelState() for id, optionValue in pairs(optionPanel) do if id == "cardLanguage" and type(optionValue) == "string" then local dropdownId = returnLanguageId(optionValue) - 1 UI.setAttribute(id, "value", dropdownId) + elseif id == "useResourceCounters" and type(optionValue) == "string" then + local dropdownId = returnResourceCounterId(optionValue) - 1 + UI.setAttribute(id, "value", dropdownId) + elseif id == "playAreaConnectionColor" then + UI.setAttribute(id, "color", "#" .. Color.new(optionValue):toHex()) elseif (type(optionValue) == "boolean" and optionValue) or (type(optionValue) == "string" and optionValue) or (type(optionValue) == "table" and #optionValue ~= 0) then @@ -2033,39 +2581,55 @@ function applyOptionPanelChange(id, state) optionPanel[id] = state -- update master clue counter - getObjectFromGUID("4a3aa4").setVar("useClickableCounters", state) + local counter = guidReferenceApi.getObjectByOwnerAndType("Mythos", "MasterClueCounter") + counter.setVar("useClickableCounters", state) - -- option: Clickable resource counters - elseif id == "useResourceCounters" then + -- option: Play area snap tags + elseif id == "playAreaConnections" then + playAreaApi.setConnectionDrawState(state) + optionPanel[id] = state + + -- option: Play area connection color + elseif id == "playAreaConnectionColor" then + playAreaApi.setConnectionColor(state) + UI.setAttribute(id, "color", "#" .. Color.new(state):toHex()) optionPanel[id] = state -- option: Play area snap tags elseif id == "playAreaSnapTags" then - playAreaAPI.setLimitSnapsByType(state) + playAreaApi.setLimitSnapsByType(state) optionPanel[id] = state -- option: Show Title on placing scenarios elseif id == "showTitleSplash" then optionPanel[id] = state + -- option: Change custom playarea image on setup + elseif id == "changePlayAreaImage" then + optionPanel[id] = state + -- option: Show clean up helper elseif id == "showCleanUpHelper" then optionPanel[id] = spawnOrRemoveHelper(state, "Clean Up Helper", {-66, 1.6, 46}) -- option: Show hand helper for each player elseif id == "showHandHelper" then - for i, color in ipairs(MAT_COLORS) do - local pos = playmatApi.transformLocalPosition({0.05, 0, -1.182}, color) - local rot = playmatApi.returnRotation(color) - optionPanel[id][i] = spawnOrRemoveHelper(state, "Hand Helper", pos, rot) + local helperName = "Hand Helper" + local spawnData = playmatApi.getHelperSpawnData("All", helperName) + local i = 0 + for color, data in pairs(spawnData) do + i = i + 1 + optionPanel[id][i] = spawnOrRemoveHelper(state, helperName, data.position, data.rotation, color) end -- option: Show search assistant for each player elseif id == "showSearchAssistant" then - for i, color in ipairs(MAT_COLORS) do - local pos = playmatApi.transformLocalPosition({-0.3, 0, -1.182}, color) - local rot = playmatApi.returnRotation(color) - optionPanel[id][i] = spawnOrRemoveHelper(state, "Search Assistant", pos, rot) + local helperName = "Search Assistant" + local spawnData = playmatApi.getHelperSpawnData("All", helperName) + local i = 0 + for color, data in pairs(spawnData) do + i = i + 1 + optionPanel[id][i] = spawnOrRemoveHelper(state, helperName, data.position, data.rotation, color) end -- option: Show attachment helper @@ -2074,11 +2638,7 @@ function applyOptionPanelChange(id, state) -- option: Show CYOA campaign guides elseif id == "showCYOA" then - optionPanel[id] = spawnOrRemoveHelper(state, "CYOA Campaign Guides", {65, 1.6, -11}) - - -- option: Show custom playmat images - elseif id == "showCustomPlaymatImages" then - optionPanel[id] = spawnOrRemoveHelper(state, "Custom Playmat Images", {67.5, 1.6, 37}) + optionPanel[id] = spawnOrRemoveHelper(state, "CYOA Campaign Guides", {39, 1.3, -20}) -- option: Show displacement tool elseif id == "showDisplacementTool" then @@ -2091,13 +2651,17 @@ end ---@param name String Name of the helper object ---@param position Vector Position of the object (where it will spawn) ---@param rotation Vector Rotation of the object for spawning (default: {0, 270, 0}) +---@param owner String Owner of the object (defaults to "Mythos") ---@return. GUID of the spawnedObj (or nil if object was removed) -function spawnOrRemoveHelper(state, name, position, rotation) +function spawnOrRemoveHelper(state, name, position, rotation, owner) if (type(state) == "table" and #state == 0) then return removeHelperObject(name) elseif state then Player.getPlayers()[1].pingTable(position) - return spawnHelperObject(name, position, rotation).getGUID() + local spawnedGUID = spawnHelperObject(name, position, rotation).getGUID() + local cleanName = name:gsub("%s+", "") + guidReferenceApi.editIndex(owner or "Mythos", cleanName, spawnedGUID) + return spawnedGUID else return removeHelperObject(name) end @@ -2106,8 +2670,9 @@ end -- copies the specified tool (by name) from the option panel source bag ---@param name String Name of the object that should be copied ---@param position Table Desired position of the object +---@param rotation Table Desired rotation of the object (defaults to object's rotation) function spawnHelperObject(name, position, rotation) - local sourceBag = getObjectFromGUID("830bd0") + local sourceBag = guidReferenceApi.getObjectByOwnerAndType("Mythos","OptionPanelSource") -- error handling for missing sourceBag if not sourceBag then @@ -2115,7 +2680,7 @@ function spawnHelperObject(name, position, rotation) return end - local spawnTable = {position = position} + local spawnTable = { position = position } -- only overrride rotation if there is one provided (object's rotation used instead) if rotation then @@ -2142,7 +2707,6 @@ function removeHelperObject(name) ["Hand Helper"] = "showHandHelper", ["Search Assistant"] = "showSearchAssistant", ["Displacement Tool"] = "showDisplacementTool", - ["Custom Playmat Images"] = "showCustomPlaymatImages", ["Attachment Helper"] = "showAttachmentHelper", ["CYOA Campaign Guides"] = "showCYOA" } @@ -2183,12 +2747,14 @@ function onClick_defaultSettings() applyOptionPanelChange(id, state) end - -- clean reset of variable + -- clean reset of variables optionPanel = { + cardLanguage = "en", + playAreaConnectionColor = { 0.4, 0.4, 0.4, 1 }, + playAreaConnections = true, playAreaSnapTags = true, showAttachmentHelper = false, showCleanUpHelper = false, - showCustomPlaymatImages = false, showCYOA = false, showDisplacementTool = false, showDrawButton = false, @@ -2196,6 +2762,7 @@ function onClick_defaultSettings() showSearchAssistant = {}, showTitleSplash = true, useClueClickers = false, + useResourceCounters = "disabled", useSnapTags = true } @@ -2206,7 +2773,6 @@ end -- splash scenario title on setup function titleSplash(scenarioName) if optionPanel['showTitleSplash'] then - -- if there's any ongoing title being displayed, hide it and cancel the waiting function if hideTitleSplashWaitFunctionId then Wait.stop(hideTitleSplashWaitFunctionId) @@ -2246,9 +2812,9 @@ function compareVersion(request) -- global variable to make it accessible for other functions modMeta = JSON.decode(request.text) - -- stop here if on latest version - if MOD_VERSION == modMeta["latestVersion"] then return end - + -- stop here if on latest or newer version + if convertVersionToNumber(MOD_VERSION) >= convertVersionToNumber(modMeta["latestVersion"]) then return end + -- stop here if "don't show again" was clicked for this version before if acknowledgedUpgradeVersions[modMeta["latestVersion"]] then return end @@ -2258,6 +2824,13 @@ function compareVersion(request) Wait.time(function() UI.show("FinnIcon") end, 1) end +-- converts a version number to a string +---@param version String Version number, separated by dots (e.g. 3.3.1) +function convertVersionToNumber(version) + local major, minor, patch = string.match(version, "(%d+)%.(%d+)%.(%d+)") + return major * 100 + minor * 10 + patch +end + -- updates the XML update notification based on the mod metadata function updateNotificationLoading() -- grab data @@ -2270,25 +2843,14 @@ function updateNotificationLoading() highlightText = highlightText .. "\n• " .. entry end end - + -- update the XML UI - UI.setValue("notificationHeader", "New version available: ".. modMeta["latestVersion"]) + UI.setValue("notificationHeader", "New version available: " .. modMeta["latestVersion"]) UI.setValue("releaseHighlightText", highlightText) UI.setAttribute("highlightRow", "preferredHeight", 20*#highlights) UI.setAttribute("updateNotification", "height", 20*#highlights + 125) end --- triggered by clicking on the Finn Icon -function onClick_FinnIcon() - if notificationVisible then - UI.hide("updateNotification") - notificationVisible = false - else - UI.show("updateNotification") - notificationVisible = true - end -end - -- close / don't show again buttons on the update notification function onClick_notification(_, parameter) if parameter == "dontShowAgain" then @@ -2297,31 +2859,97 @@ function onClick_notification(_, parameter) end UI.hide("FinnIcon") UI.hide("updateNotification") + xmlVisibility["updateNotification"] = false end end) -__bundle_register("core/SoundCubeApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local SoundCubeApi = {} - local internal = {} + local BlessCurseManagerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - -- this table links the name of a trigger effect to its index - local soundIndices = { - ["Vacuum"] = 0, - ["Deep Bell"] = 1, - ["Dark Souls"] = 2 - } - - internal.playTriggerEffect = function(index) - getObjectsWithTag("SoundCube")[1].AssetBundle.playTriggerEffect(index) + local function getManager() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "BlessCurseManager") end - -- plays the by name requested sound - ---@param soundName String Name of the sound to play - SoundCubeApi.playSoundByName = function(soundName) - internal.playTriggerEffect(soundIndices[soundName]) + -- 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 - return SoundCubeApi + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end + + TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) + end + + TokenSpawnTracker.markTokensSpawned = function(cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetTokensSpawned = function(cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetAllAssetAndEvents = function() + return getSpawnTracker().call("resetAllAssetAndEvents") + end + + TokenSpawnTracker.resetAllLocations = function() + return getSpawnTracker().call("resetAllLocations") + end + + TokenSpawnTracker.resetAll = function() + return getSpawnTracker().call("resetAll") + end + + return TokenSpawnTracker end end) return __bundle_require("__root") diff --git a/unpacked.xml b/unpacked.xml index 97f1bf9f9..c80a6b4cb 100644 --- a/unpacked.xml +++ b/unpacked.xml @@ -1,50 +1,36 @@ - - + - + - - - - - - - - + + + Downloadable Content + + + + + + + + + + + + + + + + + + + + + + + + PreviewTitle + by PreviewAuthor + + + + + + + + + + + + + PreviewDescription + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + @@ -208,7 +444,7 @@ + + + + + + + Viewing distance (relative): + + + @@ -310,8 +563,8 @@ - - + + + preferredHeight="44" /> + preferredHeight="50" + tooltipPosition="Left" + tooltipBackgroundColor="rgba(0,0,0,1)"/> - - - + - + + + + + + + + + + Change background on setup + + + + @@ -487,12 +803,12 @@ - + - + Enable snap tags - Only cards with the tag "Asset" will snap (official cards are supported by default). Disable this if you are having issues with custom content. - + - + - + Show "Draw 1" button - Displays a button below the "Upkeep" button that draws a card from your deck. Useful for multi-handed solo play. - + - + - + Use clickable clue counters - Instead of automatically counting clues in the respective area on your playermat, this displays a clickable counter for clues. - + - - - + + + Use clickable resource tokens - This enables spawning of clickable resource tokens for player cards. - + - - + + + + + + + + + + + + + + + + Remove a playermat + + + + + + + + + + + + @@ -553,12 +897,12 @@ - + - + Attachment Helper - Provides a card-sized bag for cards that are attached to other cards (e.g. Backpack). - + - + - + Clean Up Helper - Useful for campaign-play: It resets play areas to allow continuous gameplay in the same savegame. - + - - - - - Custom Playmat Images - Places a tool that displays custom playmat images for all cycles in a gallery-like fashion. - - - - - - - - + - + CYOA Campaign Guides - Displays in a "Choose Your Own Adventure" style redesigned campaign guides. - + - + - + Displacement Tool - This allows moving all objects on the main playmat in a chosen direction. - + - + - + Hand Helper - Never count your hand cards again! This tool does that for you and additionally enables easy discarding of random cards. - + - + - + Search Assistant - Quickly search 3, 6, 9 or the top X cards of your deck! - + Load defaults + onClick="onClick_toggleUi(optionPanel)">Close - - + + @@ -683,10 +1013,11 @@ offsetXY="420 -5" height="90" width="90" - onClick="onClick_FinnIcon" + onClick="onClick_toggleUi(updateNotification)" image="FinnIcon" tooltip="Update notification" - tooltipBackgroundColor="rgba(0,0,0,0.8)"/> + tooltipPosition="Right" + tooltipBackgroundColor="rgba(0,0,0,1)"/> - - \ No newline at end of file + + \ No newline at end of file diff --git a/unpacked.yaml b/unpacked.yaml index f970bf0f6..9a012aae0 100644 --- a/unpacked.yaml +++ b/unpacked.yaml @@ -1,40 +1,46 @@ CameraStates: - AbsolutePosition: - x: -67.59604 - y: 91.87675 - z: 5.521103 - Distance: 104.699272 + x: -67.6 + y: 91.88 + z: 5.52 + Distance: 104 Position: - x: -22.2649822 + x: -22.26 y: -2.5 - z: 5.25747156 + z: 5.26 Rotation: - x: 64.34372 - y: 90.3332 - z: 0.0 + x: 64.34 + y: 90 + z: 0 Zoomed: false - AbsolutePosition: - x: -47.7179832 - y: 86.18371 - z: -6.780735e-06 - Distance: 97.85165 + x: -39.1 + y: 29.7 + z: 0 + Distance: 29.14 Position: - x: -6.36408234 - y: -2.5 - z: -9.483223e-07 + x: -31.54 + y: 1.55 + z: 0 Rotation: - x: 64.99999 - y: 89.99999 - z: 0.0 + x: 75 + y: 90 + z: 0 + Zoomed: false +- AbsolutePosition: + x: -10.16 + y: 18.95 + z: 0 + Distance: 18 + Position: + x: -5.5 + y: 1.55 + z: 0 + Rotation: + x: 75 + y: 90 + z: 0 Zoomed: false -- null -- null -- null -- null -- null -- null -- null -- null ComponentTags: labels: - displayed: import_configuration_provider @@ -43,8 +49,6 @@ ComponentTags: normalized: allcardshotfix - displayed: LinkedPhaseTracker normalized: linkedphasetracker - - displayed: chaosBag - normalized: chaosBag - displayed: displacement_excluded normalized: displacement_excluded - displayed: PlayerCard @@ -67,20 +71,14 @@ ComponentTags: normalized: investigator - displayed: chaosBag normalized: chaosbag - - displayed: arkham_setup_memory_object - normalized: arkham_setup_memory_object - displayed: ActionToken normalized: actiontoken - displayed: LargeBox normalized: largebox - - displayed: SoundCube - normalized: soundcube - displayed: CampaignBox normalized: campaignbox - displayed: CameraZoom_ignore normalized: camerazoom_ignore - - displayed: TokenArranger - normalized: tokenarranger CustomUIAssets: - Name: refresh Type: 0 @@ -135,16 +133,16 @@ CustomUIAssets: URL: http://cloud-3.steamusercontent.com/ugc/2028355502896482829/8DAB311590B97586309E66D795AC2C43D4913188/ - Name: header_cover Type: 0 - URL: http://cloud-3.steamusercontent.com/ugc/5118935530977312342/0D22712378B1F9A5A1FC7DA40C355943C878DDC0/ + URL: http://cloud-3.steamusercontent.com/ugc/2280574378889753624/53E7443E2A9957BC5CA4D73B67D5C1C30971C9F9/ - Name: header_acolyte Type: 0 - URL: http://cloud-3.steamusercontent.com/ugc/5118935530977311773/B8B2021D42CFB084AFDCCA42EE6B9A57F3E30AC6/ -- Name: header_ruins + URL: http://cloud-3.steamusercontent.com/ugc/2280574378889753484/961371448C1CB9F93D574E0F78CF51A88D0D34F6/ +- Name: header_compass Type: 0 - URL: http://cloud-3.steamusercontent.com/ugc/5118935530977312917/E24A34736C912186C7AC58270E3819B6A44B3EE8/ + URL: http://cloud-3.steamusercontent.com/ugc/2280574378889786684/52E2A801060A523AF5DD956C72A41889B5A1D2C9/ - Name: header_olive Type: 0 - URL: http://cloud-3.steamusercontent.com/ugc/5118935530977377198/4E88B41107A29D027D86E6B80D47B03617335990/ + URL: http://cloud-3.steamusercontent.com/ugc/2280574378889753733/F67B7B37FF7AA253B6D697E577DF54A3E76030C2/ - Name: option_on Type: 0 URL: http://cloud-3.steamusercontent.com/ugc/2024962321889555728/22ABD35CBB49A001F3A5318E4AFCFB22D24FEA39/ @@ -208,21 +206,34 @@ CustomUIAssets: - Name: Inv-Jacqueline Type: 0 URL: https://i.imgur.com/AFuB9II.png +- Name: Inv-Kohaku + Type: 0 + URL: http://cloud-3.steamusercontent.com/ugc/2279451480492739312/E59E79D4CFCFE60190BFD69B7FFBF1601DA3FAA5/ - Name: TitleGradient Type: 0 URL: https://i.imgur.com/Mdjm349.png - Name: FinnIcon Type: 0 URL: http://cloud-3.steamusercontent.com/ugc/2037357792052848566/5DA900C430E97D3DFF2C9B8A3DB1CB2271791FC7/ -Date: 8/26/2023 5:51:15 PM +- Name: box-cover-mask-small + Type: 0 + URL: http://cloud-3.steamusercontent.com/ugc/2115061298536631564/F29C2ED9DD8431A1D1E21C7FFAFF1FFBC0AF0BF3/ +- Name: box-cover-mask-big + Type: 0 + URL: http://cloud-3.steamusercontent.com/ugc/2115061298536631429/D075D2EECE6EE091AD3BEA5800DEF9C7B02B745B/ +- Name: box-cover-mask-wide + Type: 0 + URL: http://cloud-3.steamusercontent.com/ugc/2115061298538827369/A20C2ECB8ECDC1B0AD8B2B38F68CA1C1F5E07D37/ +Date: Thu Jan 25 01:22:12 UTC 2024 DecalPallet: - ImageURL: http://cloud-3.steamusercontent.com/ugc/1474319121424323663/BC5570ECF747F1B30224461B576E8B0FE7FA5F33/ Name: Achivement Checkmark Size: 0.1 - ImageURL: https://i.imgur.com/saWedQ0.png Name: Victory Display - Size: 15.0 -EpochTime: 1693090275 + Size: 15 +Decals: [] +EpochTime: 1706145732 GameComplexity: '' GameMode: Arkham Horror LCG - Super Complete Edition GameType: '' @@ -230,21 +241,21 @@ Gravity: 0.5 Grid: BothSnapping: false Color: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 Lines: false Offset: false Opacity: 0.75 PosOffset: - x: 0.0 - y: 1.0 - z: 0.0 + x: 0 + y: 1 + z: 0 Snapping: false ThickLines: false Type: 0 - xSize: 2.0 - ySize: 2.0 + xSize: 2 + ySize: 2 Hands: DisableUnused: false Enable: true @@ -267,13 +278,13 @@ Lighting: LightColor: b: 0.8902 g: 0.9804 - r: 1.0 + r: 1 LightIntensity: 0.54 - LutContribution: 1.0 + LutContribution: 1 LutIndex: 0 - ReflectionIntensity: 1.0 + ReflectionIntensity: 1 LuaScript: !include 'unpacked.ttslua' -LuaScriptState: '{"acknowledgedUpgradeVersions":[],"optionPanel":{"cardLanguage":"en","playAreaSnapTags":true,"showAttachmentHelper":false,"showCleanUpHelper":false,"showCustomPlaymatImages":false,"showCYOA":false,"showDisplacementTool":false,"showDrawButton":false,"showHandHelper":[],"showSearchAssistant":[],"showTitleSplash":true,"useClueClickers":false,"useSnapTags":true}}' +LuaScriptState: '{"acknowledgedUpgradeVersions":[],"chaosTokensGUID":[],"optionPanel":{"cardLanguage":"en","changePlayAreaImage":false,"playAreaConnectionColor":{"a":1,"b":0.4,"g":0.4,"r":0.4},"playAreaConnections":true,"playAreaSnapTags":true,"showAttachmentHelper":false,"showCleanUpHelper":false,"showCYOA":false,"showDisplacementTool":false,"showDrawButton":false,"showHandHelper":[],"showSearchAssistant":[],"showTitleSplash":true,"useClueClickers":false,"useResourceCounters":"disabled","useSnapTags":true}}' MusicPlayer: AudioLibrary: - Item1: http://cloud-3.steamusercontent.com/ugc/784110538847453001/4481D1CC5684FCF04AB143954DEFE09E94BF5CEB/ @@ -330,6 +341,7 @@ MusicPlayer: RepeatSong: false Note: '' ObjectStates: +- !include 'unpacked/go_game_piece_white GUID Reference Handler 123456.yaml' - !include 'unpacked/HandTrigger 5fe087.yaml' - !include 'unpacked/HandTrigger be2f17.yaml' - !include 'unpacked/HandTrigger 0285cc.yaml' @@ -350,7 +362,7 @@ ObjectStates: - !include 'unpacked/Custom_Model Decoration - Coin 180a23.yaml' - !include 'unpacked/Custom_Tile Panel 463022.yaml' - !include 'unpacked/Custom_Token TentacleStand 7bff34.yaml' -- !include 'unpacked/ScriptingTrigger 83ef06.yaml' +- !include 'unpacked/ScriptingTrigger ChaosBagZone 83ef06.yaml' - !include 'unpacked/Custom_Model_Infinite_Bag Clue tokens 11e0cf.yaml' - !include 'unpacked/Custom_Model_Infinite_Bag Doom tokens b015d8.yaml' - !include 'unpacked/Custom_Token Doom Counter 85c4c6.yaml' @@ -412,16 +424,10 @@ ObjectStates: - !include 'unpacked/Custom_Model Clue Counter d86b7c.yaml' - !include 'unpacked/Custom_Token Master Clue Counter 4a3aa4.yaml' - !include 'unpacked/Custom_Model_Bag Legacy Assets 7165a9.yaml' -- !include 'unpacked/Custom_Token Playarea 721ba2.yaml' +- !include 'unpacked/Custom_Token Play Area 721ba2.yaml' +- !include 'unpacked/Bag Additional Player Cards 2cba6b.yaml' - !include 'unpacked/Custom_Assetbundle_Bag Barkham Horror 308439.yaml' -- !include 'unpacked/ScriptingTrigger fb28e1.yaml' -- !include 'unpacked/ScriptingTrigger 7af2cf.yaml' -- !include 'unpacked/ScriptingTrigger b047f8.yaml' -- !include 'unpacked/ScriptingTrigger 18538f.yaml' - !include 'unpacked/Custom_Token Chaos Bag Stat Tracker 766620.yaml' -- !include 'unpacked/Custom_Model_Bag Bless tokens afa06b.yaml' -- !include 'unpacked/Custom_Model_Bag Curse tokens bd0253.yaml' -- !include 'unpacked/Custom_Tile Token Remover 0a5a29.yaml' - !include 'unpacked/Checker_white Token Spawn Tool 36b4ee.yaml' - !include 'unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.yaml' - !include 'unpacked/Deck Tarot Deck 77f1e5.yaml' @@ -441,16 +447,15 @@ ObjectStates: - !include 'unpacked/Custom_Tile Data Helper 708279.yaml' - !include 'unpacked/Custom_Token BlessCurse Manager 5933fb.yaml' - !include 'unpacked/Notecard d8d357.yaml' -- !include 'unpacked/Checker_black Arkham Deck Cutter 445115.yaml' - !include 'unpacked/ScriptingTrigger a2f932.yaml' - !include 'unpacked/Custom_Model Edge of the Earth 895eaa.yaml' - !include 'unpacked/Custom_Model The Dream-Eaters a16a1a.yaml' - !include 'unpacked/Custom_Model Return to The Circle Undone 757324.yaml' -- !include 'unpacked/Custom_Tile Playermat 4 Red 0840d5.yaml' -- !include 'unpacked/Custom_Tile Playermat 3 Green 383d8b.yaml' - !include 'unpacked/Custom_Token Other Doom in Play 652ff3.yaml' - !include 'unpacked/Custom_Tile Playermat 1 White 8b081b.yaml' - !include 'unpacked/Custom_Tile Playermat 2 Orange bd0ff4.yaml' +- !include 'unpacked/Custom_Tile Playermat 3 Green 383d8b.yaml' +- !include 'unpacked/Custom_Tile Playermat 4 Red 0840d5.yaml' - !include 'unpacked/Custom_Tile Neutral 2691e1.yaml' - !include 'unpacked/Custom_Tile Neutral 748245.yaml' - !include 'unpacked/Custom_Tile Neutral 271b17.yaml' @@ -487,18 +492,21 @@ ObjectStates: - !include 'unpacked/Checker_white Token Spawn Tracker e3ffc9.yaml' - !include 'unpacked/Bag Token Source 124381.yaml' - !include 'unpacked/FogOfWarTrigger Game Data 3dbe47.yaml' +- !include 'unpacked/Custom_Token Instruction Generator 240522.yaml' - !include 'unpacked/Custom_Tile Player Cards 2d30ee.yaml' - !include 'unpacked/Custom_Tile Token Remover 39b175.yaml' - !include 'unpacked/Custom_Tile Token Remover 2ba7a5.yaml' +- !include 'unpacked/Custom_Tile Token Remover 0a5a29.yaml' +- !include 'unpacked/ScriptingTrigger TokenDiscardZone 457de3.yaml' +- !include 'unpacked/ScriptingTrigger TokenDiscardZone 457de4.yaml' +- !include 'unpacked/ScriptingTrigger TokenDiscardZone 457de5.yaml' +- !include 'unpacked/ScriptingTrigger TokenDiscardZone 457de6.yaml' - !include 'unpacked/Custom_Tile Decoration - Map 6161b4.yaml' - !include 'unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f.yaml' - !include 'unpacked/BlockRectangle Table Divider 612072.yaml' - !include 'unpacked/BlockRectangle Table Divider 975c39.yaml' - !include 'unpacked/BlockRectangle Table Divider 75937e.yaml' - !include 'unpacked/BlockRectangle Table Divider 8646eb.yaml' -- !include 'unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators - ed4ca7.yaml' -- !include 'unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.yaml' - !include 'unpacked/Custom_Model Decoration - Ammo 0a3b03.yaml' - !include 'unpacked/Custom_Model Decoration - Ammo b43845.yaml' - !include 'unpacked/Custom_Model Decoration - Ammo d35ee9.yaml' @@ -507,21 +515,42 @@ ObjectStates: - !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' +- !include 'unpacked/Custom_Tile Token Spawning Reference f8b3a7.yaml' - !include 'unpacked/3DText d628cc.yaml' - !include 'unpacked/go_game_piece_black Navigation Overlay Handler 797ede.yaml' - !include 'unpacked/Custom_Tile Campaign ImporterExporter 334ee3.yaml' - !include 'unpacked/Custom_Token Token Arranger 022907.yaml' - !include 'unpacked/Custom_Token Chaos Bag Manager 023240.yaml' -- !include 'unpacked/Custom_Model Half-Life b46db2.yaml' -- !include 'unpacked/Custom_Model Circus Ex Mortis Campaign 93b8cb.yaml' -PlayArea: 1.0 +- !include 'unpacked/BlockRectangle Placeholder Box Dummy a93466.yaml' +- !include 'unpacked/Custom_Model Baldur''s Gate III 695abd.yaml' +- !include 'unpacked/Custom_Tile Tokencache_+1 a15273.yaml' +- !include 'unpacked/Custom_Tile Tokencache_0 0a8592.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-1 b644d2.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-2 8af600.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-3 a7a9cb.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-4 984eec.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-5 1df0a5.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-6 2460df.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-7 81a1d7.yaml' +- !include 'unpacked/Custom_Tile Tokencache_-8 298b5f.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Skull cc8bbb.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Cultist 7d6103.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Tablet 1a1506.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Elder Thing 38609c.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Auto-fail e31821.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Elder Sign 0b1aca.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Bless 8e3aab.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Curse 16a9a7.yaml' +- !include 'unpacked/Custom_Tile Tokencache_Frost b2b7be.yaml' +- !include 'unpacked/BlockSquare Physics Detector b300d8.yaml' +PlayArea: 1 PlayerCounts: - 0 - 0 PlayingTime: - 0 - 0 -SaveName: Arkham SCE - 3.2.0 +SaveName: Arkham SCE - 3.5.0 Sky: Sky_Museum SkyURL: https://i.imgur.com/GkQqaOF.jpg SnapPoints: @@ -530,9 +559,9 @@ SnapPoints: y: 1.59 z: 10.38 Rotation: - x: 0.0 - y: 270.0 - z: 0.0 + x: 0 + y: 270 + z: 0 - Position: x: -2.94 y: 1.58 @@ -590,93 +619,157 @@ SnapPoints: y: 1.58 z: -10.39 - Position: - x: 65.0 + x: -45.3 y: 1.48 - z: -55.0 + z: 31.67 - Position: - x: 65.0 + x: -45.3 y: 1.48 - z: -71.0 + z: 29.73 - Position: - x: 65.0 + x: -45.3 y: 1.48 - z: -87.0 + z: 27.8 - Position: - x: 52.0 + x: -45.3 y: 1.48 - z: -87.0 + z: 25.86 - Position: - x: 52.0 + x: -45.3 y: 1.48 - z: -71.0 + z: 23.93 - Position: - x: 52.0 + x: -45.3 y: 1.48 - z: -55.0 + z: 21.99 - Position: - x: 39.0 + x: -45.3 y: 1.48 - z: -55.0 + z: 20.06 - Position: - x: 39.0 + x: -45.3 y: 1.48 - z: -71.0 + z: -20.62 - Position: - x: 39.0 + x: -45.3 y: 1.48 - z: -87.0 + z: -22.55 - Position: - x: 26.0 + x: -45.3 y: 1.48 - z: -87.0 + z: -24.49 - Position: - x: 26.0 + x: -45.3 y: 1.48 - z: -71.0 + z: -26.43 - Position: - x: 26.0 + x: -45.3 y: 1.48 - z: -55.0 + z: -28.36 - Position: - x: 13.0 + x: -45.3 y: 1.48 - z: -55.0 + z: -30.3 - Position: - x: 13.0 + x: -45.3 y: 1.48 - z: -71.0 + z: -32.23 - Position: - x: 0.0 + x: 65 y: 1.48 - z: -55.0 + z: -55 - Position: - x: 0.0 + x: 65 y: 1.48 - z: -71.0 + z: -71 - Position: - x: 1.6 - y: 1.58 - z: -13.75 + x: 65 + y: 1.48 + z: -87 +- Position: + x: 52 + y: 1.48 + z: -87 +- Position: + x: 52 + y: 1.48 + z: -71 +- Position: + x: 52 + y: 1.48 + z: -55 +- Position: + x: 39 + y: 1.48 + z: -55 +- Position: + x: 39 + y: 1.48 + z: -71 +- Position: + x: 39 + y: 1.48 + z: -87 +- Position: + x: 26 + y: 1.48 + z: -87 +- Position: + x: 26 + y: 1.48 + z: -71 +- Position: + x: 26 + y: 1.48 + z: -55 +- Position: + x: 13 + y: 1.48 + z: -55 +- Position: + x: 13 + y: 1.48 + z: -71 +- Position: + x: 0 + y: 1.48 + z: -55 +- Position: + x: 0 + y: 1.48 + z: -71 +- Position: + x: -28.64 + y: 1.48 + z: -38.65 Rotation: - x: 0.0 - y: 315.0 - z: 0.0 + x: 0 + y: 315 + z: 0 - Position: x: -56.24 y: 1.49 z: -80.19 Rotation: - x: 0.0 - y: 135.0 - z: 180.0 + x: 0 + y: 135 + z: 180 - Position: x: 6.5 y: 1.48 - z: -87.0 + z: -87 - Position: - x: -27.0 + x: -27 y: 1.48 z: -56.16 +- Position: + x: 1.6 + y: 1.58 + z: -13.75 + Rotation: + x: 0 + y: 315 + z: 0 TabStates: '10': body: "Created by Whimsical\n\nAnything that passes over the remover that isn't diff --git a/unpacked/3DText d628cc.yaml b/unpacked/3DText d628cc.yaml index 56aec5dde..37b7a7a2a 100644 --- a/unpacked/3DText d628cc.yaml +++ b/unpacked/3DText d628cc.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' @@ -28,20 +28,20 @@ Sticky: true Text: Text: Featured Fan Content colorstate: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 fontSize: 84 Tooltip: true Transform: posX: -19.5 posY: 1.7 - posZ: -84.0 - rotX: 90.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posZ: -87 + rotX: 90 + rotY: 90 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Additional Player Cards 2cba6b.ttslua b/unpacked/Bag Additional Player Cards 2cba6b.ttslua new file mode 100644 index 000000000..cb64768cf --- /dev/null +++ b/unpacked/Bag Additional Player Cards 2cba6b.ttslua @@ -0,0 +1,182 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__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 +-- find these bags during indexing, and use them to replace cards from the +-- actual bag. + +-- Tells the All Cards Bag to recreate its indexes. The All Cards Bag may +-- ignore this request; see the rebuildIndexForHotfix() method in the All Cards +-- Bag for details. + +local allCardsBagApi = require("playercards/AllCardsBagApi") + +function onLoad() + allCardsBagApi.rebuildIndexForHotfix() + self.addContextMenuItem("Update card index", function() allCardsBagApi.rebuildIndexForHotfix() end) +end +end) +__bundle_register("playercards/AllCardsBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local AllCardsBagApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getAllCardsBag() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "AllCardsBag") + end + + -- Returns a specific card from the bag, based on ArkhamDB ID + ---@param id table String ID of the card to retrieve + ---@return table table + -- If the indexes are still being constructed, an empty table is + -- returned. Otherwise, a single table with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardById = function(id) + return getAllCardsBag().call("getCardById", {id = id}) + end + + -- Gets a random basic weakness from the bag. Once a given ID has been returned + -- it will be removed from the list and cannot be selected again until a reload + -- occurs or the indexes are rebuilt, which will refresh the list to include all + -- weaknesses. + ---@return id String ID of the selected weakness. + AllCardsBagApi.getRandomWeaknessId = function() + return getAllCardsBag().call("getRandomWeaknessId") + end + + AllCardsBagApi.isIndexReady = function() + return getAllCardsBag().call("isIndexReady") + end + + -- Called by Hotfix bags when they load. If we are still loading indexes, then + -- the all cards and hotfix bags are being loaded together, and we can ignore + -- this call as the hotfix will be included in the initial indexing. If it is + -- called once indexing is complete it means the hotfix bag has been added + -- later, and we should rebuild the index to integrate the hotfix bag. + AllCardsBagApi.rebuildIndexForHotfix = function() + return getAllCardsBag().call("rebuildIndexForHotfix") + end + + -- Searches the bag for cards which match the given name and returns a list. Note that this is + -- an O(n) search without index support. It may be slow. + ---@param name String or string fragment to search for names + ---@param exact Boolean Whether the name match should be exact + AllCardsBagApi.getCardsByName = function(name, exact) + return getAllCardsBag().call("getCardsByName", {name = name, exact = exact}) + end + + AllCardsBagApi.isBagPresent = function() + return getAllCardsBag() and true + end + + -- Returns a list of cards from the bag matching a class and level (0 or upgraded) + ---@param class String class to retrieve ("Guardian", "Seeker", etc) + ---@param upgraded Boolean true for upgraded cards (Level 1-5), false for Level 0 + ---@return: If the indexes are still being constructed, returns an empty table. + -- Otherwise, a list of tables, each with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardsByClassAndLevel = function(class, upgraded) + return getAllCardsBag().call("getCardsByClassAndLevel", {class = class, upgraded = upgraded}) + end + + AllCardsBagApi.getCardsByCycle = function(cycle) + return getAllCardsBag().call("getCardsByCycle", cycle) + end + + AllCardsBagApi.getUniqueWeaknesses = function() + return getAllCardsBag().call("getUniqueWeaknesses") + end + + return AllCardsBagApi +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag Additional Player Cards 2cba6b.yaml b/unpacked/Bag Additional Player Cards 2cba6b.yaml new file mode 100644 index 000000000..25d6b2aff --- /dev/null +++ b/unpacked/Bag Additional Player Cards 2cba6b.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +Bag: + Order: 0 +ColorDiffuse: + b: 0 + g: 0.36652 + r: 0.70588 +Description: 'Put any cards in here to add them to the indices for the player card + panel and deck importer. + + + Select the ''update index'' entry in the context menu of this bag once you''ve added + all cards. + + + This can be used for custom cards too.' +DragSelectable: true +GMNotes: '' +GUID: 2cba6b +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: !include 'Bag Additional Player Cards 2cba6b.ttslua' +LuaScriptState: '' +MaterialIndex: -1 +MeasureMovement: false +MeshIndex: -1 +Name: Bag +Nickname: Additional Player Cards +Number: 0 +Snap: true +Sticky: true +Tags: +- AllCardsHotfix +Tooltip: true +Transform: + posX: 60 + posY: 1.2 + posZ: 48 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1.5 + scaleY: 1.5 + scaleZ: 1.5 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07.ttslua b/unpacked/Bag All Player Cards 15bb07.ttslua index a7d10a90a..7468598d7 100644 --- a/unpacked/Bag All Player Cards 15bb07.ttslua +++ b/unpacked/Bag All Player Cards 15bb07.ttslua @@ -119,6 +119,7 @@ end -- yielding. Based on the current count of cards this will require -- approximately 60 frames to complete. function buildIndex() + local cardCount = 0 indexingDone = false if (self.getData().ContainedObjects == nil) then return 1 @@ -127,18 +128,39 @@ function buildIndex() local cardMetadata = JSON.decode(cardData.GMNotes) if (cardMetadata ~= nil) then addCardToIndex(cardData, cardMetadata) - end - if (i % 20 == 0) then - coroutine.yield(0) + cardCount = cardCount + 1 + if cardCount > 9 then + cardCount = 0 + coroutine.yield(0) + end 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 - local cardMetadata = JSON.decode(cardData.GMNotes) - if (cardMetadata ~= nil) then - addCardToIndex(cardData, cardMetadata) + 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 + end end end end @@ -149,9 +171,13 @@ function buildIndex() end -- Adds a card to any indexes it should be a part of, based on its metadata. --- Param cardData: TTS object data for the card --- Param cardMetadata: SCED metadata for the card +---@param cardData: TTS object data for the card +---@param cardMetadata: SCED metadata for the card function addCardToIndex(cardData, cardMetadata) + -- 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 for _, alternateId in ipairs(cardMetadata.alternate_ids) do diff --git a/unpacked/Bag All Player Cards 15bb07.yaml b/unpacked/Bag All Player Cards 15bb07.yaml index 43268e0d7..11226230d 100644 --- a/unpacked/Bag All Player Cards 15bb07.yaml +++ b/unpacked/Bag All Player Cards 15bb07.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 - g: 0.366520882 - r: 0.7058823 + b: 0 + g: 0.36652 + r: 0.70588 ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Subject 5U-21 758b0a.yaml' - !include 'Bag All Player Cards 15bb07/Card Subject 5U-21 12d3de.yaml' @@ -19,13 +19,53 @@ ContainedObjects: - !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' +- !include 'Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel) 46b146.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Back) 46b148.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Front) + 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/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 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/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 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 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 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/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' @@ -38,10 +78,8 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card A Watchful Peace (3) 176836.yaml' - !include 'Bag All Player Cards 15bb07/Card Unearth the Ancients f763e8.yaml' - !include 'Bag All Player Cards 15bb07/Card Sword Cane 9c32e2.yaml' -- !include 'Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) 19b705.yaml' - !include 'Bag All Player Cards 15bb07/Card Flamethrower (5) cf4f15.yaml' - !include 'Bag All Player Cards 15bb07/Card Zebulon Whateley 6714b2.yaml' -- !include 'Bag All Player Cards 15bb07/Card Switchblade (2) (Taboo) 842d41.yaml' - !include 'Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.yaml' - !include 'Bag All Player Cards 15bb07/Card Meditative Trance ef46e9.yaml' - !include 'Bag All Player Cards 15bb07/Card Relic of Ages 87718c.yaml' @@ -68,7 +106,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Cheat Death (5) 3add54.yaml' - !include 'Bag All Player Cards 15bb07/Card Laboratory Assistant 147cb2.yaml' - !include 'Bag All Player Cards 15bb07/Card Dream Parasite ae16e8.yaml' -- !include 'Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) d4a68a.yaml' - !include 'Bag All Player Cards 15bb07/Card Holy Rosary (2) 2d2246.yaml' - !include 'Bag All Player Cards 15bb07/Card Think on Your Feet 6fec31.yaml' - !include 'Bag All Player Cards 15bb07/Card Prescient 7e7873.yaml' @@ -143,7 +180,7 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Accursed Fate 85e7d9.yaml' - !include 'Bag All Player Cards 15bb07/Card On Your Own (3) 2ebdf1.yaml' - !include 'Bag All Player Cards 15bb07/Card Zoey''s Cross 66d810.yaml' -- !include 'Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 6047d6.yaml' +- !include 'Bag All Player Cards 15bb07/Card Zoey''s Cross 66d811.yaml' - !include 'Bag All Player Cards 15bb07/Card Dig Deep (4) 734b45.yaml' - !include 'Bag All Player Cards 15bb07/Card Dream-Enhancing Serum 98c5af.yaml' - !include 'Bag All Player Cards 15bb07/Card The Gold Pocket Watch (4) 62d930.yaml' @@ -151,7 +188,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Overpower (2) 017e1f.yaml' - !include 'Bag All Player Cards 15bb07/Card Grete Wagner (3) b39b78.yaml' - !include 'Bag All Player Cards 15bb07/Card Hypnotic Gaze 8f3c8e.yaml' -- !include 'Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 8ae314.yaml' - !include 'Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.yaml' - !include 'Bag All Player Cards 15bb07/Card Cunning e2767a.yaml' - !include 'Bag All Player Cards 15bb07/Card Pathfinder (1) 7f99cc.yaml' @@ -159,7 +195,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Dumb Luck (2) 0c433b.yaml' - !include 'Bag All Player Cards 15bb07/Card Ghastly Revelation b7c503.yaml' - !include 'Bag All Player Cards 15bb07/Card Ace of Swords (1) c4d436.yaml' -- !include 'Bag All Player Cards 15bb07/Card Streetwise (3) (Taboo) 88a481.yaml' - !include 'Bag All Player Cards 15bb07/Card Directive 2d9256.yaml' - !include 'Bag All Player Cards 15bb07/Card Well Connected 66b7d5.yaml' - !include 'Bag All Player Cards 15bb07/Card Deny Existence (5) d24531.yaml' @@ -179,7 +214,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Ward of Protection (5) 7bc995.yaml' - !include 'Bag All Player Cards 15bb07/Card Survival Instinct (2) be4abe.yaml' - !include 'Bag All Player Cards 15bb07/Card Brute Force (1) fb9b7e.yaml' -- !include 'Bag All Player Cards 15bb07/Card Elusive (Taboo) b67931.yaml' - !include 'Bag All Player Cards 15bb07/Card Clasp of Black Onyx f295d9.yaml' - !include 'Bag All Player Cards 15bb07/Card Thomas Dawson 1f7e6e.yaml' - !include 'Bag All Player Cards 15bb07/Card Leadership 83d8d7.yaml' @@ -281,7 +315,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Scrounge for Supplies 7651f3.yaml' - !include 'Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) 6bae15.yaml' - !include 'Bag All Player Cards 15bb07/Card Summoned Hound (1) ab4fb3.yaml' -- !include 'Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) dc65fd.yaml' - !include 'Bag All Player Cards 15bb07/Card Mists of R''lyeh (2) 3d57b4.yaml' - !include 'Bag All Player Cards 15bb07/Card Decoy 2ee50e.yaml' - !include 'Bag All Player Cards 15bb07/Card Bait and Switch 2c2d9a.yaml' @@ -388,6 +421,7 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Streetwise (3) d7dbac.yaml' - !include 'Bag All Player Cards 15bb07/Card Try and Try Again (1) 3dc82f.yaml' - !include 'Bag All Player Cards 15bb07/Card Smite the Wicked 58f534.yaml' +- !include 'Bag All Player Cards 15bb07/Card Smite the Wicked 58f535.yaml' - !include 'Bag All Player Cards 15bb07/Card Gravedigger''s Shovel (2) 96a440.yaml' - !include 'Bag All Player Cards 15bb07/Card Fine Print 39452d.yaml' - !include 'Bag All Player Cards 15bb07/Card Voice of Ra 0988b2.yaml' @@ -409,7 +443,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Backpack f59085.yaml' - !include 'Bag All Player Cards 15bb07/Card Nihilism fc4168.yaml' - !include 'Bag All Player Cards 15bb07/Card Gregory Gry 90bf93.yaml' -- !include 'Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 308967.yaml' - !include 'Bag All Player Cards 15bb07/Card The Eye of Truth (5) d6085d.yaml' - !include 'Bag All Player Cards 15bb07/Card Grisly Totem (3) 1433eb.yaml' - !include 'Bag All Player Cards 15bb07/Card Spiritual Resolve (5) 26922c.yaml' @@ -434,7 +467,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Monstrous Transformation a49751.yaml' - !include 'Bag All Player Cards 15bb07/Card Book of Shadows (1) 35166c.yaml' - !include 'Bag All Player Cards 15bb07/Card Physical Training (4) ab51ce.yaml' -- !include 'Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) ecbea8.yaml' - !include 'Bag All Player Cards 15bb07/Card Fire Extinguisher (1) 8a4673.yaml' - !include 'Bag All Player Cards 15bb07/Card Flare (1) 017821.yaml' - !include 'Bag All Player Cards 15bb07/Card Sixth Sense (4) 060943.yaml' @@ -512,7 +544,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Three Aces (1) 30062e.yaml' - !include 'Bag All Player Cards 15bb07/Card The Man in the Pallid Mask 6720ef.yaml' - !include 'Bag All Player Cards 15bb07/Card Cryptic Writings ff2776.yaml' -- !include 'Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) eccb8a.yaml' - !include 'Bag All Player Cards 15bb07/Card Tony''s Quarry d6f8d1.yaml' - !include 'Bag All Player Cards 15bb07/Card Azure Flame (3) c5fb42.yaml' - !include 'Bag All Player Cards 15bb07/Card Damned bad8cb.yaml' @@ -546,7 +577,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Plan of Action 96fd5d.yaml' - !include 'Bag All Player Cards 15bb07/Card Obsessive a2e7d7.yaml' - !include 'Bag All Player Cards 15bb07/Card Prophesy 493b03.yaml' -- !include 'Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 3d08dc.yaml' - !include 'Bag All Player Cards 15bb07/Card Lola Santiago (3) 8bec05.yaml' - !include 'Bag All Player Cards 15bb07/Card Ichtaca 29fc24.yaml' - !include 'Bag All Player Cards 15bb07/Card August Lindquist 83b588.yaml' @@ -566,7 +596,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Geas (2) b7223c.yaml' - !include 'Bag All Player Cards 15bb07/Card Astral Travel 31d087.yaml' - !include 'Bag All Player Cards 15bb07/Card Dr. Elli Horowitz 27e7b3.yaml' -- !include 'Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) a11abb.yaml' - !include 'Bag All Player Cards 15bb07/Card Dream Diary (3) 5f9a10.yaml' - !include 'Bag All Player Cards 15bb07/Card Ward of Radiance 69116c.yaml' - !include 'Bag All Player Cards 15bb07/Card Internal Injury 4fb446.yaml' @@ -579,7 +608,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Ineffable Truth (5) f00301.yaml' - !include 'Bag All Player Cards 15bb07/Card Lone Wolf dc3b07.yaml' - !include 'Bag All Player Cards 15bb07/Card Search for the Truth 4156cf.yaml' -- !include 'Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 5a51d1.yaml' - !include 'Bag All Player Cards 15bb07/Card Live and Learn 050ba1.yaml' - !include 'Bag All Player Cards 15bb07/Card Disc of Itzamna d6c44a.yaml' - !include 'Bag All Player Cards 15bb07/Card Detective''s Colt 1911s f4bac6.yaml' @@ -613,7 +641,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Cheap Shot (2) 0b963c.yaml' - !include 'Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.yaml' - !include 'Bag All Player Cards 15bb07/Card The Black Cat (5) 16e57b.yaml' -- !include 'Bag All Player Cards 15bb07/Card All In (5) (Taboo) ff1dfe.yaml' - !include 'Bag All Player Cards 15bb07/Card Lantern e66002.yaml' - !include 'Bag All Player Cards 15bb07/Card Relic of Ages 7667ef.yaml' - !include 'Bag All Player Cards 15bb07/Card Relic of Ages e27a30.yaml' @@ -625,8 +652,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Smoking Pipe 603e29.yaml' - !include 'Bag All Player Cards 15bb07/Card Sacrifice (1) f2877e.yaml' - !include 'Bag All Player Cards 15bb07/Card Well Connected (3) 170127.yaml' -- !include 'Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 125f13.yaml' -- !include 'Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e5d5f0.yaml' - !include 'Bag All Player Cards 15bb07/Card Hand of Fate 1ad931.yaml' - !include 'Bag All Player Cards 15bb07/Card Parallel Fates 47bdba.yaml' - !include 'Bag All Player Cards 15bb07/Card Ikiaq (3) 9d7d4a.yaml' @@ -678,7 +703,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Quick Thinking 99989c.yaml' - !include 'Bag All Player Cards 15bb07/Card Dark Insight f08934.yaml' - !include 'Bag All Player Cards 15bb07/Card Defiance (2) bf3dd1.yaml' -- !include 'Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 41e560.yaml' - !include 'Bag All Player Cards 15bb07/Card Chuck Fergus (5) 0e72b6.yaml' - !include 'Bag All Player Cards 15bb07/Card Physical Training (2) d708d9.yaml' - !include 'Bag All Player Cards 15bb07/Card Occult Evidence 3586e6.yaml' @@ -705,7 +729,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Madame Labranche 1ee492.yaml' - !include 'Bag All Player Cards 15bb07/Card In the Know (1) 7b42b6.yaml' - !include 'Bag All Player Cards 15bb07/Card Occult Invocation 010509.yaml' -- !include 'Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 9fa2a5.yaml' - !include 'Bag All Player Cards 15bb07/Card .25 Automatic (2) 4425b5.yaml' - !include 'Bag All Player Cards 15bb07/Card Peter Sylvestre ffdeb5.yaml' - !include 'Bag All Player Cards 15bb07/Card Grotesque Statue (2) 6b2e97.yaml' @@ -753,14 +776,13 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Wither (4) f57a6f.yaml' - !include 'Bag All Player Cards 15bb07/Card The Hungering Blade (1) 2d94ed.yaml' - !include 'Bag All Player Cards 15bb07/Card Hypnotic Gaze (2) e2bc49.yaml' -- !include 'Bag All Player Cards 15bb07/Card Scrapper (3) (Taboo) fcffa3.yaml' - !include 'Bag All Player Cards 15bb07/Card Hot Streak (2) f2508d.yaml' -- !include 'Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) f98f6f.yaml' - !include 'Bag All Player Cards 15bb07/Card Monster Slayer (5) e21854.yaml' - !include 'Bag All Player Cards 15bb07/Card Justify the Means (3) 025ed2.yaml' - !include 'Bag All Player Cards 15bb07/Card Waveworn Idol 591284.yaml' - !include 'Bag All Player Cards 15bb07/Card Take Heart cc6e4d.yaml' - !include 'Bag All Player Cards 15bb07/Card Olive McBride 9683d0.yaml' +- !include 'Bag All Player Cards 15bb07/Card Olive McBride (2) 9683d2.yaml' - !include 'Bag All Player Cards 15bb07/Card Counterpunch 20645e.yaml' - !include 'Bag All Player Cards 15bb07/Card Harmony Restored (2) 7885cf.yaml' - !include 'Bag All Player Cards 15bb07/Card Glory 273584.yaml' @@ -846,7 +868,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Hypnotic Therapy 7f1b48.yaml' - !include 'Bag All Player Cards 15bb07/Card Practice Makes Perfect 1ac667.yaml' - !include 'Bag All Player Cards 15bb07/Card Lesson Learned (2) 037b2e.yaml' -- !include 'Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 3a85c4.yaml' - !include 'Bag All Player Cards 15bb07/Card Surprising Find (1) ff59dd.yaml' - !include 'Bag All Player Cards 15bb07/Card Tristan Botley (2) 1fd630.yaml' - !include 'Bag All Player Cards 15bb07/Card Serpents of Yig 678391.yaml' @@ -879,7 +900,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Blood-Rite eafd12.yaml' - !include 'Bag All Player Cards 15bb07/Card I''m done runnin''! d8a324.yaml' - !include 'Bag All Player Cards 15bb07/Card Calling in Favors 9b9e8b.yaml' -- !include 'Bag All Player Cards 15bb07/Card Higher Education (3) (Taboo) 833501.yaml' - !include 'Bag All Player Cards 15bb07/Card Tooth of Eztli c1a687.yaml' - !include 'Bag All Player Cards 15bb07/Card .35 Winchester c32e40.yaml' - !include 'Bag All Player Cards 15bb07/Card Summoned Nightgaunt cf96b9.yaml' @@ -895,8 +915,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Dream Diary (3) e5f9cb.yaml' - !include 'Bag All Player Cards 15bb07/Card Unspeakable Oath (Bloodthirst) a5be8b.yaml' - !include 'Bag All Player Cards 15bb07/Card First Aid (3) bc80ab.yaml' -- !include 'Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) a2136a.yaml' -- !include 'Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) a2136a.yaml' - !include 'Bag All Player Cards 15bb07/Card Hard Knocks (2) 15643b.yaml' - !include 'Bag All Player Cards 15bb07/Card Slip Away cf1d4e.yaml' - !include 'Bag All Player Cards 15bb07/Card Oops! 59d89b.yaml' @@ -915,13 +933,10 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Bait and Switch (3) f9a232.yaml' - !include 'Bag All Player Cards 15bb07/Card Hard Knocks (4) 9565f0.yaml' - !include 'Bag All Player Cards 15bb07/Card Scavenging 1b76c9.yaml' -- !include 'Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 21664c.yaml' -- !include 'Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 5839e4.yaml' - !include 'Bag All Player Cards 15bb07/Card Solemn Vow ef7c11.yaml' - !include 'Bag All Player Cards 15bb07/Card Higher Education (3) d48b25.yaml' - !include 'Bag All Player Cards 15bb07/Card Shrivelling (5) 7a33b2.yaml' - !include 'Bag All Player Cards 15bb07/Card Dreaded End 1a94ad.yaml' -- !include 'Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 244d61.yaml' - !include 'Bag All Player Cards 15bb07/Card Nightmare Bauble (3) d6f6f1.yaml' - !include 'Bag All Player Cards 15bb07/Card Forewarned (1) c17f2c.yaml' - !include 'Bag All Player Cards 15bb07/Card Banish (1) a00fca.yaml' @@ -930,7 +945,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Pet Oozeling 26398a.yaml' - !include 'Bag All Player Cards 15bb07/Card Armageddon 3feff1.yaml' - !include 'Bag All Player Cards 15bb07/Card Strange Solution (4) d96e4b.yaml' -- !include 'Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) b2ccf8.yaml' - !include 'Bag All Player Cards 15bb07/Card Suggestion (1) 0ec9bf.yaml' - !include 'Bag All Player Cards 15bb07/Card Unexpected Courage acb83a.yaml' - !include 'Bag All Player Cards 15bb07/Card Perseverance 0a390e.yaml' @@ -939,7 +953,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Nothing Left to Lose (3) f0389b.yaml' - !include 'Bag All Player Cards 15bb07/Card Eat lead! a2c7ef.yaml' - !include 'Bag All Player Cards 15bb07/Card Zeal 695bb7.yaml' -- !include 'Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 8f170b.yaml' - !include 'Bag All Player Cards 15bb07/Card Recharge (2) e27b3c.yaml' - !include 'Bag All Player Cards 15bb07/Card Combat Training (1) bd3ecc.yaml' - !include 'Bag All Player Cards 15bb07/Card Directive 07e7bd.yaml' @@ -1071,6 +1084,7 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Discipline 3247da.yaml' - !include 'Bag All Player Cards 15bb07/Card Shrewd Dealings c70129.yaml' - !include 'Bag All Player Cards 15bb07/Card Buried Secrets 28080d.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom Buried Secrets 28080e.yaml' - !include 'Bag All Player Cards 15bb07/Card Mechanic''s Wrench 598ba0.yaml' - !include 'Bag All Player Cards 15bb07/Card Fend Off (3) 0c2449.yaml' - !include 'Bag All Player Cards 15bb07/Card Join the Caravan (1) 6367dd.yaml' @@ -1135,6 +1149,9 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Preston Fairmont 5e6298.yaml' - !include 'Bag All Player Cards 15bb07/Card Diana Stanley 32b091.yaml' - !include 'Bag All Player Cards 15bb07/Card Zoey Samaras 98a0e1.yaml' +- !include 'Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel) 98a0e2.yaml' +- !include 'Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Back) 98a0e4.yaml' +- !include 'Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Front) 98a0e3.yaml' - !include 'Bag All Player Cards 15bb07/Card Jim Culver ca079b.yaml' - !include 'Bag All Player Cards 15bb07/Card Joe Diamond 6dc626.yaml' - !include 'Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Back) 909f30.yaml' @@ -1215,6 +1232,7 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Tidal Memento b4f9ee.yaml' - !include 'Bag All Player Cards 15bb07/Card Jacob Morrison (3) aa38d0.yaml' - !include 'Bag All Player Cards 15bb07/Card Trusty Bullwhip ca9a60.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom Trusty Bullwhip ca9a61.yaml' - !include 'Bag All Player Cards 15bb07/Card Mob Goons fc1506.yaml' - !include 'Bag All Player Cards 15bb07/Card Guard Dog 001ae8.yaml' - !include 'Bag All Player Cards 15bb07/Card First Aid (3) 3c7eb1.yaml' @@ -1319,24 +1337,7 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Mob Enforcer b239d7.yaml' - !include 'Bag All Player Cards 15bb07/Card Silver Twilight Acolyte 16a89d.yaml' - !include 'Bag All Player Cards 15bb07/Card Paranoia c17498.yaml' -- !include 'Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 8e4d23.yaml' -- !include 'Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) e95ddb.yaml' -- !include 'Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 119880.yaml' -- !include 'Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) d45a81.yaml' -- !include 'Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 213e21.yaml' -- !include 'Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 669c4e.yaml' -- !include 'Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) a39c3b.yaml' -- !include 'Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 118264.yaml' -- !include 'Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 4d4ffb.yaml' -- !include "Bag All Player Cards 15bb07/Card Gen\xE9 Beauregard (3) (Taboo) ab32db.yaml" -- !include 'Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) b925cf.yaml' -- !include 'Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) 71e4a0.yaml' -- !include 'Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) e99e75.yaml' -- !include 'Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) 77f7f3.yaml' -- !include 'Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 94cdf6.yaml' -- !include 'Bag All Player Cards 15bb07/Card David Renfield (Taboo) 7a73c4.yaml' - !include 'Bag All Player Cards 15bb07/Card Charlie Kane 95fb5e.yaml' -- !include 'Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 55be9c.yaml' - !include 'Bag All Player Cards 15bb07/Card Kymani Jones d3d7fb.yaml' - !include 'Bag All Player Cards 15bb07/CardCustom Summoned Servitor d187dd.yaml' - !include 'Bag All Player Cards 15bb07/Card Vincent Lee 43ad8a.yaml' @@ -1364,13 +1365,9 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Selfless to a Fault 07dd55.yaml' - !include 'Bag All Player Cards 15bb07/Card Wounded Bystander fb54d3.yaml' - !include 'Bag All Player Cards 15bb07/Card Grappling Hook 09f1a2.yaml' -- !include 'Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 7fe728.yaml' - !include 'Bag All Player Cards 15bb07/Card Darrell Simmons 5d3d67.yaml' - !include 'Bag All Player Cards 15bb07/Card Kymani Jones 9a9830.yaml' -- !include 'Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 3c2561.yaml' - !include 'Bag All Player Cards 15bb07/Card Carson Sinclair dc96d1.yaml' -- !include 'Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 475460.yaml' -- !include 'Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 754b0a.yaml' - !include 'Bag All Player Cards 15bb07/Card Underprepared 709a54.yaml' - !include 'Bag All Player Cards 15bb07/Card Ectoplasmic Horror 379582.yaml' - !include 'Bag All Player Cards 15bb07/Card Pay Your Due 5b6c9f.yaml' @@ -1502,7 +1499,6 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Astronomical Atlas (3) 804397.yaml' - !include 'Bag All Player Cards 15bb07/Card Ancestral Knowledge (3) 7b7d14.yaml' - !include 'Bag All Player Cards 15bb07/Card Rex Murphy 4271cb.yaml' -- !include 'Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 9724b7.yaml' - !include 'Bag All Player Cards 15bb07/Card Rex Murphy 9ba3f0.yaml' - !include 'Bag All Player Cards 15bb07/Card Duke 876557.yaml' - !include 'Bag All Player Cards 15bb07/Card Sophie 4f46ad.yaml' @@ -1539,6 +1535,120 @@ ContainedObjects: - !include 'Bag All Player Cards 15bb07/Card Agent Ari Quinn d61c6a.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 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/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' +- !include 'Bag All Player Cards 15bb07/Card Daredevil (Taboo) cd1e54.yaml' +- !include 'Bag All Player Cards 15bb07/Card Burn After Reading (1) (Taboo) 2ced40.yaml' +- !include 'Bag All Player Cards 15bb07/Card Interrogate (Taboo) a6726e.yaml' +- !include 'Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 4a49ea.yaml' +- !include 'Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) 9aa0de.yaml' +- !include 'Bag All Player Cards 15bb07/Card Shed a Light (Taboo) 44292c.yaml' +- !include 'Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 25b73a.yaml' +- !include 'Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) 42336b.yaml' +- !include 'Bag All Player Cards 15bb07/Card Research Notes (Taboo) 085c08.yaml' +- !include 'Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e92f21.yaml' +- !include 'Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 448db7.yaml' +- !include 'Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 22d821.yaml' +- !include 'Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) 0dd658.yaml' +- !include 'Bag All Player Cards 15bb07/Card Ancient Covenant (2) (Taboo) e01cc7.yaml' +- !include 'Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) 8be540.yaml' +- !include 'Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) b06042.yaml' +- !include 'Bag All Player Cards 15bb07/Card David Renfield (Taboo) 4c7c54.yaml' +- !include 'Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 17cab7.yaml' +- !include 'Bag All Player Cards 15bb07/Card All In (5) (Taboo) 5db655.yaml' +- !include 'Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 49361a.yaml' +- !include 'Bag All Player Cards 15bb07/Card Sharpshooter (3) (Taboo) 77b1e7.yaml' +- !include 'Bag All Player Cards 15bb07/Card Runic Axe (Taboo) 3e3b99.yaml' +- !include 'Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 453fd1.yaml' +- !include 'Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 4b7a8e.yaml' +- !include 'Bag All Player Cards 15bb07/Card Elusive (Taboo) 3c046a.yaml' +- !include 'Bag All Player Cards 15bb07/Card Power Word (Taboo) dc1962.yaml' +- !include 'Bag All Player Cards 15bb07/Card Persuasion (Taboo) 821d99.yaml' +- !include 'Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) b383b8.yaml' +- !include 'Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 9c9177.yaml' +- !include 'Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 389610.yaml' +- !include 'Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) 7dc746.yaml' +- !include 'Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) 43cb9f.yaml' +- !include 'Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) 305e37.yaml' +- !include 'Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 9451ee.yaml' +- !include 'Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 2a6fd1.yaml' +- !include 'Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 4d085b.yaml' +- !include 'Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 750b7a.yaml' +- !include 'Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 522279.yaml' +- !include 'Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) c127f1.yaml' +- !include 'Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) 1be7f1.yaml' +- !include 'Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) 2286b4.yaml' +- !include 'Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 5f4d1c.yaml' +- !include 'Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) a03cd7.yaml' +- !include 'Bag All Player Cards 15bb07/Card Geared Up (Taboo) 83af5e.yaml' +- !include 'Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 02b9b9.yaml' +- !include 'Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) ca5603.yaml' +- !include "Bag All Player Cards 15bb07/Card Gen\xE9 Beauregard (3) (Taboo) d300bf.yaml" +- !include 'Bag All Player Cards 15bb07/Card Banish (1) (Taboo) 1a3b10.yaml' +- !include 'Bag All Player Cards 15bb07/Card Hypnotic Gaze (Taboo) 47d782.yaml' +- !include 'Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 23f8ec.yaml' +- !include 'Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 62ceb5.yaml' +- !include 'Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 84a7df.yaml' +- !include 'Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) baa553.yaml' +- !include 'Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 175810.yaml' +- !include 'Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) 41c449.yaml' +- !include 'Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 0d84b2.yaml' +- !include 'Bag All Player Cards 15bb07/Card Long Shot dc8c4d.yaml' +- !include 'Bag All Player Cards 15bb07/Card Chemistry Set da9727.yaml' +- !include 'Bag All Player Cards 15bb07/Card Pushed to the Limit e0f396.yaml' +- !include 'Bag All Player Cards 15bb07/Card Uncanny Growth 6543e6.yaml' +- !include 'Bag All Player Cards 15bb07/Card Microscope 48be49.yaml' +- !include 'Bag All Player Cards 15bb07/Card Well-Funded 96fbfa.yaml' +- !include 'Bag All Player Cards 15bb07/Card Dr. Charles West III 72efed.yaml' +- !include 'Bag All Player Cards 15bb07/Card Ravenous Myconid 0aa967.yaml' +- !include 'Bag All Player Cards 15bb07/Card Stall for Time 7b6ed1.yaml' +- !include 'Bag All Player Cards 15bb07/Card Wrong Place, Right Time d5944e.yaml' +- !include 'Bag All Player Cards 15bb07/Card Sparrow Mask 975d79.yaml' +- !include 'Bag All Player Cards 15bb07/Card Pitchfork 45a724.yaml' +- !include 'Bag All Player Cards 15bb07/Card Jim''s Trumpet 7dfd5f.yaml' +- !include 'Bag All Player Cards 15bb07/Card Jim Culver (Parallel) 72bf31.yaml' +- !include 'Bag All Player Cards 15bb07/Card Jim Culver (Parallel Front) c5fc80.yaml' +- !include 'Bag All Player Cards 15bb07/Card Vengeful Shade 73bc8e.yaml' +- !include 'Bag All Player Cards 15bb07/Card Final Rhapsody 561775.yaml' +- !include 'Bag All Player Cards 15bb07/Card Jim Culver (Parallel Back) aba863.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom The Beyond 37ab47.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom Devil (2) 2a0ba5.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi cea425.yaml' +- !include 'Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi 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/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 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' Description: '' DragSelectable: true GMNotes: '' @@ -1561,14 +1671,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 0.96 posZ: 27.03 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer (2) f8a977.yaml b/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer (2) f8a977.yaml index 9f7029c15..283877009 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer (2) f8a977.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer (2) f8a977.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550820 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60522\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 3,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60522\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Investigator Packs\"\n}" GUID: f8a977 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.0 posY: 3.87 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer 101a41.yaml b/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer 101a41.yaml index 86636ac48..9021da764 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer 101a41.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .18 Derringer 101a41.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550803 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60505\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60505\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 2,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 101a41 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic (2) 4425b5.yaml b/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic (2) 4425b5.yaml index fab52b264..632046453 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic (2) 4425b5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic (2) 4425b5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589404 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07305\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 4,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07305\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 4425b5 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 5.59 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic a5087b.yaml b/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic a5087b.yaml index bff4a37fd..45a2faa44 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic a5087b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .25 Automatic a5087b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587219 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07025\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07025\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: a5087b Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .32 Colt (2) c026c9.yaml b/unpacked/Bag All Player Cards 15bb07/Card .32 Colt (2) c026c9.yaml index 1127c2207..b30e8e180 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .32 Colt (2) c026c9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .32 Colt (2) c026c9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440922 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52001\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return - to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52001\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"combatIcons\": 2,\n \"uses\": [\n {\n \"count\": + 6,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Return to the Path to Carcosa\"\n}" GUID: c026c9 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .32 Colt b0f851.yaml b/unpacked/Bag All Player Cards 15bb07/Card .32 Colt b0f851.yaml index 6a2e75029..1b53be2a6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .32 Colt b0f851.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .32 Colt b0f851.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226328 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03020\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03020\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 6,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: b0f851 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 22d821.yaml b/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 22d821.yaml new file mode 100644 index 000000000..87246b011 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 22d821.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 301 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"06195-t\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. Weapon. Firearm.\",\n \"agilityIcons\": + 1,\n \"uses\": [\n {\n \"count\": 5,\n \"type\": \"Ammo\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" +GUID: 22d821 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: .35 Winchester (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -31.51 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 41e560.yaml b/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 41e560.yaml deleted file mode 100644 index 2dcecbe47..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester (Taboo) 41e560.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450624 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"06195-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" -GUID: 41e560 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: .35 Winchester (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.13 - posY: 5.1 - posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester c32e40.yaml b/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester c32e40.yaml index c412f1355..bf2bbe39f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester c32e40.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .35 Winchester c32e40.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583200 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06195\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06195\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: c32e40 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.15 posY: 4.16 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer (2) f57af7.yaml b/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer (2) f57af7.yaml index 39ad41288..2288cfc29 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer (2) f57af7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer (2) f57af7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315248 ColorDiffuse: @@ -19,12 +19,12 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03234\",\r\n \"alternate_ids\": [\r\n \"01688\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 3,\r\n - \ \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03234\",\n \"alternate_ids\": [\n \"01688\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": + 2,\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n + \ \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Path to + Carcosa\"\n}" GUID: f57af7 Grid: true GridProjection: false @@ -49,11 +49,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer fe2db3.yaml b/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer fe2db3.yaml index cf5284efd..2d611f4d4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer fe2db3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .41 Derringer fe2db3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368628 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01047\",\r\n \"alternate_ids\": [\r\n \"01547\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 3,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n \"combatIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Ammo\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01047\",\n \"alternate_ids\": [\n \"01547\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": + 0,\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n + \ \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: fe2db3 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic (2) fe0cc0.yaml b/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic (2) fe0cc0.yaml index ec176f17e..039d5540d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic (2) fe0cc0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic (2) fe0cc0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226347 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03190\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 4,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03190\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: fe0cc0 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic 12660b.yaml b/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic 12660b.yaml index 15103f630..fe4de87e7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic 12660b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .45 Automatic 12660b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226330 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01016\",\r\n \"alternate_ids\": [\r\n \"01516\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 4,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Ammo\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01016\",\n \"alternate_ids\": [\n \"01516\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Guardian\",\n \"cost\": 4,\n + \ \"level\": 0,\n \"traits\": \"Item. Weapon. Firearm.\",\n \"agilityIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: 12660b Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 19.45 posY: 3.37 posZ: -56.62 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) b492cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) b492cb.yaml index f1e38cdfb..d06aa73f8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) b492cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) b492cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292813 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Guardian DragSelectable: true -GMNotes: "{\r\n \"id\": \"05186\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 6,\r\n \"level\": 3,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05186\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 6,\n \"level\": 3,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 2,\n \"uses\": [\n {\n \"count\": + 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Circle Undone\"\n}" GUID: b492cb Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.16 posY: 3.9 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) d4dbc7.yaml b/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) d4dbc7.yaml index 6d4f04874..05519da94 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) d4dbc7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson (3) d4dbc7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292915 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Rogue DragSelectable: true -GMNotes: "{\r\n \"id\": \"05187\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 5,\r\n \"level\": 3,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 5,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05187\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Rogue\",\n \"cost\": 5,\n \"level\": 3,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: d4dbc7 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.03 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson 2c6509.yaml b/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson 2c6509.yaml index 1f2610aad..053deb11d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson 2c6509.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card .45 Thompson 2c6509.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277608 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05115\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Rogue\",\r\n - \ \"cost\": 6,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05115\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian|Rogue\",\n \"cost\": 6,\n \"level\": 0,\n \"traits\": + \"Item. Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: 2c6509 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 5.35 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card 21 or Bust 5210c2.yaml b/unpacked/Bag All Player Cards 15bb07/Card 21 or Bust 5210c2.yaml index 02906f5c4..76cedead8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card 21 or Bust 5210c2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card 21 or Bust 5210c2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379038 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08048\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Fortune. Gambit.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08048\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Fortune. Gambit.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 5210c2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.07 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter (2) 0edef1.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter (2) 0edef1.yaml index 932274a13..40b0ee5b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter (2) 0edef1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter (2) 0edef1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368844 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03238\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Fortune.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03238\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Fortune.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 0edef1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter 3f3488.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter 3f3488.yaml index aa894b845..5bfe01079 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter 3f3488.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card A Chance Encounter 3f3488.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368812 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02270\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02270\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Fortune.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 3f3488 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.72 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Glimmer of Hope f21109.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Glimmer of Hope f21109.yaml index 2a0a754cf..e30ef6c4f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card A Glimmer of Hope f21109.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card A Glimmer of Hope f21109.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447733 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06245\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Blessed. Fortune.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06245\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Blessed. Fortune.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: f21109 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (1) 4cfcc7.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (1) 4cfcc7.yaml index 93c2d965f..caa0ce63a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (1) 4cfcc7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (1) 4cfcc7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368837 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03156\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03156\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 4cfcc7 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.51 posY: 1.06 posZ: 27.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (2) 71a760.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (2) 71a760.yaml index 3c69d7900..fd33ac1c4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (2) 71a760.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card A Test of Will (2) 71a760.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550821 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60523\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60523\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 71a760 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.51 posY: 1.06 posZ: 27.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Test of Will 48e516.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Test of Will 48e516.yaml index 9e77065ea..2f87b3d7c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card A Test of Will 48e516.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card A Test of Will 48e516.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550811 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60513\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60513\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 48e516 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.51 posY: 1.06 posZ: 27.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 125f13.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 125f13.yaml deleted file mode 100644 index 09b1230ba..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 125f13.yaml +++ /dev/null @@ -1,55 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 585500 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5855': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"07269-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Spirit. Blessed.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" -GUID: 125f13 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: A Watchful Peace (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 9.12 - posY: 3.88 - posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 25b73a.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 25b73a.yaml new file mode 100644 index 000000000..908ede546 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) (Taboo) 25b73a.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 332 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"07269-t\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Spirit. Blessed.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" +GUID: 25b73a +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: A Watchful Peace (3) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -45.05 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) 176836.yaml b/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) 176836.yaml index 12199686c..75241b83d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) 176836.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card A Watchful Peace (3) 176836.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449608 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07269\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Spirit. Blessed.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07269\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Spirit. Blessed.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: '176836' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 35a7e9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 35a7e9.yaml index 2524b0855..90f6b3e60 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 35a7e9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 35a7e9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587214 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"01515\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01515\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Core\"\n}" GUID: 35a7e9 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 47.53 posY: 1.99 posZ: -99.22 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 79b4af.yaml b/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 79b4af.yaml index 684868afe..96dcf7be9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 79b4af.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 79b4af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 375129 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01015\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01015\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Core\"\n}" GUID: 79b4af Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 8.99 posY: 3.79 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 89fe92.yaml b/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 89fe92.yaml index 873dd328d..0089876ae 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 89fe92.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Abandoned and Alone 89fe92.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536002 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90040\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90040\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 89fe92 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 78.69 posY: 3.33 posZ: 7.65 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Abbess Allegria Di Biase a4b514.yaml b/unpacked/Bag All Player Cards 15bb07/Card Abbess Allegria Di Biase a4b514.yaml index 6bda3a150..1c66da840 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Abbess Allegria Di Biase a4b514.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Abbess Allegria Di Biase a4b514.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 4000 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Ally. Believer. DragSelectable: true -GMNotes: "{\r\n \"id\": \"82022\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Ally. Believer.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"82022\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Ally. Believer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: a4b514 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Abigail Foreman (4) 97e9ce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Abigail Foreman (4) 97e9ce.yaml index 47549c05c..dd81521a0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Abigail Foreman (4) 97e9ce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Abigail Foreman (4) 97e9ce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448839 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Library Intern DragSelectable: true -GMNotes: "{\r\n \"id\": \"06324\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06324\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Ally. + Miskatonic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: 97e9ce Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.13 posY: 5.55 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Able Bodied 051742.yaml b/unpacked/Bag All Player Cards 15bb07/Card Able Bodied 051742.yaml index 291ce6f0c..7dac27a3e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Able Bodied 051742.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Able Bodied 051742.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274606 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05038\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05038\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: '051742' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Abyssal Tome (2) a2d392.yaml b/unpacked/Bag All Player Cards 15bb07/Card Abyssal Tome (2) a2d392.yaml index 285f1b9ea..290e40959 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Abyssal Tome (2) a2d392.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Abyssal Tome (2) a2d392.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232107 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07159\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07159\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: a2d392 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.1 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Accursed Fate 85e7d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Accursed Fate 85e7d9.yaml index 031f0e677..4954a3c94 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Accursed Fate 85e7d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Accursed Fate 85e7d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 537608 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"04041\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04041\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 85e7d9 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 8.97 posY: 4.21 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Accursed Follower ef91a9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Accursed Follower ef91a9.yaml index 31c41f0b6..2b74907f1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Accursed Follower ef91a9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Accursed Follower ef91a9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583332 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07038\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Cultist. Cursed.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07038\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Cultist. Cursed.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: ef91a9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.74 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e5d5f0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e92f21.yaml similarity index 52% rename from unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e5d5f0.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e92f21.yaml index 74fe2b54c..f8ed60134 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e5d5f0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) (Taboo) e92f21.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450617 +CardID: 321 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02266-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Trick.\",\r\n \"cycle\": \"The - Dunwich Legacy\"\r\n}\r" -GUID: e5d5f0 +GMNotes: "{\n \"id\": \"02266-t\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Trick.\",\n \"cycle\": \"The Dunwich + Legacy\"\n}" +GUID: e92f21 Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.13 - posY: 3.9 - posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -19.75 + posY: 3.45 + posZ: -54.08 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) 074858.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) 074858.yaml index ad04bb8c4..a4bb33fe7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) 074858.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ace in the Hole (3) 074858.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315252 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02266\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Trick.\",\r\n \"cycle\": \"The - Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02266\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Trick.\",\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 074858 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.01 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ace of Rods (1) 52a677.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ace of Rods (1) 52a677.yaml index c46237c1b..b2e176b1a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ace of Rods (1) 52a677.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ace of Rods (1) 52a677.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 318703 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: The Fateful Step DragSelectable: true -GMNotes: "{\r\n \"id\": \"05040\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05040\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: 52a677 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.27 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ace of Swords (1) c4d436.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ace of Swords (1) c4d436.yaml index daa27b787..0d1aec508 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ace of Swords (1) c4d436.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ace of Swords (1) c4d436.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431009 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Let Your Arrow Fly True DragSelectable: true -GMNotes: "{\r\n \"id\": \"05023\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05023\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: c4d436 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Across Space and Time fb943f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Across Space and Time fb943f.yaml index c5ef7f745..67b953529 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Across Space and Time fb943f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Across Space and Time fb943f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232941 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Madness. DragSelectable: true -GMNotes: "{\r\n \"id\": \"02178\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"cost\": 0,\r\n \"traits\": \"Madness.\",\r\n \"weakness\": - true,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02178\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: fb943f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Act of Desperation 0bea17.yaml b/unpacked/Bag All Player Cards 15bb07/Card Act of Desperation 0bea17.yaml index 46f98e924..ebf1bc3a4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Act of Desperation 0bea17.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Act of Desperation 0bea17.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274607 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05037\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Gambit.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05037\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Tactic. Gambit.\",\n \"combatIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 0bea17 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.0 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Adaptable (1) 731d2a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Adaptable (1) 731d2a.yaml index f71346ccc..6cce4b6e4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Adaptable (1) 731d2a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Adaptable (1) 731d2a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315232 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02110\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02110\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"level\": 1,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 731d2a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Against All Odds (2) c077bf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Against All Odds (2) c077bf.yaml index 374a59fac..c0e7890d1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Against All Odds (2) c077bf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Against All Odds (2) c077bf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368850 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04202\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04202\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: c077bf Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.7 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agency Backup (5) d6eda3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agency Backup (5) d6eda3.yaml index a7dda7652..ecc0d34ea 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agency Backup (5) d6eda3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agency Backup (5) d6eda3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378618 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05274\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 7,\r\n \"level\": 5,\r\n \"traits\": \"Ally. Agency.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05274\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 7,\n \"level\": 5,\n \"traits\": \"Ally. + Agency.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"combatIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: d6eda3 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 4.22 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agent Ari Quinn d61c6a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agent Ari Quinn d61c6a.yaml index 58cfd7b8c..b45136859 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agent Ari Quinn d61c6a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agent Ari Quinn d61c6a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588601 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Foundation Researcher DragSelectable: true -GMNotes: "{\r\n \"id\": \"09763\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Agency. Detective.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09763\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Agency. Detective.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: d61c6a Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 79.04 posY: 3.3 posZ: 23.05 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agent Fletcher 95b0cf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agent Fletcher 95b0cf.yaml index fb16521e1..f63390f6e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agent Fletcher 95b0cf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agent Fletcher 95b0cf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379006 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09010\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Coterie. Detective.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09010\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Coterie. Detective.\",\n \"weakness\": true,\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 95b0cf Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 17.48 posY: 2.21 posZ: 60.19 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Back) 909f30.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Back) 909f30.yaml index b0c83adb7..6c2206155 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Back) 909f30.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Back) 909f30.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535906 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Waitress DragSelectable: true -GMNotes: "{\r\n \"id\": \"01004-pb\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Sorcerer.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01004-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Mystic\",\n \"traits\": \"Sorcerer.\",\n \"willpowerIcons\": 5,\n \"intellectIcons\": + 2,\n \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"Core\"\n}" GUID: 909f30 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 1.52 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Front) 02db0a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Front) 02db0a.yaml index 0ef33209c..d73fece71 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Front) 02db0a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel Front) 02db0a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535905 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Waitress DragSelectable: true -GMNotes: "{\r\n \"id\": \"01004-pf\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Sorcerer.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01004-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Mystic\",\n \"traits\": \"Sorcerer.\",\n \"willpowerIcons\": 5,\n \"intellectIcons\": + 2,\n \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"Core\"\n}" GUID: 02db0a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 87.05 posY: 2.12 posZ: -78.51 - rotX: 355.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 355 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel) 01b6ef.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel) 01b6ef.yaml index d79c84c98..6b8d71a71 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel) 01b6ef.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker (Parallel) 01b6ef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535904 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Waitress DragSelectable: true -GMNotes: "{\r\n \"id\": \"01004-p\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Sorcerer.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01004-p\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Sorcerer.\",\n \"willpowerIcons\": 5,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"Core\"\n}" GUID: 01b6ef Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 1.29 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker 25e2db.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker 25e2db.yaml index 5128f54c2..0933319ec 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker 25e2db.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker 25e2db.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535603 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Waitress DragSelectable: true -GMNotes: "{\r\n \"id\": \"01004\",\r\n \"alternate_ids\": [\r\n \"01504\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Mystic\",\r\n \"traits\": - \"Sorcerer.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": 2,\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01004\",\n \"alternate_ids\": [\n \"01504\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Mystic\",\n \"traits\": \"Sorcerer.\",\n \"willpowerIcons\": + 5,\n \"intellectIcons\": 2,\n \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": + \"Core\"\n}" GUID: 25e2db Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587403 ColorDiffuse: @@ -90,10 +90,10 @@ States: posY: 1.29860592 posZ: 57.949 rotX: -6.936822e-09 - rotY: 180.0 + rotY: 180 rotZ: 4.08641867e-08 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -13.24 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker e53693.yaml b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker e53693.yaml index 14bdc9db3..f36d3d1db 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker e53693.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Agnes Baker e53693.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 258803 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01004-m\",\r\n \"alternate_ids\": [\r\n \"01504-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"01004-m\",\n \"alternate_ids\": [\n \"01504-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: e53693 Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587103 ColorDiffuse: @@ -88,7 +88,7 @@ States: rotY: 270.0102 rotZ: 2.00479718e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -3.13 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 452ed8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 452ed8.yaml index 82b555380..f64b8f86f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 452ed8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 452ed8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271013 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Shaman DragSelectable: true -GMNotes: "{\r\n \"id\": \"03004\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Sorcerer.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03004\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Sorcerer.\",\n \"willpowerIcons\": 5,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 452ed8 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.88 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 6a9578.yaml b/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 6a9578.yaml index 2291663bb..804d2545a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 6a9578.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Akachi Onyele 6a9578.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259813 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.68 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alchemical Distillation 502a4d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alchemical Distillation 502a4d.yaml index 6548b3092..30e874456 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alchemical Distillation 502a4d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alchemical Distillation 502a4d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379033 ColorDiffuse: @@ -19,29 +19,28 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09040\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Science.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"customizations\": [\r\n {\r\n - \ \"name\": \"Mending Distillate\",\r\n \"xp\": 1,\r\n \"text\": \"Add - this option: \u201C\u27D0 Heal 2 damage.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Calming Distillate\",\r\n \"xp\": 1,\r\n \"text\": \"Add this option: - \u201C\u27D0 Heal 2 horror.\u201D\"\r\n },\r\n {\r\n \"name\": \"Enlightening - Distillate\",\r\n \"xp\": 1,\r\n \"text\": \"Add this option: \u201C\u27D0 - Place 1 charge or secret on an asset you control.\u201D\"\r\n },\r\n {\r\n - \ \"name\": \"Quickening Distillate\",\r\n \"xp\": 1,\r\n \"text\": - \"Add this option: \u201C\u27D0 Move up to 2 times.\u201D\"\r\n },\r\n {\r\n - \ \"name\": \"Refined\",\r\n \"xp\": 2,\r\n \"text\": \"Alchemical - Distillation enters play with 2 additional supplies on it.\",\r\n \"replaces\": - {\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ]\r\n - \ }\r\n },\r\n {\r\n \"name\": \"Empowered\",\r\n \"xp\": 4,\r\n - \ \"text\": \"When you initiate this skill test, you may increase its difficulty +GMNotes: "{\n \"id\": \"09040\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Science.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"customizations\": + [\n {\n \"name\": \"Mending Distillate\",\n \"xp\": 1,\n \"text\": + \"Add this option: \u201C\u27D0 Heal 2 damage.\u201D\"\n },\n {\n \"name\": + \"Calming Distillate\",\n \"xp\": 1,\n \"text\": \"Add this option: \u201C\u27D0 + Heal 2 horror.\u201D\"\n },\n {\n \"name\": \"Enlightening Distillate\",\n + \ \"xp\": 1,\n \"text\": \"Add this option: \u201C\u27D0 Place 1 charge + or secret on an asset you control.\u201D\"\n },\n {\n \"name\": \"Quickening + Distillate\",\n \"xp\": 1,\n \"text\": \"Add this option: \u201C\u27D0 + Move up to 2 times.\u201D\"\n },\n {\n \"name\": \"Refined\",\n \"xp\": + 2,\n \"text\": \"Alchemical Distillation enters play with 2 additional supplies + on it.\",\n \"replaces\": {\n \"uses\": [\n {\n \"count\": + 5,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n }\n + \ ]\n }\n },\n {\n \"name\": \"Empowered\",\n \"xp\": + 4,\n \"text\": \"When you initiate this skill test, you may increase its difficulty by 2. If you do, increase the value of the effect granted by each option by 1 for - this test.\"\r\n },\r\n {\r\n \"name\": \"Perfected\",\r\n \"xp\": - 5,\r\n \"text\": \"If you succeed by 2 or more, the chosen investigator may - perform two different options instead of one.\"\r\n }\r\n ],\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" + this test.\"\n },\n {\n \"name\": \"Perfected\",\n \"xp\": 5,\n + \ \"text\": \"If you succeed by 2 or more, the chosen investigator may perform + two different options instead of one.\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 502a4d Grid: true GridProjection: false @@ -66,11 +65,11 @@ Transform: posX: 16.67 posY: 3.34 posZ: 65.93 - rotX: 357.0 - rotY: 270.0 - rotZ: 356.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 357 + rotY: 270 + rotZ: 356 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation (2) 283e54.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation (2) 283e54.yaml index 5ccc81008..75c322719 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation (2) 283e54.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation (2) 283e54.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444020 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52007\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52007\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Return to the Path to Carcosa\"\n}" GUID: 283e54 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.16 posY: 3.97 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation 54832d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation 54832d.yaml index da196ea9c..c04e8f3b5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation 54832d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alchemical Transmutation 54832d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230320 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03032\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03032\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Path + to Carcosa\"\n}" GUID: 54832d Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.05 posY: 3.72 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alejandro Vela c49b4b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alejandro Vela c49b4b.yaml index 2db181c85..dc5dbf517 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alejandro Vela c49b4b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alejandro Vela c49b4b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235600 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Renowned Historian DragSelectable: true -GMNotes: "{\r\n \"id\": \"04051\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04051\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Wayfarer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: c49b4b Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alice Luxley ae20e0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alice Luxley ae20e0.yaml index 760af0ac8..e34e6174e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alice Luxley ae20e0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alice Luxley ae20e0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 278010 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Fearless Flatfoot DragSelectable: true -GMNotes: "{\r\n \"id\": \"05151\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Detective. Police.\",\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05151\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Detective. Police.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: ae20e0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card All In (5) (Taboo) ff1dfe.yaml b/unpacked/Bag All Player Cards 15bb07/Card All In (5) (Taboo) 5db655.yaml similarity index 52% rename from unpacked/Bag All Player Cards 15bb07/Card All In (5) (Taboo) ff1dfe.yaml rename to unpacked/Bag All Player Cards 15bb07/Card All In (5) (Taboo) 5db655.yaml index 13c4162b8..b7d406d2c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card All In (5) (Taboo) ff1dfe.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card All In (5) (Taboo) 5db655.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450620 +CardID: 325 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04309-t\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 5,\r\n \"traits\": \"Fortune.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" -GUID: ff1dfe +GMNotes: "{\n \"id\": \"04309-t\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 5,\n \"traits\": \"Fortune.\",\n \"wildIcons\": 2,\n \"cycle\": + \"The Forgotten Age\"\n}" +GUID: 5db655 Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.12 - posY: 4.01 - posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -19.75 + posY: 3.45 + posZ: -24.74 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card All In (5) 7d3a27.yaml b/unpacked/Bag All Player Cards 15bb07/Card All In (5) 7d3a27.yaml index 746f6de59..fc8f83672 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card All In (5) 7d3a27.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card All In (5) 7d3a27.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 265502 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04309\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 5,\r\n \"traits\": \"Fortune.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04309\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 5,\n \"traits\": \"Fortune.\",\n \"wildIcons\": 2,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 7d3a27 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (1) 9e4e11.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (1) 9e4e11.yaml index 67190792d..f5d0bfd24 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (1) 9e4e11.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (1) 9e4e11.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545208 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"53009\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53009\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Spell. Blessed.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: 9e4e11 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.67 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (3) 83c86b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (3) 83c86b.yaml index aac19c2b9..83f0ef045 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (3) 83c86b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alter Fate (3) 83c86b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368856 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04313\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04313\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Spell. Blessed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 83c86b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.81 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Alyssa Graham 53867b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Alyssa Graham 53867b.yaml index f16d2015c..baaa5caa2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Alyssa Graham 53867b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Alyssa Graham 53867b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230330 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Speaker to the Dead DragSelectable: true -GMNotes: "{\r\n \"id\": \"02232\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Sorcerer.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02232\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Sorcerer.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 53867b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 05b950.yaml b/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 05b950.yaml index c78f211d0..8574e641f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 05b950.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 05b950.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449600 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Student DragSelectable: true -GMNotes: "{\r\n \"id\": \"07002\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Miskatonic. Scholar.\",\r\n \"willpowerIcons\": - 2,\r\n \"intellectIcons\": 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07002\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Miskatonic. Scholar.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 2,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 05b950 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 1.85 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 155746.yaml b/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 155746.yaml index 46fb0b5a4..84c55d76e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 155746.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Amanda Sharpe 155746.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553201 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.89 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ambush (1) a1fd61.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ambush (1) a1fd61.yaml index e9b375def..4231c2c93 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ambush (1) a1fd61.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ambush (1) a1fd61.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226338 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03148\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03148\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: a1fd61 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.12 posY: 4.07 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 458edc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 458edc.yaml index 098d59728..1c434e73f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 458edc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 458edc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846103 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 78.27 posY: 1.06 posZ: 26.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 4c2a3d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 4c2a3d.yaml index 128726c67..abb7a3ab8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 4c2a3d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Amina Zidane 4c2a3d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 843403 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Operator DragSelectable: true -GMNotes: "{\r\n \"id\": \"09011\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Chosen. Cursed.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09011\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Chosen. Cursed.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 4c2a3d Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 78.65 posY: 3.32 posZ: 36.17 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Amnesia 2210c1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Amnesia 2210c1.yaml index 8af33481e..83a0cb977 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Amnesia 2210c1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Amnesia 2210c1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527400 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"01096\",\r\n \"alternate_ids\": [\r\n \"01596\"\r\n - \ ],\r\n \"type\": \"Treachery\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01096\",\n \"alternate_ids\": [\n \"01596\"\n ],\n \"type\": + \"Treachery\",\n \"class\": \"Neutral\",\n \"traits\": \"Madness.\",\n \"weakness\": + true,\n \"basicWeaknessCount\": 2,\n \"cycle\": \"Core\"\n}" GUID: 2210c1 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 78.78 posY: 3.32 posZ: 26.97 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Analysis 80285f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Analysis 80285f.yaml index 51431bf65..615f17a40 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Analysis 80285f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Analysis 80285f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379042 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09049\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09049\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 80285f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Analytical Mind 7b6ab5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Analytical Mind 7b6ab5.yaml index 557ccddbf..306caa016 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Analytical Mind 7b6ab5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Analytical Mind 7b6ab5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374532 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03010\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Talent.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03010\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Talent.\",\n \"wildIcons\": 2,\n \"cycle\": \"The + Path to Carcosa\"\n}" GUID: 7b6ab5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.58 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Anatomical Diagrams a8e495.yaml b/unpacked/Bag All Player Cards 15bb07/Card Anatomical Diagrams a8e495.yaml index a2659ec43..15a8f27bf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Anatomical Diagrams a8e495.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Anatomical Diagrams a8e495.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368409 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03108\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03108\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: a8e495 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ancestral Knowledge (3) 7b7d14.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ancestral Knowledge (3) 7b7d14.yaml index f0dda0242..39ebc35be 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ancestral Knowledge (3) 7b7d14.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ancestral Knowledge (3) 7b7d14.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589202 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07303\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07303\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 7b7d14 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.51 posY: 1.06 posZ: 27.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ancient Ankh 0ce113.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ancient Ankh 0ce113.yaml index dfd9ab15f..9a5650cd3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ancient Ankh 0ce113.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ancient Ankh 0ce113.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 454741 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: true Description: Item. Relic. DragSelectable: true -GMNotes: "{\r\n \"id\": \"83056\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 4,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n - \ ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"83056\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Standalone\"\n}" GUID: 0ce113 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 9.15 posY: 3.99 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ancient Covenant (2) (Taboo) e01cc7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ancient Covenant (2) (Taboo) e01cc7.yaml new file mode 100644 index 000000000..7347e6510 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Ancient Covenant (2) (Taboo) e01cc7.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 330 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"07122-t\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"startsInPlay\": true,\n \"level\": 2,\n \"traits\": \"Covenant. Blessed.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" +GUID: e01cc7 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Ancient Covenant (2) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -42.8 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (1) 9bc46e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (1) 9bc46e.yaml index bfc7ea700..6ac2669c1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (1) 9bc46e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (1) 9bc46e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430639 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Unidentified DragSelectable: true -GMNotes: "{\r\n \"id\": \"04022\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04022\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Item. + Relic.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 9bc46e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.16 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 3289b0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 3289b0.yaml index 7e683013b..2757fd883 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 3289b0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 3289b0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545203 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: Transient Thoughts DragSelectable: true -GMNotes: "{\r\n \"id\": \"53004\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53004\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Item. + Relic.\",\n \"agilityIcons\": 2,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Return to + the Forgotten Age\"\n}" GUID: 3289b0 Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 9.09 posY: 3.72 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 863f91.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 863f91.yaml index f9ace0704..e889d7187 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 863f91.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 863f91.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 262202 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: Knowledge of the Elders DragSelectable: true -GMNotes: "{\r\n \"id\": \"04230\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04230\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Item. + Relic.\",\n \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": 0,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 863f91 Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 9.13 posY: 4.33 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 9c56d3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 9c56d3.yaml index a5c906542..e67b4005e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 9c56d3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ancient Stone (4) 9c56d3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 262201 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: Minds in Harmony DragSelectable: true -GMNotes: "{\r\n \"id\": \"04231\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04231\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 2,\n \"uses\": [\n {\n \"count\": 0,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 9c56d3 Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 8.97 posY: 4.11 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Angered Spirits d8705c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Angered Spirits d8705c.yaml index 8c230be86..329762d5b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Angered Spirits d8705c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Angered Spirits d8705c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374717 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03015\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Task.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03015\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task.\",\n \"weakness\": true,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: d8705c Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.16 posY: 3.43 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Anna Kaslow (4) 03a4de.yaml b/unpacked/Bag All Player Cards 15bb07/Card Anna Kaslow (4) 03a4de.yaml index 6cc063b45..ad8901051 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Anna Kaslow (4) 03a4de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Anna Kaslow (4) 03a4de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 373910 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Mysterious Soothsayer DragSelectable: true -GMNotes: "{\r\n \"id\": \"05283\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Ally. Clairvoyant.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05283\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Ally. + Clairvoyant.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 03a4de Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.99 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Another Day, Another Dollar (3) 006d44.yaml b/unpacked/Bag All Player Cards 15bb07/Card Another Day, Another Dollar (3) 006d44.yaml index 3dd000997..2e57ff183 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Another Day, Another Dollar (3) 006d44.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Another Day, Another Dollar (3) 006d44.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378017 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05278\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05278\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 006d44 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Antiquary (3) 452db2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Antiquary (3) 452db2.yaml index c0c131dfd..e224a82b3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Antiquary (3) 452db2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Antiquary (3) 452db2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378962 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08124\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue|Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"wildIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"replenish\": 2,\r\n - \ \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08124\",\n \"type\": \"Asset\",\n \"class\": \"Seeker|Rogue|Mystic\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"wildIcons\": 1,\n + \ \"uses\": [\n {\n \"count\": 2,\n \"replenish\": 2,\n \"type\": + \"Resource\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 452db2 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.94 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Anything You Can Do, Better 2c563c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Anything You Can Do, Better 2c563c.yaml index 1ef4efefa..27826ef89 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Anything You Can Do, Better 2c563c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Anything You Can Do, Better 2c563c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538600 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60302\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"traits\": \"Innate. Developed.\",\r\n \"wildIcons\": 6,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60302\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Innate. Developed.\",\n \"wildIcons\": 6,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 2c563c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Anyu 1bf025.yaml b/unpacked/Bag All Player Cards 15bb07/Card Anyu 1bf025.yaml index f96a5cf27..300c76cb0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Anyu 1bf025.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Anyu 1bf025.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452308 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Faithful Companion DragSelectable: true -GMNotes: "{\r\n \"id\": \"08738\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Creature.\",\r\n \"agilityIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08738\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Creature.\",\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 1bf025 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.59 posY: 3.33 posZ: 7.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (1) 9393ec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (1) 9393ec.yaml index 46b594abd..de220d14f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (1) 9393ec.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (1) 9393ec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368841 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: The Forgotten Daughter DragSelectable: true -GMNotes: "{\r\n \"id\": \"01082\",\r\n \"alternate_ids\": [\r\n \"01582\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 5,\r\n - \ \"level\": 1,\r\n \"traits\": \"Ally.\",\r\n \"willpowerIcons\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01082\",\n \"alternate_ids\": [\n \"01582\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Survivor\",\n \"cost\": 5,\n + \ \"level\": 1,\n \"traits\": \"Ally.\",\n \"willpowerIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: 9393ec Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (3) fb9dbb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (3) fb9dbb.yaml index 0560a51fd..ce508beb3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (3) fb9dbb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Aquinnah (3) fb9dbb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368861 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: The Forgotten Daughter DragSelectable: true -GMNotes: "{\r\n \"id\": \"02308\",\r\n \"alternate_ids\": [\r\n \"01691\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 4,\r\n - \ \"level\": 3,\r\n \"traits\": \"Ally.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02308\",\n \"alternate_ids\": [\n \"01691\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Survivor\",\n \"cost\": 4,\n + \ \"level\": 3,\n \"traits\": \"Ally.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: fb9dbb Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arbiter of Fates 4fbdb2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arbiter of Fates 4fbdb2.yaml index f7fe72b8c..d5ef125c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arbiter of Fates 4fbdb2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arbiter of Fates 4fbdb2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538700 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60402\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60402\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 3,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 4fbdb2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.88 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Enlightenment e69708.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Enlightenment e69708.yaml index 8946ca072..db0ada6db 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Enlightenment e69708.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Enlightenment e69708.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538803 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60205\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60205\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: e69708 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.72 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate (3) 65b30d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate (3) 65b30d.yaml index a9fbee41f..ba3261f4f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate (3) 65b30d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate (3) 65b30d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230349 ColorDiffuse: @@ -19,12 +19,12 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03271\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Sorcerer.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 1,\r\n - \ \"type\": \"Doom\",\r\n \"token\": \"doom\"\r\n },\r\n {\r\n \"count\": - 2,\r\n \"type\": \"Horror\",\r\n \"token\": \"horror\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03271\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Ally. + Sorcerer.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 1,\n \"type\": \"Doom\",\n \"token\": \"doom\"\n },\n + \ {\n \"count\": 2,\n \"type\": \"Horror\",\n \"token\": \"horror\"\n + \ }\n ],\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 65b30d Grid: true GridProjection: false @@ -49,11 +49,11 @@ Transform: posX: 8.98 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate 7307c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate 7307c4.yaml index 49df83c27..b7f5cc190 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate 7307c4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Initiate 7307c4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230318 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01063\",\r\n \"alternate_ids\": [\r\n \"01563\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Sorcerer.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"uses\": [\r\n {\r\n \"count\": 1,\r\n \"type\": \"Doom\",\r\n \"token\": - \"doom\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01063\",\n \"alternate_ids\": [\n \"01563\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": + 0,\n \"traits\": \"Ally. Sorcerer.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n + \ {\n \"count\": 1,\n \"type\": \"Doom\",\n \"token\": \"doom\"\n + \ }\n ],\n \"cycle\": \"Core\"\n}" GUID: 7307c4 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Insight (4) 536b52.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Insight (4) 536b52.yaml index 33d3aabdc..d0aaaf60c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Insight (4) 536b52.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Insight (4) 536b52.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430659 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03266\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03266\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 536b52 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 4.88 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Research e425d0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Research e425d0.yaml index f651b3f47..935d87f1e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Research e425d0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Research e425d0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230315 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04109\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04109\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: e425d0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.03 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (2) 644af9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (2) 644af9.yaml index c1eaaf778..a88eb68a3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (2) 644af9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (2) 644af9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230340 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50007\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50007\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"intellectIcons\": 2,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: 644af9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.1 posY: 3.71 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (4) ca23d4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (4) ca23d4.yaml index bfdefd793..9142deb07 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (4) ca23d4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies (4) ca23d4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538726 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60428\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"intellectIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n - \ \"replenish\": 2,\r\n \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60428\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": + 2,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: ca23d4 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.06 posY: 3.92 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies 9e4505.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies 9e4505.yaml index c01b3981d..92fd24618 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies 9e4505.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arcane Studies 9e4505.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230324 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01062\",\r\n \"alternate_ids\": [\r\n \"01562\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01062\",\n \"alternate_ids\": [\n \"01562\"\n ],\n \"type\": + \"Asset\",\n \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Talent.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 9e4505 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 3d35aa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 3d35aa.yaml index ddf445261..c49d875b4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 3d35aa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 3d35aa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430653 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Prophecy Foretold DragSelectable: true -GMNotes: "{\r\n \"id\": \"03193\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03193\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 3d35aa Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.08 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 66d5a3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 66d5a3.yaml index 1acba80a9..d8056d03d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 66d5a3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) 66d5a3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 441024 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Markings of Isis DragSelectable: true -GMNotes: "{\r\n \"id\": \"52004\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52004\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Return to the Path to Carcosa\"\n}" GUID: 66d5a3 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.1 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) a14a11.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) a14a11.yaml index 332c113a4..deb59579b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) a14a11.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs (3) a14a11.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430652 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Guiding Stones DragSelectable: true -GMNotes: "{\r\n \"id\": \"03192\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03192\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: a14a11 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 4.53 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs cbfc12.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs cbfc12.yaml index e9475c4ca..21152195a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs cbfc12.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archaic Glyphs cbfc12.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368420 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: Untranslated DragSelectable: true -GMNotes: "{\r\n \"id\": \"03025\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Item. Occult. Tome.\",\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03025\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Item. + Occult. Tome.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: cbfc12 Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 098132.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 098132.yaml index 0f7b6a0d9..c0325e004 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 098132.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 098132.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379034 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Gateway to Paradise DragSelectable: true -GMNotes: "{\r\n \"id\": \"08044\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Leyline\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08044\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 2,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Leyline\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 098132 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.2 posY: 2.07 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 1fdf4c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 1fdf4c.yaml index 20975c623..0eaf2bc7b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 1fdf4c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 1fdf4c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379031 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Gateway to Tindalos DragSelectable: true -GMNotes: "{\r\n \"id\": \"08041\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Ritual.\",\r\n \"combatIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Leyline\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08041\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Ritual.\",\n + \ \"combatIcons\": 2,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Leyline\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 1fdf4c Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.2 posY: 2.16 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 4b1b99.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 4b1b99.yaml index 97d3a43ea..990b02378 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 4b1b99.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 4b1b99.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379033 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Gateway to Aldebaran DragSelectable: true -GMNotes: "{\r\n \"id\": \"08043\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Ritual.\",\r\n \"agilityIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Leyline\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08043\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Ritual.\",\n + \ \"agilityIcons\": 2,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Leyline\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 4b1b99 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.2 posY: 2.06 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 88ff66.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 88ff66.yaml index ec22854a1..352ec528c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 88ff66.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits (4) 88ff66.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379032 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Gateway to Acheron DragSelectable: true -GMNotes: "{\r\n \"id\": \"08042\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Ritual.\",\r\n \"intellectIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Leyline\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08042\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Ritual.\",\n + \ \"intellectIcons\": 2,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Leyline\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 88ff66 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.2 posY: 2.08 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits 8023f5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits 8023f5.yaml index 57ddc3ae0..414e43508 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits 8023f5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Archive of Conduits 8023f5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379023 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: Unidentified DragSelectable: true -GMNotes: "{\r\n \"id\": \"08033\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome. Occult.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08033\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tome. Occult.\",\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 0,\n + \ \"type\": \"Leyline\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 8023f5 Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 9.2 posY: 2.13 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ariadne's Twine (3) 27f6aa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ariadne's Twine (3) 27f6aa.yaml index fddc83dc9..7e4afa28c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ariadne's Twine (3) 27f6aa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ariadne's Twine (3) 27f6aa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589303 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07304\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Ritual.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 0,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07304\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Ritual.\",\n + \ \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 27f6aa Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.13 posY: 5.45 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arm Injury 8f1420.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arm Injury 8f1420.yaml index f9c823891..db4664cf0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arm Injury 8f1420.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arm Injury 8f1420.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378917 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08130\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Injury.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +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}" GUID: 8f1420 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.33 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Armageddon (4) 32e5a4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Armageddon (4) 32e5a4.yaml index ac4124bb9..449bbceee 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Armageddon (4) 32e5a4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Armageddon (4) 32e5a4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 579606 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07226\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Spell. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07226\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Spell. + Cursed.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 32e5a4 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.98 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Armageddon 3feff1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Armageddon 3feff1.yaml index 640ba491d..9aa3cd5d9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Armageddon 3feff1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Armageddon 3feff1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553109 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07117\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Cursed.\",\r\n \"combatIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07117\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Spell. + Cursed.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 3feff1 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.16 posY: 3.39 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Armor of Ardennes (5) f7a9ab.yaml b/unpacked/Bag All Player Cards 15bb07/Card Armor of Ardennes (5) f7a9ab.yaml index 4042b53e1..18a882463 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Armor of Ardennes (5) f7a9ab.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Armor of Ardennes (5) f7a9ab.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226360 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03305\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Item. Armor. Relic.\",\r\n - \ \"willpowerIcons\": 2,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"The Path to - Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03305\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Item. + Armor. Relic.\",\n \"willpowerIcons\": 2,\n \"combatIcons\": 2,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: f7a9ab Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.04 posY: 3.9 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Arrogance b2e5b0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Arrogance b2e5b0.yaml index 079d22d3f..f7c35a2a0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Arrogance b2e5b0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Arrogance b2e5b0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538601 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60303\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"wildIcons\": 1,\r\n \"negativeIcons\": - true,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60303\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"wildIcons\": 1,\n \"negativeIcons\": + true,\n \"cycle\": \"Investigator Packs\"\n}" GUID: b2e5b0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 4.05 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Art Student 07a8f0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Art Student 07a8f0.yaml index 2920bcb0d..fdfe6fa47 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Art Student 07a8f0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Art Student 07a8f0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368428 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02149\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02149\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally. + Miskatonic.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 07a8f0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card As you wish 4b891d.yaml b/unpacked/Bag All Player Cards 15bb07/Card As you wish 4b891d.yaml index b7e3518d3..6d810a2c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card As you wish 4b891d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card As you wish 4b891d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587700 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09002\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Practiced. Expert.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": \"The - Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09002\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Practiced. Expert.\",\n \"wildIcons\": 3,\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 4b891d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 19.08 posY: 2.21 posZ: 59.52 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Back) 5294c3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Back) 5294c3.yaml index 9423e5f87..503b864b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Back) 5294c3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Back) 5294c3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 469806 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Drifter DragSelectable: true -GMNotes: "{\r\n \"id\": \"02005-pb\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02005-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Survivor\",\n \"traits\": \"Drifter.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 2,\n \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 5294c3 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.81 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Front) 5294c3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Front) 5294c3.yaml index bf058f24a..8ffb11e6d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Front) 5294c3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel Front) 5294c3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 459806 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Drifter DragSelectable: true -GMNotes: "{\r\n \"id\": \"02005-pf\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02005-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Survivor\",\n \"traits\": \"Drifter.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 2,\n \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 5294c3 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.81 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel) 5294c3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel) 5294c3.yaml index 91a00f80d..197e28b80 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel) 5294c3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete (Parallel) 5294c3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 479806 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Drifter DragSelectable: true -GMNotes: "{\r\n \"id\": \"02005-p\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02005-p\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Drifter.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 5294c3 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.81 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete 5294c3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete 5294c3.yaml index 425107f3b..bef1c985c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete 5294c3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete 5294c3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449806 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Drifter DragSelectable: true -GMNotes: "{\r\n \"id\": \"02005\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02005\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Drifter.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 5294c3 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.81 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete b8fd86.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete b8fd86.yaml index 88ade019d..e3321af88 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete b8fd86.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ashcan Pete b8fd86.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 258909 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.17 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Astounding Revelation 7686cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Astounding Revelation 7686cb.yaml index 6144a5203..31410d1fc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Astounding Revelation 7686cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Astounding Revelation 7686cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 441025 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06023\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Research.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06023\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Research.\",\n \"intellectIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 7686cb Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.03 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Astral Mirror (2) b5d894.yaml b/unpacked/Bag All Player Cards 15bb07/Card Astral Mirror (2) b5d894.yaml index 69711e02e..919d2af0d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Astral Mirror (2) b5d894.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Astral Mirror (2) b5d894.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379115 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09091\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09091\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n + \ \"combatIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: b5d894 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.74 posY: 3.35 posZ: 65.49 - rotX: 359.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 3 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Astral Travel 31d087.yaml b/unpacked/Bag All Player Cards 15bb07/Card Astral Travel 31d087.yaml index b5b0f04ab..d3cce696f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Astral Travel 31d087.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Astral Travel 31d087.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230312 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03034\",\r\n \"alternate_ids\": [\r\n \"60413\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 3,\r\n - \ \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03034\",\n \"alternate_ids\": [\n \"60413\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": + \"Spell.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Path to Carcosa\"\n}" GUID: 31d087 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.09 posY: 3.71 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Astronomical Atlas (3) 804397.yaml b/unpacked/Bag All Player Cards 15bb07/Card Astronomical Atlas (3) 804397.yaml index 8abca0510..fc45ae431 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Astronomical Atlas (3) 804397.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Astronomical Atlas (3) 804397.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379057 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08067\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08067\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Tome.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 2,\n \"cycle\": \"Edge + of the Earth\"\n}" GUID: '804397' Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 78.51 posY: 1.06 posZ: 27.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card At a Crossroads (1) 48e90b.yaml b/unpacked/Bag All Player Cards 15bb07/Card At a Crossroads (1) 48e90b.yaml index 465cf080b..ac4570d74 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card At a Crossroads (1) 48e90b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card At a Crossroads (1) 48e90b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379133 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09109\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Dilemma. Insight.\",\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09109\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Dilemma. Insight.\",\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 48e90b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Atychiphobia a3bc7a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Atychiphobia a3bc7a.yaml index 89d9f8c4e..823dce37a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Atychiphobia a3bc7a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Atychiphobia a3bc7a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550802 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60504\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60504\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: a3bc7a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.87 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Augur cf9ca8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Augur cf9ca8.yaml index 496abb660..c0dfb5e0a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Augur cf9ca8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Augur cf9ca8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440626 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06033\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Ally. Creature. Dreamlands.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06033\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"traits\": \"Ally. Creature. Dreamlands.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: cf9ca8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.22 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card August Lindquist 83b588.yaml b/unpacked/Bag All Player Cards 15bb07/Card August Lindquist 83b588.yaml index 23e657f01..1e6110d78 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card August Lindquist 83b588.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card August Lindquist 83b588.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 312509 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Elegant and Elusive DragSelectable: true -GMNotes: "{\r\n \"id\": \"05227\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Cultist. Silver Twilight.\",\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05227\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Cultist. Silver Twilight.\",\n \"cycle\": \"The Circle Undone\"\n}" GUID: 83b588 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.08 posY: 3.72 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Awakened Mantle e81861.yaml b/unpacked/Bag All Player Cards 15bb07/Card Awakened Mantle e81861.yaml index 74da8fe1d..63de74abd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Awakened Mantle e81861.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Awakened Mantle e81861.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 451113 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07180\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic. Clothing.\",\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07180\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Relic. Clothing.\",\n \"agilityIcons\": 1,\n + \ \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e81861 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.76 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (3) c5fb42.yaml b/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (3) c5fb42.yaml index 530812c55..7fe2ceef8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (3) c5fb42.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (3) c5fb42.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538723 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60425\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60425\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: c5fb42 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.07 posY: 3.88 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (5) 0ee874.yaml b/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (5) 0ee874.yaml index c2793671d..842ea62ef 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (5) 0ee874.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Azure Flame (5) 0ee874.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538728 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60430\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60430\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"combatIcons\": 2,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 0ee874 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.16 posY: 3.95 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Azure Flame 17319c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Azure Flame 17319c.yaml index c430fca38..fbcc94b8c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Azure Flame 17319c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Azure Flame 17319c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538705 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60407\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60407\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 17319c Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.14 posY: 3.74 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Backpack (2) 389a34.yaml b/unpacked/Bag All Player Cards 15bb07/Card Backpack (2) 389a34.yaml index 37e8c50fd..3b8e6fcb1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Backpack (2) 389a34.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Backpack (2) 389a34.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545210 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"53011\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Item.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53011\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Neutral\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Item.\",\n + \ \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Return to the Forgotten + Age\"\n}" GUID: 389a34 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.1 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Backpack f59085.yaml b/unpacked/Bag All Player Cards 15bb07/Card Backpack f59085.yaml index aeb81f3d8..bc6f0fa0f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Backpack f59085.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Backpack f59085.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368517 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04037\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04037\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item.\",\n + \ \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: f59085 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.02 posY: 4.04 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Backstab (3) 7baf75.yaml b/unpacked/Bag All Player Cards 15bb07/Card Backstab (3) 7baf75.yaml index cbcdb3efc..a79efc6b2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Backstab (3) 7baf75.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Backstab (3) 7baf75.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538627 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60329\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60329\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 7baf75 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Backstab cdfd9f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Backstab cdfd9f.yaml index 4b11bf0ef..bdc0e94fe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Backstab cdfd9f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Backstab cdfd9f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368716 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01051\",\r\n \"alternate_ids\": [\r\n \"01551\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 3,\r\n - \ \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01051\",\n \"alternate_ids\": [\n \"01551\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": + \"Tactic.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: cdfd9f Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch (3) f9a232.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch (3) f9a232.yaml index b5c72a972..5a012a93f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch (3) f9a232.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch (3) f9a232.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590302 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05282\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05282\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: f9a232 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 3.88 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch 2c2d9a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch 2c2d9a.yaml index 55f1286f8..bc98df85b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch 2c2d9a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bait and Switch 2c2d9a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368809 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02034\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02034\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 2c2d9a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bandages b460e1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bandages b460e1.yaml index c06a2274f..7f11fb04d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bandages b460e1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bandages b460e1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378902 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08073\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08073\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item.\",\n \"agilityIcons\": 1,\n + \ \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: b460e1 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.18 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bandolier (2) e8b7ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bandolier (2) e8b7ad.yaml index edd191e6a..1774dc361 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bandolier (2) e8b7ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bandolier (2) e8b7ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314204 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51001\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51001\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item.\",\n + \ \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"Return to The Dunwich + Legacy\"\n}" GUID: e8b7ad Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.16 posY: 3.96 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bandolier 82775a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bandolier 82775a.yaml index 3eac72e9e..e733285d4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bandolier 82775a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bandolier 82775a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226325 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02147\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02147\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item.\",\n + \ \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 82775a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bangle of Jinxes (1) a65852.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bangle of Jinxes (1) a65852.yaml index 31d285717..8edd6d549 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bangle of Jinxes (1) a65852.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bangle of Jinxes (1) a65852.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378904 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08075\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Charm. Cursed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 1,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08075\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Charm. Cursed.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": + 1,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: a65852 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.92 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Banish (1) (Taboo) 1a3b10.yaml b/unpacked/Bag All Player Cards 15bb07/Card Banish (1) (Taboo) 1a3b10.yaml new file mode 100644 index 000000000..adaae15b5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Banish (1) (Taboo) 1a3b10.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 349 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"05113-t\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" +GUID: 1a3b10 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Banish (1) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -31.51 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Banish (1) a00fca.yaml b/unpacked/Bag All Player Cards 15bb07/Card Banish (1) a00fca.yaml index 449aa092e..c92588a13 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Banish (1) a00fca.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Banish (1) a00fca.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277509 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05113\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05113\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: a00fca Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 3.52 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Baron Samedi 16ad5d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Baron Samedi 16ad5d.yaml index b5c8b257b..c67b40438 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Baron Samedi 16ad5d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Baron Samedi 16ad5d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527552 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05019\",\r\n \"alternate_ids\": [\r\n \"99003\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"traits\": \"Avatar.\",\r\n - \ \"weakness\": true,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05019\",\n \"alternate_ids\": [\n \"99003\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Neutral\",\n \"traits\": \"Avatar.\",\n + \ \"weakness\": true,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 16ad5d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Barricade (3) 3689dd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Barricade (3) 3689dd.yaml index bce55c633..472884e92 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Barricade (3) 3689dd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Barricade (3) 3689dd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580901 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50004\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Return - to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50004\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Insight. Tactic.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Return to the + Night of the Zealot\"\n}" GUID: 3689dd Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.11 posY: 3.67 posZ: -56.75 - rotX: 333.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 333 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Barricade edb554.yaml b/unpacked/Bag All Player Cards 15bb07/Card Barricade edb554.yaml index 7c184c195..4dc3de74f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Barricade edb554.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Barricade edb554.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368404 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01038\",\r\n \"alternate_ids\": [\r\n \"01538\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 0,\r\n - \ \"level\": 0,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01038\",\n \"alternate_ids\": [\n \"01538\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Seeker\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": + \"Insight. Tactic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: edb554 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.66 posY: 3.38 posZ: -57.02 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat (2) 567525.yaml b/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat (2) 567525.yaml index 3919150f0..99b41dc80 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat (2) 567525.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat (2) 567525.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379137 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09113\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09113\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: '567525' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 14d8ff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 14d8ff.yaml index ca18b5ca2..cbdb34247 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 14d8ff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 14d8ff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587211 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01574\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01574\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 14d8ff Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.81 posY: 3.33 posZ: 7.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 48e103.yaml b/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 48e103.yaml index 038df3838..f38d3e04f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 48e103.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Baseball Bat 48e103.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368830 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01074\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01074\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 48e103 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bauta 9c9196.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bauta 9c9196.yaml index 73e7072da..7b93de7d8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bauta 9c9196.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bauta 9c9196.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 295601 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"82023\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Mask.\",\r\n \"combatIcons\": 1,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"82023\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Mask.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Standalone\"\n}" GUID: 9c9196 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.67 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bear Trap 74840a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bear Trap 74840a.yaml index fa4905b3c..5da0dcba5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bear Trap 74840a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bear Trap 74840a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 454100 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Trap. DragSelectable: true -GMNotes: "{\r\n \"id\": \"81020\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Trap.\",\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"81020\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Trap.\",\n \"cycle\": \"Standalone\"\n}" GUID: 74840a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.29 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Beat Cop (2) 7001be.yaml b/unpacked/Bag All Player Cards 15bb07/Card Beat Cop (2) 7001be.yaml index ec99d8642..fee7d5d65 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Beat Cop (2) 7001be.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Beat Cop (2) 7001be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226348 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01028\",\r\n \"alternate_ids\": [\r\n \"01528\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 4,\r\n - \ \"level\": 2,\r\n \"traits\": \"Ally. Police.\",\r\n \"combatIcons\": 1,\r\n - \ \"agilityIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01028\",\n \"alternate_ids\": [\n \"01528\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Guardian\",\n \"cost\": 4,\n + \ \"level\": 2,\n \"traits\": \"Ally. Police.\",\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: 7001be Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 81.46 posY: 2.32 posZ: 6.07 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 3 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Beat Cop 7d4749.yaml b/unpacked/Bag All Player Cards 15bb07/Card Beat Cop 7d4749.yaml index 76888b847..d30a7eea6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Beat Cop 7d4749.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Beat Cop 7d4749.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226331 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01018\",\r\n \"alternate_ids\": [\r\n \"01518\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 4,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Police.\",\r\n \"combatIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01018\",\n \"alternate_ids\": [\n \"01518\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Guardian\",\n \"cost\": 4,\n + \ \"level\": 0,\n \"traits\": \"Ally. Police.\",\n \"combatIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: 7d4749 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 77.85 posY: 4.47 posZ: 27.06 - rotX: 302.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 302 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Becky 587589.yaml b/unpacked/Bag All Player Cards 15bb07/Card Becky 587589.yaml index 28ef9bf50..936512d0a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Becky 587589.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Becky 587589.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581200 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Custom Marlin Model 1894 DragSelectable: true -GMNotes: "{\r\n \"id\": \"06006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 2,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06006\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Weapon. Firearm.\",\n + \ \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": + [\n {\n \"count\": 2,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: '587589' Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.04 posY: 3.9 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Belly of the Beast dffa9d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Belly of the Beast dffa9d.yaml index 10c4bbc1f..009f4b268 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Belly of the Beast dffa9d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Belly of the Beast dffa9d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277911 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05160\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Gambit. Trick.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05160\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Gambit. Trick.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: dffa9d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 3.89 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Beloved b4666d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Beloved b4666d.yaml index 9053868ae..cd15213f4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Beloved b4666d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Beloved b4666d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587030 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07036\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07036\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Innate. Blessed.\",\n \"willpowerIcons\": 1,\n + \ \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: b4666d Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 8.97 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Beretta M1918 (4) 91da6b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Beretta M1918 (4) 91da6b.yaml index fbfca85e9..2fb063124 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Beretta M1918 (4) 91da6b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Beretta M1918 (4) 91da6b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538629 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60331\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 2,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 4,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60331\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 2,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Investigator Packs\"\n}" GUID: 91da6b Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.98 posY: 4.03 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bestow Resolve (2) 39e14a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bestow Resolve (2) 39e14a.yaml index a0f8c303a..adcb5d959 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bestow Resolve (2) 39e14a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bestow Resolve (2) 39e14a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379025 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09032\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09032\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 39e14a Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 17.02 posY: 3.35 posZ: 65.98 - rotX: 358.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bind Monster (2) ba1460.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bind Monster (2) ba1460.yaml index 6f07bd055..ebc029a9a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bind Monster (2) ba1460.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bind Monster (2) ba1460.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230347 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02031\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02031\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: ba1460 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.85 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Binder's Jar (1) c72750.yaml b/unpacked/Bag All Player Cards 15bb07/Card Binder's Jar (1) c72750.yaml index 760cf0fb6..2743a7602 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Binder's Jar (1) c72750.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Binder's Jar (1) c72750.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379113 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Interdimensional Prison DragSelectable: true -GMNotes: "{\r\n \"id\": \"09089\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09089\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: c72750 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.37 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bizarre Diagnosis 2423d4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bizarre Diagnosis 2423d4.yaml index 43e545c48..a70d4e095 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bizarre Diagnosis 2423d4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bizarre Diagnosis 2423d4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379039 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09046\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Science.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09046\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight. Science.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 2423d4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 357 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 8e4d23.yaml b/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 4d085b.yaml similarity index 51% rename from unpacked/Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 8e4d23.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 4d085b.yaml index 3571efd67..9ee8a2e79 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 8e4d23.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) (Taboo) 4d085b.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 558215 +CardID: 322 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '5582': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08055-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Favor.\",\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" -GUID: 8e4d23 +GMNotes: "{\n \"id\": \"08055-t\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Favor.\",\n \"cycle\": \"Edge + of the Earth\"\n}" +GUID: 4d085b Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 21.61 - posY: 4.32 - posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -19.75 + posY: 3.45 + posZ: -29.26 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) 20da53.yaml b/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) 20da53.yaml index 691eefee0..565a9aa7c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) 20da53.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Black Market (2) 20da53.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379045 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08055\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Favor.\",\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08055\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Favor.\",\n \"cycle\": \"Edge + of the Earth\"\n}" GUID: 20da53 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.22 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blackjack (2) 37a2b5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blackjack (2) 37a2b5.yaml index 1cc440eb9..d1c23aa24 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blackjack (2) 37a2b5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blackjack (2) 37a2b5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314105 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51002\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Return to The - Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51002\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Return + to The Dunwich Legacy\"\n}" GUID: 37a2b5 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.98 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blackjack 097dcc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blackjack 097dcc.yaml index 3286707df..31a5971c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blackjack 097dcc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blackjack 097dcc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226321 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02016\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02016\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 097dcc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blade of Ark'at e89f48.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blade of Ark'at e89f48.yaml index 339d03967..0c97904df 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blade of Ark'at e89f48.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blade of Ark'at e89f48.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582629 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Shellblade Tribute DragSelectable: true -GMNotes: "{\r\n \"id\": \"86054\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n \"combatIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"86054\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Relic. Weapon. Melee.\",\n \"combatIcons\": + 2,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: e89f48 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.74 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blessed Blade cf4571.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blessed Blade cf4571.yaml index c91e81037..063081f43 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blessed Blade cf4571.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blessed Blade cf4571.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581612 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07018\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee. Blessed.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07018\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee. Blessed.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: cf4571 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blessing of Isis (3) 205385.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blessing of Isis (3) 205385.yaml index dd02a2e4c..63d1862d3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blessing of Isis (3) 205385.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blessing of Isis (3) 205385.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580801 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07190\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Ritual. Blessed.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07190\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Ritual. Blessed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: '205385' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blinding Light (2) 8254d4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blinding Light (2) 8254d4.yaml index 68b98812b..9d5cf05ee 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blinding Light (2) 8254d4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blinding Light (2) 8254d4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230342 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01069\",\r\n \"alternate_ids\": [\r\n \"01569\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01069\",\n \"alternate_ids\": [\n \"01569\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": + \"Spell.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 8254d4 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 34.13 posY: 3.38 posZ: -45.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blinding Light 30f860.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blinding Light 30f860.yaml index df4239d71..afd585575 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blinding Light 30f860.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blinding Light 30f860.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230311 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01066\",\r\n \"alternate_ids\": [\r\n \"01566\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01066\",\n \"alternate_ids\": [\n \"01566\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Spell.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 30f860 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 33.83 posY: 3.38 posZ: -45.84 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (1) 5efc92.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (1) 5efc92.yaml index 6934d51a9..7e80c2ab9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (1) 5efc92.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (1) 5efc92.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545200 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"53001\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Spell. Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53001\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Spell. Spirit.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: 5efc92 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.87 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (3) 53d765.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (3) 53d765.yaml index 41cd407ca..f14dc51e0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (3) 53d765.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blood Eclipse (3) 53d765.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314000 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04266\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Spell. Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04266\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Spell. Spirit.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 53d765 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.18 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blood Pact (3) 64e131.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blood Pact (3) 64e131.yaml index 35225ae48..215d34878 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blood Pact (3) 64e131.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blood Pact (3) 64e131.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230348 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02191\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Spell. Pact.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02191\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Spell. Pact.\",\n \"permanent\": + true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 64e131 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.85 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blood Pact fc709b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blood Pact fc709b.yaml index 2087a99fb..76591595a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blood Pact fc709b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blood Pact fc709b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232106 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07158\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Pact.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07158\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell. Pact.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: fc709b Grid: true GridProjection: false @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.0 + posX: 9 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blood Will Have Blood (2) e81f1e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blood Will Have Blood (2) e81f1e.yaml index e40e78439..196f169c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blood Will Have Blood (2) e81f1e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blood Will Have Blood (2) e81f1e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378908 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08079\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Pact. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08079\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Pact. Cursed.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: e81f1e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.93 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blood-Rite eafd12.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blood-Rite eafd12.yaml index 265b349f7..9f5be9961 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blood-Rite eafd12.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blood-Rite eafd12.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 591621 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05317\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05317\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: eafd12 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.06 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bloodlust aafc17.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bloodlust aafc17.yaml index 809b5562e..5327979d2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bloodlust aafc17.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bloodlust aafc17.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440925 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Treachery DragSelectable: true -GMNotes: "{\r\n \"id\": \"06019\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06019\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: aafc17 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.15 posY: 3.99 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bloodstained Dagger d71f11.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bloodstained Dagger d71f11.yaml index 35fc5856d..13117fd63 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bloodstained Dagger d71f11.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bloodstained Dagger d71f11.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: The Murder Weapon DragSelectable: true -GMNotes: "{\r\n \"id\": \"84006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Weapon. Melee. Cursed.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"84006\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Weapon. Melee. Cursed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"Standalone\"\n}" GUID: d71f11 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.9 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blur (1) 5be76d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blur (1) 5be76d.yaml index e27fcdfed..e0325cdfa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blur (1) 5be76d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blur (1) 5be76d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378947 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08109\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue|Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Spell.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08109\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue|Mystic\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Spell.\",\n + \ \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 5be76d Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.99 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Blur (4) 5ade28.yaml b/unpacked/Bag All Player Cards 15bb07/Card Blur (4) 5ade28.yaml index cd72e4996..a6d652ce7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Blur (4) 5ade28.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Blur (4) 5ade28.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378949 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08111\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue|Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08111\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue|Mystic\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 5ade28 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.34 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins 419b0c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins 419b0c.yaml index 706532261..2307b6870 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins 419b0c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins 419b0c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379504 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Salesman DragSelectable: true -GMNotes: "{\r\n \"id\": \"08016\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Entrepreneur.\",\r\n \"willpowerIcons\": 2,\r\n - \ \"intellectIcons\": 4,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08016\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Entrepreneur.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 4,\n \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 419b0c Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.92 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins aa1c23.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins aa1c23.yaml index 9cd3b1aa7..b58905d7d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins aa1c23.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bob Jenkins aa1c23.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379200 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.16 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bolas d4b254.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bolas d4b254.yaml index e2f25167c..9dccfc90d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bolas d4b254.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bolas d4b254.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379018 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09025\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09025\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: d4b254 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 11.77 posY: 2.2 posZ: 49.52 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bonesaw 4b371d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bonesaw 4b371d.yaml index cd73cbad4..c0411a9e8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bonesaw 4b371d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bonesaw 4b371d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587702 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09005\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Tool. Melee.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09005\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Item. Tool. Melee.\",\n + \ \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 4b371d Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 17.43 posY: 2.21 posZ: 59.48 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bonnie Walsh 634e9e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bonnie Walsh 634e9e.yaml index 25e37b7d5..18d6c1ab6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bonnie Walsh 634e9e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bonnie Walsh 634e9e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379012 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Loyal Assistant DragSelectable: true -GMNotes: "{\r\n \"id\": \"09019\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Civic. Assistant.\",\r\n \"wildIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09019\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Ally. Civic. Assistant.\",\n + \ \"wildIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 634e9e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 10.4 posY: 2.2 posZ: 46.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Book of Psalms cc1ef3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Book of Psalms cc1ef3.yaml index 722f8fa9d..9cf277532 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Book of Psalms cc1ef3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Book of Psalms cc1ef3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588011 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07017\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome. Blessed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07017\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tome. Blessed.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: cc1ef3 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.11 posY: 3.84 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (1) 35166c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (1) 35166c.yaml index cea275212..e811ed248 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (1) 35166c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (1) 35166c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230336 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03154\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03154\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 35166c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (3) 296dc8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (3) 296dc8.yaml index 1287cd3df..b4aac060f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (3) 296dc8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Book of Shadows (3) 296dc8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230354 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01070\",\r\n \"alternate_ids\": [\r\n \"01570\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 4,\r\n - \ \"level\": 3,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01070\",\n \"alternate_ids\": [\n \"01570\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": + 3,\n \"traits\": \"Item. Tome.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: 296dc8 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 32.98 posY: 3.63 posZ: -47.41 - rotX: 349.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 349 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Borrowed Time (3) 0db666.yaml b/unpacked/Bag All Player Cards 15bb07/Card Borrowed Time (3) 0db666.yaml index 5cdf39f2e..7eef89aca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Borrowed Time (3) 0db666.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Borrowed Time (3) 0db666.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315253 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04308\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04308\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Click\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 0db666 Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 9.17 posY: 3.11 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bought in Blood 275dc3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bought in Blood 275dc3.yaml index 497699d76..027549283 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bought in Blood 275dc3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bought in Blood 275dc3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 377141 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04007\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04007\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 275dc3 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.1 posY: 3.74 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bounty Contracts 4d9b32.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bounty Contracts 4d9b32.yaml index 056a3b683..d7facf07f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bounty Contracts 4d9b32.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bounty Contracts 4d9b32.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582204 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06010\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"startsInPlay\": true,\r\n \"traits\": \"Job.\",\r\n \"permanent\": true,\r\n - \ \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": \"Bounty\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06010\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Job.\",\n \"permanent\": true,\n \"uses\": + [\n {\n \"count\": 6,\n \"type\": \"Bounty\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 4d9b32 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves (3) 54293e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves (3) 54293e.yaml index f64841d18..4ef0efcee 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves (3) 54293e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves (3) 54293e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545325 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60127\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Weapon.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60127\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Weapon.\",\n \"combatIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 54293e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 3.0 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves db4a43.yaml b/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves db4a43.yaml index cac324e41..30085d8df 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves db4a43.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Boxing Gloves db4a43.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545303 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60105\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60105\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Weapon.\",\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: db4a43 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 4.07 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (1) 0fff60.yaml b/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (1) 0fff60.yaml index 0fb875a86..b9d13fabb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (1) 0fff60.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (1) 0fff60.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378928 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08090\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08090\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Guardian|Mystic\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": + \"Spell.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": 6,\n + \ \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 0fff60 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.19 posY: 2.53 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (4) 200b64.yaml b/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (4) 200b64.yaml index 866b0ee37..e93929b0d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (4) 200b64.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Brand of Cthugha (4) 200b64.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378930 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08092\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 9,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08092\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Guardian|Mystic\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": + \"Spell.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 9,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 200b64 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.19 posY: 2.52 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Breach the Door 74969c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Breach the Door 74969c.yaml index a5a789398..25e66e219 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Breach the Door 74969c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Breach the Door 74969c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379019 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09026\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Tactic. Police.\",\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09026\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Tactic. Police.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 74969c Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 11.58 posY: 2.2 posZ: 52.95 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering (2) 3411dd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering (2) 3411dd.yaml index 1f9b31548..c8c348f39 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering (2) 3411dd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering (2) 3411dd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379067 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09074\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09074\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 3411dd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering 31cfbf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering 31cfbf.yaml index 5543a9946..dac66c728 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering 31cfbf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Breaking and Entering 31cfbf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553106 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07114\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07114\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 31cfbf Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.9 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Brother Xavier (1) 3c9617.yaml b/unpacked/Bag All Player Cards 15bb07/Card Brother Xavier (1) 3c9617.yaml index d78e172c3..94c2a4d07 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Brother Xavier (1) 3c9617.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Brother Xavier (1) 3c9617.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226340 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Pure of Spirit DragSelectable: true -GMNotes: "{\r\n \"id\": \"02106\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 5,\r\n \"level\": 1,\r\n \"traits\": \"Ally. \",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02106\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 5,\n \"level\": 1,\n \"traits\": \"Ally. + \",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 3c9617 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.07 posY: 3.76 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bruiser (3) 8ec9cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bruiser (3) 8ec9cb.yaml index f59149a59..1fc8abbd8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bruiser (3) 8ec9cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bruiser (3) 8ec9cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378960 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08122\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Rogue|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"replenish\": 2,\r\n - \ \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08122\",\n \"type\": \"Asset\",\n \"class\": \"Guardian|Rogue|Survivor\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": 2,\n \"type\": + \"Resource\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 8ec9cb Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Brute Force (1) fb9b7e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Brute Force (1) fb9b7e.yaml index 0425a76c8..c0a0e7413 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Brute Force (1) fb9b7e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Brute Force (1) fb9b7e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380230 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06166\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Developed.\",\r\n \"combatIcons\": 1,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06166\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Developed.\",\n \"combatIcons\": 1,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: fb9b7e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bulletproof Vest (3) c4cf62.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bulletproof Vest (3) c4cf62.yaml index 26a98186f..1f6a81812 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bulletproof Vest (3) c4cf62.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bulletproof Vest (3) c4cf62.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368521 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01094\",\r\n \"alternate_ids\": [\r\n \"01594\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 2,\r\n - \ \"level\": 3,\r\n \"traits\": \"Item. Armor.\",\r\n \"combatIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01094\",\n \"alternate_ids\": [\n \"01594\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Body\",\n \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": + 3,\n \"traits\": \"Item. Armor.\",\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n + \ \"cycle\": \"Core\"\n}" GUID: c4cf62 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burden of Destiny 45c19e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burden of Destiny 45c19e.yaml index a3b681b97..ddf2f5a0d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Burden of Destiny 45c19e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Burden of Destiny 45c19e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379007 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08015\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08015\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 45c19e Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.2 posY: 2.6 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burden of Leadership 22e624.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burden of Leadership 22e624.yaml index d6779b246..4a924497b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Burden of Leadership 22e624.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Burden of Leadership 22e624.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379013 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09020\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09020\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 22e624 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 11.29 posY: 2.2 posZ: 45.06 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burglary (2) 2aeb8a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burglary (2) 2aeb8a.yaml index 899ff54eb..1c137e69c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Burglary (2) 2aeb8a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Burglary (2) 2aeb8a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447631 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06200\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Talent. Illicit.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06200\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Talent. Illicit.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 2aeb8a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burglary 5d04a1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burglary 5d04a1.yaml index 026621be1..cce9284ca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Burglary 5d04a1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Burglary 5d04a1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587206 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01545\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Talent. Illicit.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01545\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Talent. Illicit.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: 5d04a1 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.81 posY: 3.32 posZ: 7.67 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burglary bc3451.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burglary bc3451.yaml index 670e4a63b..b3abbaaca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Burglary bc3451.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Burglary bc3451.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368622 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01045\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Talent. Illicit.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01045\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Talent. Illicit.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: bc3451 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Buried Secrets 28080d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Buried Secrets 28080d.yaml index 422c98f80..405b3ab17 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Buried Secrets 28080d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Buried Secrets 28080d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379006 ColorDiffuse: @@ -17,11 +17,10 @@ CustomDeck: NumWidth: 10 Type: 0 UniqueBack: false -Description: Weakness +Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08009\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Mystery.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08009\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Mystery.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 28080d Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.2 posY: 2.67 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burn After Reading (1) (Taboo) 2ced40.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burn After Reading (1) (Taboo) 2ced40.yaml new file mode 100644 index 000000000..3e9490cea --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Burn After Reading (1) (Taboo) 2ced40.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 333 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"08076-t\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" +GUID: 2ced40 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Burn After Reading (1) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -40.54 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burn After Reading (1) eedd0b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burn After Reading (1) eedd0b.yaml index 4d6f740f3..1dde1b39b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Burn After Reading (1) eedd0b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Burn After Reading (1) eedd0b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378905 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08076\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Insight.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08076\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: eedd0b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.9 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Burning the Midnight Oil 0d29be.yaml b/unpacked/Bag All Player Cards 15bb07/Card Burning the Midnight Oil 0d29be.yaml index e81d56db7..ccac8690c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Burning the Midnight Oil 0d29be.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Burning the Midnight Oil 0d29be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538812 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60214\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60214\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 0d29be Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.33 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Bury Them Deep e6efe6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Bury Them Deep e6efe6.yaml index c40b16bd1..fa23b090a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Bury Them Deep e6efe6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Bury Them Deep e6efe6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431818 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03016\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Task.\",\r\n \"willpowerIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"victory\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03016\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Task.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": + 1,\n \"wildIcons\": 1,\n \"victory\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: e6efe6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.76 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Butterfly Effect (1) 22fc6c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Butterfly Effect (1) 22fc6c.yaml index 3c931c579..594390a2c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Butterfly Effect (1) 22fc6c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Butterfly Effect (1) 22fc6c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232108 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07160\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Paradox. Blessed. Cursed.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07160\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Paradox. Blessed. Cursed.\",\n + \ \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 22fc6c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.78 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (2) 5779d3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (2) 5779d3.yaml index c4d18adc0..6a360fffb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (2) 5779d3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (2) 5779d3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379015 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08025\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08025\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge + of the Earth\"\n}" GUID: 5779d3 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.99 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (5) 0a312f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (5) 0a312f.yaml index 45252f5d4..b23433839 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (5) 0a312f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Butterfly Swords (5) 0a312f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379020 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08030\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08030\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 0a312f Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.2 posY: 2.26 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Calculated Risk dfbed9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Calculated Risk dfbed9.yaml index 0187f86c2..95f56c164 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Calculated Risk dfbed9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Calculated Risk dfbed9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379063 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09070\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Gambit. Fated.\",\r\n \"dynamicIcons\": true,\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09070\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Gambit. Fated.\",\n \"dynamicIcons\": true,\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: dfbed9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Call for Backup (2) 1d1901.yaml b/unpacked/Bag All Player Cards 15bb07/Card Call for Backup (2) 1d1901.yaml index 30ac0a13b..88b5a6a90 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Call for Backup (2) 1d1901.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Call for Backup (2) 1d1901.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378916 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08129\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Favor. Synergy.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08129\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Favor. Synergy.\",\n \"wildIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 1d1901 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.21 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Call of the Unknown 86feae.yaml b/unpacked/Bag All Player Cards 15bb07/Card Call of the Unknown 86feae.yaml index 33e068cd6..55d140ab2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Call of the Unknown 86feae.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Call of the Unknown 86feae.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 377244 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04009\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Task.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04009\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task.\",\n \"weakness\": true,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 86feae Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.13 posY: 5.51 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Called by the Mists e628de.yaml b/unpacked/Bag All Player Cards 15bb07/Card Called by the Mists e628de.yaml index f67cd6213..d705c5bed 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Called by the Mists e628de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Called by the Mists e628de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550801 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60503\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60503\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"Investigator Packs\"\n}" GUID: e628de Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.05 posY: 3.89 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Calling in Favors 9b9e8b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Calling in Favors 9b9e8b.yaml index d5935c614..9d77395ec 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Calling in Favors 9b9e8b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Calling in Favors 9b9e8b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368510 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03158\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Favor.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03158\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Favor.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 9b9e8b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.11 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright 510d45.yaml b/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright 510d45.yaml index e4270e427..9955d0e73 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright 510d45.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright 510d45.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261820 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.65 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright b02a1e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright b02a1e.yaml index 92475cb73..156a4baf1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright b02a1e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Calvin Wright b02a1e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271720 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Haunted DragSelectable: true -GMNotes: "{\r\n \"id\": \"04005\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Cursed. Drifter.\",\r\n \"willpowerIcons\": 0,\r\n - \ \"intellectIcons\": 0,\r\n \"combatIcons\": 0,\r\n \"agilityIcons\": 0,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04005\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Cursed. Drifter.\",\n \"willpowerIcons\": 0,\n \"intellectIcons\": + 0,\n \"combatIcons\": 0,\n \"agilityIcons\": 0,\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: b02a1e Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 1.94 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Captivating Discovery 498bc8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Captivating Discovery 498bc8.yaml index 3d45f7260..c5cd2f72f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Captivating Discovery 498bc8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Captivating Discovery 498bc8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379400 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09047\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09047\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 498bc8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern 30614e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern 30614e.yaml index 5d0ea4c6d..2f01839ce 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern 30614e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern 30614e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273302 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05001-m\",\r\n \"alternate_ids\": [\r\n \"98010-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"05001-m\",\n \"alternate_ids\": [\n \"98010-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: 30614e Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273306 ColorDiffuse: @@ -88,7 +88,7 @@ States: rotY: 269.9983 rotZ: -5.466912e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -12.2 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern b03b12.yaml b/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern b03b12.yaml index 69fd302f5..efae00ff4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern b03b12.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Carolyn Fern b03b12.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273521 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Psychologist DragSelectable: true -GMNotes: "{\r\n \"id\": \"05001\",\r\n \"alternate_ids\": [\r\n \"98010\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Guardian\",\r\n \"traits\": - \"Medic.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": 4,\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05001\",\n \"alternate_ids\": [\n \"98010\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Guardian\",\n \"traits\": \"Medic.\",\n \"willpowerIcons\": + 3,\n \"intellectIcons\": 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: b03b12 Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273527 ColorDiffuse: @@ -93,7 +93,7 @@ States: rotY: 179.900131 rotZ: -3.31672339e-07 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -18.47 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair c0f76c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair c0f76c.yaml index a66dd0876..1a0afa9c1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair c0f76c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair c0f76c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846200 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 16.36 posY: 2.21 posZ: 55.07 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair dc96d1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair dc96d1.yaml index 20c223d62..fd650c3ee 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair dc96d1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Carson Sinclair dc96d1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 843400 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Butler DragSelectable: true -GMNotes: "{\r\n \"id\": \"09001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Assistant.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Assistant.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: dc96d1 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 22.9 posY: 2.21 posZ: 52.02 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cat Burglar (1) 2fe723.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cat Burglar (1) 2fe723.yaml index 85bc83d87..54d1e8615 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cat Burglar (1) 2fe723.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cat Burglar (1) 2fe723.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315239 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01055\",\r\n \"alternate_ids\": [\r\n \"01555\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 4,\r\n - \ \"level\": 1,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"agilityIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01055\",\n \"alternate_ids\": [\n \"01555\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": + 1,\n \"traits\": \"Ally. Criminal.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: 2fe723 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Caught Red-Handed ecd087.yaml b/unpacked/Bag All Player Cards 15bb07/Card Caught Red-Handed ecd087.yaml index 14be3a9a2..52d526558 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Caught Red-Handed ecd087.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Caught Red-Handed ecd087.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 376840 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04012\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Blunder.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04012\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Blunder.\",\n \"weakness\": true,\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: ecd087 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.93 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Celaeno Fragments d287bc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Celaeno Fragments d287bc.yaml index b706954c5..384a01459 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Celaeno Fragments d287bc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Celaeno Fragments d287bc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538804 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Book of Books DragSelectable: true -GMNotes: "{\r\n \"id\": \"60206\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60206\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: d287bc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.02 posY: 4.06 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle (4) 4a6a9f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle (4) 4a6a9f.yaml index 24733de6c..d95e7acdc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle (4) 4a6a9f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle (4) 4a6a9f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379120 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09096\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Charm. Weapon. Melee.\",\r\n - \ \"combatIcons\": 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09096\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Item. + Charm. Weapon. Melee.\",\n \"combatIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 4a6a9f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.74 posY: 3.36 posZ: 65.49 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle b5e78c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle b5e78c.yaml index 3a5f61853..ca17423c0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle b5e78c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ceremonial Sickle b5e78c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379106 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09082\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09082\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Charm. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: b5e78c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Chainsaw (4) d40f4e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Chainsaw (4) d40f4e.yaml index 9457e3a89..88618fa7c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Chainsaw (4) d40f4e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Chainsaw (4) d40f4e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550827 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60529\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Item. Tool. Weapon. Melee.\",\r\n - \ \"combatIcons\": 3,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60529\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Survivor\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Item. + Tool. Weapon. Melee.\",\n \"combatIcons\": 3,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: d40f4e Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.14 posY: 3.83 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Charisma (3) 9e6c55.yaml b/unpacked/Bag All Player Cards 15bb07/Card Charisma (3) 9e6c55.yaml index bd020e222..29a2e684f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Charisma (3) 9e6c55.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Charisma (3) 9e6c55.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292524 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02158\",\r\n \"alternate_ids\": [\r\n \"01694\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"level\": 3,\r\n - \ \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02158\",\n \"alternate_ids\": [\n \"01694\"\n ],\n \"type\": + \"Asset\",\n \"class\": \"Neutral\",\n \"level\": 3,\n \"traits\": \"Talent.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 9e6c55 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 32.89 posY: 2.3 posZ: -77.65 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Charles Ross, Esq. 4a2a36.yaml b/unpacked/Bag All Player Cards 15bb07/Card Charles Ross, Esq. 4a2a36.yaml index 9a7490eac..1d38487d4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Charles Ross, Esq. 4a2a36.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Charles Ross, Esq. 4a2a36.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368430 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Acquisitions and Solicitation DragSelectable: true -GMNotes: "{\r\n \"id\": \"03149\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Patron.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03149\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally. + Patron.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 4a2a36 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 4.09 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 4deeff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 4deeff.yaml index b2db25d72..7ba3c8130 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 4deeff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 4deeff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846105 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 14.5 posY: 2.21 posZ: 57.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 95fb5e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 95fb5e.yaml index 0bdab8311..f3c7f5b48 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 95fb5e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Charlie Kane 95fb5e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 843405 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Politician DragSelectable: true -GMNotes: "{\r\n \"id\": \"09018\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Civic. Socialite.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09018\",\n \"type\": \"Investigator\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Civic. Socialite.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 95fb5e Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 16.49 posY: 2.21 posZ: 52.58 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Charon's Obol (1) 1dbc95.yaml b/unpacked/Bag All Player Cards 15bb07/Card Charon's Obol (1) 1dbc95.yaml index c9eb0dec7..afd4208f7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Charon's Obol (1) 1dbc95.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Charon's Obol (1) 1dbc95.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315233 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: The Ferryman's Pay DragSelectable: true -GMNotes: "{\r\n \"id\": \"03308\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03308\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"level\": 1,\n \"traits\": \"Item. Relic.\",\n \"permanent\": true,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 1dbc95 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot (2) 0b963c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot (2) 0b963c.yaml index 1656f2b28..0d3739302 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot (2) 0b963c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot (2) 0b963c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538621 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60323\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Trick.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60323\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Trick.\",\n \"combatIcons\": 1,\n + \ \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 0b963c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.12 posY: 4.07 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot b8c93a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot b8c93a.yaml index 1bafc7dfa..2a98bb0fa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot b8c93a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cheap Shot b8c93a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368715 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03194\",\r\n \"alternate_ids\": [\r\n \"60312\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03194\",\n \"alternate_ids\": [\n \"60312\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Trick.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path + to Carcosa\"\n}" GUID: b8c93a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.6 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cheat Death (5) 3add54.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cheat Death (5) 3add54.yaml index e172c502f..9a020b880 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cheat Death (5) 3add54.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cheat Death (5) 3add54.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315261 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03310\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 5,\r\n \"traits\": \"Trick. Fated.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03310\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 5,\n \"traits\": \"Trick. Fated.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 3add54 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cheat the System (1) f6d572.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cheat the System (1) f6d572.yaml index 9cc8caad5..2a8cff945 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cheat the System (1) f6d572.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cheat the System (1) f6d572.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379040 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08050\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Trick. Synergy.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08050\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Trick. Synergy.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: f6d572 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.33 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Chemistry Set da9727.yaml b/unpacked/Bag All Player Cards 15bb07/Card Chemistry Set da9727.yaml similarity index 61% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Chemistry Set da9727.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Chemistry Set da9727.yaml index 880b86b53..a5d86af65 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Chemistry Set da9727.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Chemistry Set da9727.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 102 +CardID: 12102 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\n \"id\": \"10040\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n - \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. Tool. Science.\",\n \"intellectIcons\": - 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GMNotes: "{\n \"id\": \"10040\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool. Science.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" GUID: da9727 Grid: true GridProjection: false @@ -43,14 +44,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -44.35 - posY: 3.23 - posZ: -101.42 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 79.31 + posY: 3.21 + posZ: 20.57 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake (1) 5a2b49.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake (1) 5a2b49.yaml index 3f61f39b7..be9b194a0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake (1) 5a2b49.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake (1) 5a2b49.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550818 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60520\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60520\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 5a2b49 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.08 posY: 3.77 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake 215cec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake 215cec.yaml index 77c6c038b..fe59d50d3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake 215cec.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cherished Keepsake 215cec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368821 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03114\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03114\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 215cec Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.17 posY: 3.03 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Chicago Typewriter (4) ecfa42.yaml b/unpacked/Bag All Player Cards 15bb07/Card Chicago Typewriter (4) ecfa42.yaml index bd9a4b8d6..a2a71727d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Chicago Typewriter (4) ecfa42.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Chicago Typewriter (4) ecfa42.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315260 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02304\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 5,\r\n \"level\": 4,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02304\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Rogue\",\n \"cost\": 5,\n \"level\": 4,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 2,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: ecfa42 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.15 posY: 3.67 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Chronophobia eeb330.yaml b/unpacked/Bag All Player Cards 15bb07/Card Chronophobia eeb330.yaml index 0dbdb44e6..22dae9557 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Chronophobia eeb330.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Chronophobia eeb330.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431207 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"02039\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02039\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 2,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: eeb330 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (2) ea31c2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (2) ea31c2.yaml index 01f26be89..29c8fcb0f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (2) ea31c2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (2) ea31c2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379065 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: O'Bannion Driver DragSelectable: true -GMNotes: "{\r\n \"id\": \"09072\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09072\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 2,\n \"traits\": \"Ally. + Criminal.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Scarlet Keys\"\n}" GUID: ea31c2 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (5) 0e72b6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (5) 0e72b6.yaml index 99cd106f2..815f41f4d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (5) 0e72b6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Chuck Fergus (5) 0e72b6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538630 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: O'Bannion Driver DragSelectable: true -GMNotes: "{\r\n \"id\": \"60332\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60332\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Ally. + Criminal.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 0e72b6 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 5.22 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (3) f5d382.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (3) f5d382.yaml index ee2d11e52..1c9788b47 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (3) f5d382.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (3) f5d382.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538724 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60426\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60426\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: f5d382 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.11 posY: 3.76 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (5) e21200.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (5) e21200.yaml index 1f4ad578a..6c46707e2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (5) e21200.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance (5) e21200.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538729 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60431\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60431\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: e21200 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.05 posY: 3.89 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance b67371.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance b67371.yaml index daf896204..5c3f2d8d9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance b67371.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clairvoyance b67371.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538706 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60408\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60408\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Investigator + Packs\"\n}" GUID: b67371 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind (3) a53344.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind (3) a53344.yaml index 72678559c..aa5719e2a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind (3) a53344.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind (3) a53344.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 313603 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return to The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51008\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Return to + The Dunwich Legacy\"\n}" GUID: a53344 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind 8e57b8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind 8e57b8.yaml index 46585543d..c945cfe94 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind 8e57b8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clarity of Mind 8e57b8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230322 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02030\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02030\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 8e57b8 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.12 posY: 3.92 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clasp of Black Onyx f295d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clasp of Black Onyx f295d9.yaml index 750832dc4..8eb9121f3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clasp of Black Onyx f295d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clasp of Black Onyx f295d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232332 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: A Gift Unlooked For DragSelectable: true -GMNotes: "{\r\n \"id\": \"03142\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03142\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Relic.\",\n \"weakness\": true,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: f295d9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.87 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Claypool's Furs c1f999.yaml b/unpacked/Bag All Player Cards 15bb07/Card Claypool's Furs c1f999.yaml index 27c77e886..5ced7c5a5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Claypool's Furs c1f999.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Claypool's Furs c1f999.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452300 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08730\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Clothing.\",\r\n \"combatIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08730\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Clothing.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: c1f999 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 79.14 posY: 3.33 posZ: 8.17 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clean Sneak (4) 537171.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clean Sneak (4) 537171.yaml index 0c58af126..701d48f8b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clean Sneak (4) 537171.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clean Sneak (4) 537171.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379102 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09078\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 4,\r\n \"traits\": \"Gambit. Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09078\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 4,\n \"traits\": \"Gambit. Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: '537171' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.37 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Clean Them Out 3319be.yaml b/unpacked/Bag All Player Cards 15bb07/Card Clean Them Out 3319be.yaml index 92f4a2b58..f071f9b8d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Clean Them Out 3319be.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Clean Them Out 3319be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545309 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60111\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60111\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit. Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 3319be Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cloak of the Outer Realm e4ab48.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cloak of the Outer Realm e4ab48.yaml index a5ffbf49c..aa42ca9d7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cloak of the Outer Realm e4ab48.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cloak of the Outer Realm e4ab48.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587926 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Interwoven Distortion DragSelectable: true -GMNotes: "{\r\n \"id\": \"86051\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic. Clothing.\",\r\n \"agilityIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"86051\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Relic. Clothing.\",\n \"agilityIcons\": 2,\n + \ \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Standalone\"\n}" GUID: e4ab48 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 4.43 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Close Call (2) 6aae86.yaml b/unpacked/Bag All Player Cards 15bb07/Card Close Call (2) 6aae86.yaml index cc49026fb..cf064af59 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Close Call (2) 6aae86.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Close Call (2) 6aae86.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368848 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01083\",\r\n \"alternate_ids\": [\r\n \"01583\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 2,\r\n - \ \"level\": 2,\r\n \"traits\": \"Fortune.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01083\",\n \"alternate_ids\": [\n \"01583\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": + \"Fortune.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 6aae86 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Close the Circle (1) d02825.yaml b/unpacked/Bag All Player Cards 15bb07/Card Close the Circle (1) d02825.yaml index 71532c218..7833cce38 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Close the Circle (1) d02825.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Close the Circle (1) d02825.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379052 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08062\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Ritual. Synergy.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 1,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08062\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Ritual. + Synergy.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 1,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: d02825 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.19 posY: 2.32 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Collected Works of Poe d6f719.yaml b/unpacked/Bag All Player Cards 15bb07/Card Collected Works of Poe d6f719.yaml index 660a43018..38cacd478 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Collected Works of Poe d6f719.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Collected Works of Poe d6f719.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452301 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08731\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08731\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Tome.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: d6f719 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 78.94 posY: 3.32 posZ: 8.21 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket (2) 8dda2d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket (2) 8dda2d.yaml index 5600fb991..9f04de07d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket (2) 8dda2d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket (2) 8dda2d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545205 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"53006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 5,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53006\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: 8dda2d Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.49 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket 5a305e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket 5a305e.yaml index f8a529e47..128fce9f9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket 5a305e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Colt Vest Pocket 5a305e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 276101 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04268\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04268\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 5a305e Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.14 posY: 3.72 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Combat Training (1) bd3ecc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Combat Training (1) bd3ecc.yaml index 74a5f338d..3f66b2119 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Combat Training (1) bd3ecc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Combat Training (1) bd3ecc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226335 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03107\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Talent. Composure.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03107\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Talent. Composure.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: bd3ecc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.17 posY: 3.2 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Combat Training (3) 36efa2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Combat Training (3) 36efa2.yaml index dab4f6ce5..8a61db632 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Combat Training (3) 36efa2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Combat Training (3) 36efa2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379017 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08027\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Talent. Composure.\",\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08027\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Talent. Composure.\",\n \"combatIcons\": + 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 36efa2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.27 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Connect the Dots 13413d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Connect the Dots 13413d.yaml index d4b0fa44e..df5341556 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Connect the Dots 13413d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Connect the Dots 13413d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430809 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05025\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05025\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 13413d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Contraband (2) 620b6e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Contraband (2) 620b6e.yaml index 6573d6a7d..0c9b7b703 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Contraband (2) 620b6e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Contraband (2) 620b6e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315304 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51005\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Supply. Illicit.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51005\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Supply. Illicit.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 2,\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: 620b6e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.6 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Contraband b4ad29.yaml b/unpacked/Bag All Player Cards 15bb07/Card Contraband b4ad29.yaml index a6b168a05..39d4b736e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Contraband b4ad29.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Contraband b4ad29.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368717 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02109\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Supply. Illicit.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02109\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Supply. Illicit.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: b4ad29 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 2.93 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cookie's Custom .32 34e723.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cookie's Custom .32 34e723.yaml index e083bde69..e90799daa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cookie's Custom .32 34e723.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cookie's Custom .32 34e723.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452302 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08732\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08732\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Weapon. Firearm.\",\n \"combatIcons\": 1,\n + \ \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of the + Earth\"\n}" GUID: 34e723 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 79.15 posY: 3.33 posZ: 7.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Copycat (3) de40c8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Copycat (3) de40c8.yaml index 0615f6d23..c1bef3adf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Copycat (3) de40c8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Copycat (3) de40c8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538628 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60330\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Gambit.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60330\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 3,\n \"traits\": \"Gambit.\",\n \"wildIcons\": 1,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: de40c8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.89 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cornered (2) c6c260.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cornered (2) c6c260.yaml index 88d8ff79d..fc9395044 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cornered (2) c6c260.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cornered (2) c6c260.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368851 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04160\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04160\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: c6c260 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 3.92 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Counterespionage (1) fad52a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Counterespionage (1) fad52a.yaml index eebe745e1..5dc37afbd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Counterespionage (1) fad52a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Counterespionage (1) fad52a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379039 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08049\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Favor. Service.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08049\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Favor. Service.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: fad52a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.14 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Counterpunch (2) 92436b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Counterpunch (2) 92436b.yaml index 778d1d4c5..ff1ee76fc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Counterpunch (2) 92436b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Counterpunch (2) 92436b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545320 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60122\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60122\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spirit. Tactic.\",\n \"combatIcons\": + 2,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 92436b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Counterpunch 20645e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Counterpunch 20645e.yaml index 25c759827..f5b9edc08 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Counterpunch 20645e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Counterpunch 20645e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545310 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60112\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60112\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit. Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 20645e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 118264.yaml b/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 118264.yaml deleted file mode 100644 index 77f7bbc34..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 118264.yaml +++ /dev/null @@ -1,55 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558211 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"04110-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" -GUID: '118264' -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Counterspell (2) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 21.84 - posY: 4.55 - posZ: -50.38 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 9c9177.yaml b/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 9c9177.yaml new file mode 100644 index 000000000..7b7272ded --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) (Taboo) 9c9177.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 350 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"04110-t\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell. Blessed.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" +GUID: 9c9177 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Counterspell (2) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -47.31 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) 2236f6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) 2236f6.yaml index 21d7f4cb9..16a096855 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) 2236f6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Counterspell (2) 2236f6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230346 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04110\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04110\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell. Blessed.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 2236f6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.99 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Coup de Grâce 2240f9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Coup de Grâce 2240f9.yaml index 9f0ef02da..9391abd41 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Coup de Grâce 2240f9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Coup de Grâce 2240f9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 276200 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04269\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Fated.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04269\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Tactic. Fated.\",\n \"combatIcons\": + 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 2240f9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cover Up ca25bc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cover Up ca25bc.yaml index f1b335751..27228c71f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cover Up ca25bc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cover Up ca25bc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 552421 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01007\",\r\n \"alternate_ids\": [\r\n \"01507\"\r\n - \ ],\r\n \"type\": \"Treachery\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Task.\",\r\n \"weakness\": true,\r\n \"uses\": [\r\n {\r\n \"count\": - 3,\r\n \"type\": \"Clue\",\r\n \"token\": \"clue\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01007\",\n \"alternate_ids\": [\n \"01507\"\n ],\n \"type\": + \"Treachery\",\n \"class\": \"Neutral\",\n \"traits\": \"Task.\",\n \"weakness\": + true,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Clue\",\n \"token\": + \"clue\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: ca25bc Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cover Up f802e3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cover Up f802e3.yaml index a38f6282a..858299c6d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cover Up f802e3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cover Up f802e3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536206 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90031\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Task.\",\r\n \"weakness\": true,\r\n \"uses\": - [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Clue\",\r\n \"token\": - \"clue\"\r\n }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90031\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task.\",\n \"weakness\": true,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Clue\",\n \"token\": \"clue\"\n }\n ],\n \"cycle\": + \"Standalone\"\n}" GUID: f802e3 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crack the Case 8dce44.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crack the Case 8dce44.yaml index ce43fcfb5..ca4a6c543 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crack the Case 8dce44.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Crack the Case 8dce44.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277812 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05110\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05110\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 8dce44 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 3.77 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crafty (3) fa994a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crafty (3) fa994a.yaml index 6a31ff1e2..301f64a05 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crafty (3) fa994a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Crafty (3) fa994a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378961 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08123\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"agilityIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"replenish\": 2,\r\n - \ \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08123\",\n \"type\": \"Asset\",\n \"class\": \"Seeker|Rogue|Survivor\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"agilityIcons\": + 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": 2,\n \"type\": + \"Resource\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: fa994a Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.93 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crisis of Faith 8b68f4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crisis of Faith 8b68f4.yaml index 038163f8d..58066f180 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crisis of Faith 8b68f4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Crisis of Faith 8b68f4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582001 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07007\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07007\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 8b68f4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 17cab7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 17cab7.yaml new file mode 100644 index 000000000..1414d0b11 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 17cab7.yaml @@ -0,0 +1,54 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 359 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"03019-t\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"The Path to Carcosa\"\n}" +GUID: 17cab7 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Crisis of Identity (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -38.28 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 55be9c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 55be9c.yaml deleted file mode 100644 index b7f066801..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity (Taboo) 55be9c.yaml +++ /dev/null @@ -1,55 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558209 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: Weakness -DragSelectable: true -GMNotes: "{\r\n \"id\": \"03019-t\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" -GUID: 55be9c -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Crisis of Identity (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 91.99 - posY: 1.9 - posZ: 4.66 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity 367aac.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity 367aac.yaml index ef2484cb9..98611a7a3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity 367aac.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Crisis of Identity 367aac.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374935 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03019\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03019\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 367aac Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.0 posY: 3.87 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) 416f12.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) 416f12.yaml index 6caf7100a..bdf908f89 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) 416f12.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) 416f12.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 584203 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Text of the Elder Guardian DragSelectable: true -GMNotes: "{\r\n \"id\": \"07192\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Tome. Blessed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07192\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Item. + Tome. Blessed.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": + [\n {\n \"count\": 0,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 416f12 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.01 posY: 3.76 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) e8b179.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) e8b179.yaml index 8ef4355f9..94fb2ffbf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) e8b179.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire (4) e8b179.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588102 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Text of the Elder Herald DragSelectable: true -GMNotes: "{\r\n \"id\": \"07191\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Tome. Cursed.\",\r\n - \ \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07191\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Item. + Tome. Cursed.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 0,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e8b179 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.13 posY: 5.29 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire fbfa24.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire fbfa24.yaml index 3da5895af..7b73be8d6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire fbfa24.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Grimoire fbfa24.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587116 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Untranslated DragSelectable: true -GMNotes: "{\r\n \"id\": \"07022\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome. Occult.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07022\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tome. Occult.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: fbfa24 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.54 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Research (4) 5d25b1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Research (4) 5d25b1.yaml index 34636a2c1..a5594c6c0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Research (4) 5d25b1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Research (4) 5d25b1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430657 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01043\",\r\n \"alternate_ids\": [\r\n \"01543\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 0,\r\n - \ \"level\": 4,\r\n \"traits\": \"Insight.\",\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01043\",\n \"alternate_ids\": [\n \"01543\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Seeker\",\n \"cost\": 0,\n \"level\": 4,\n \"traits\": + \"Insight.\",\n \"cycle\": \"Core\"\n}" GUID: 5d25b1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 19.44 posY: 3.37 posZ: -56.62 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings (2) 870bdc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings (2) 870bdc.yaml index 86d3af044..2ebe06f8a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings (2) 870bdc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings (2) 870bdc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538822 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60224\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60224\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 870bdc Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.74 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings ff2776.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings ff2776.yaml index 74f8be98b..fa3cf9051 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings ff2776.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cryptic Writings ff2776.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538813 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60215\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60215\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: ff2776 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.89 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cryptographic Cipher 4f3142.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cryptographic Cipher 4f3142.yaml index 77203a4ae..5f35f18a7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cryptographic Cipher 4f3142.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cryptographic Cipher 4f3142.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580315 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07021\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 4f3142 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.97 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crystal Pendulum 6c3156.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crystal Pendulum 6c3156.yaml index 5b329da30..554c686b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crystal Pendulum 6c3156.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Crystal Pendulum 6c3156.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538709 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60411\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60411\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 6c3156 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.ttslua index 1962805e5..d9e069527 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.ttslua @@ -41,6 +41,130 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/cards/CrystallineElderSign3") end) @@ -77,6 +201,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -124,7 +253,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -133,7 +264,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -149,6 +280,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -184,7 +320,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -192,6 +328,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -203,8 +343,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -229,7 +369,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -252,7 +392,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -264,36 +404,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -314,11 +479,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -326,30 +495,36 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.yaml index 11f79ee33..72892a10b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Crystalline Elder Sign (3) 949ca2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230353 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04235\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Blessed.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04235\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Blessed.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 949ca2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Crystallizer of Dreams 6692de.yaml b/unpacked/Bag All Player Cards 15bb07/Card Crystallizer of Dreams 6692de.yaml index 0d862be40..3ec029305 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Crystallizer of Dreams 6692de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Crystallizer of Dreams 6692de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590503 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06024\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic.\",\r\n \"bonded\": - [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06025\"\r\n }\r\n ],\r\n - \ \"willpowerIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +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}" GUID: 6692de Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.16 posY: 4.02 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cunning Distraction e8ea95.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cunning Distraction e8ea95.yaml index 5e393bf8a..e102e759f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cunning Distraction e8ea95.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cunning Distraction e8ea95.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368819 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01078\",\r\n \"alternate_ids\": [\r\n \"01578\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 5,\r\n - \ \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": 1,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01078\",\n \"alternate_ids\": [\n \"01578\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 5,\n \"level\": 0,\n \"traits\": + \"Tactic.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: e8ea95 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cunning e2767a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cunning e2767a.yaml index c55639aed..327b8947a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cunning e2767a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cunning e2767a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527606 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05030\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05030\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: e2767a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Curiosity 9e5cd2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Curiosity 9e5cd2.yaml index 19f140746..deb10a2bc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Curiosity 9e5cd2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Curiosity 9e5cd2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430808 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05026\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05026\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 9e5cd2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.86 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Curse of Aeons (3) 3199f2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Curse of Aeons (3) 3199f2.yaml index dc4abaf71..26bf612f5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Curse of Aeons (3) 3199f2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Curse of Aeons (3) 3199f2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580106 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07195\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Ritual. Cursed.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07195\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Ritual. Cursed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 3199f2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.05 posY: 3.79 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Curse of the Rougarou 2e33f7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Curse of the Rougarou 2e33f7.yaml index a634210c5..728333df2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Curse of the Rougarou 2e33f7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Curse of the Rougarou 2e33f7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 8901 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Curse. DragSelectable: true -GMNotes: "{\r\n \"id\": \"81029\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"81029\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 2e33f7 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.01 posY: 3.67 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Custom Ammunition (3) f03baa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Custom Ammunition (3) f03baa.yaml index b095535c7..3cd9376e1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Custom Ammunition (3) f03baa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Custom Ammunition (3) f03baa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226354 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04193\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Upgrade. Supply. Blessed.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04193\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Upgrade. Supply. Blessed.\",\n + \ \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 2,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: f03baa Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 5.27 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Custom Modifications d2252d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Custom Modifications d2252d.yaml index a8ab5fd61..55dbb3c51 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Custom Modifications d2252d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Custom Modifications d2252d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379016 ColorDiffuse: @@ -19,23 +19,23 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09023\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Upgrade. Supply.\",\r\n \"customizations\": - [\r\n {\r\n \"name\": \"Notched Sight\",\r\n \"xp\": 1,\r\n \"text\": +GMNotes: "{\n \"id\": \"09023\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Upgrade. Supply.\",\n \"customizations\": + [\n {\n \"name\": \"Notched Sight\",\n \"xp\": 1,\n \"text\": \"If you perform an attack with attached asset against an enemy engaged with another - investigator and fail, you deal no damage.\"\r\n },\r\n {\r\n \"name\": - \"Extended Stock\",\r\n \"xp\": 2,\r\n \"text\": \"You get +2 Fight while - attacking with attached asset.\"\r\n },\r\n {\r\n \"name\": \"Counterbalance\",\r\n - \ \"xp\": 2,\r\n \"text\": \"After you attach an Upgrade card other than - Custom Modifications to attached asset, draw 1 card.\"\r\n },\r\n {\r\n \"name\": - \"Leather Grip\",\r\n \"xp\": 3,\r\n \"text\": \"Custom Modifications - gets \u20131 cost and gains \u201CFast. Play only during your turn.\u201D\",\r\n - \ \"replaces\": {\r\n \"cost\": 2\r\n }\r\n },\r\n {\r\n \"name\": - \"Extended Magazine\",\r\n \"xp\": 3,\r\n \"text\": \"After ammo is spent - from or placed on attached asset by another event, place 1 ammo on attached asset.\"\r\n - \ },\r\n {\r\n \"name\": \"Quicksilver Bullets\",\r\n \"xp\": 4,\r\n - \ \"text\": \"If you succeed by 3 or more while attacking with attached asset, - this attack deals +1 damage.\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" + investigator and fail, you deal no damage.\"\n },\n {\n \"name\": \"Extended + Stock\",\n \"xp\": 2,\n \"text\": \"You get +2 Fight while attacking with + attached asset.\"\n },\n {\n \"name\": \"Counterbalance\",\n \"xp\": + 2,\n \"text\": \"After you attach an Upgrade card other than Custom Modifications + to attached asset, draw 1 card.\"\n },\n {\n \"name\": \"Leather Grip\",\n + \ \"xp\": 3,\n \"text\": \"Custom Modifications gets \u20131 cost and gains + \u201CFast. Play only during your turn.\u201D\",\n \"replaces\": {\n \"cost\": + 2\n }\n },\n {\n \"name\": \"Extended Magazine\",\n \"xp\": + 3,\n \"text\": \"After ammo is spent from or placed on attached asset by another + event, place 1 ammo on attached asset.\"\n },\n {\n \"name\": \"Quicksilver + Bullets\",\n \"xp\": 4,\n \"text\": \"If you succeed by 3 or more while + attacking with attached asset, this attack deals +1 damage.\"\n }\n ],\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: d2252d Grid: true GridProjection: false @@ -59,11 +59,11 @@ Transform: posX: 10.51 posY: 2.2 posZ: 47.04 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) 42336b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) 42336b.yaml new file mode 100644 index 000000000..e60798559 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) 42336b.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 356 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"08093-t\",\n \"type\": \"Asset\",\n \"class\": \"Guardian|Mystic\",\n + \ \"cost\": 5,\n \"level\": 5,\n \"traits\": \"Item. Relic. Weapon. Melee.\",\n + \ \"willpowerIcons\": 2,\n \"combatIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" +GUID: 42336b +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Cyclopean Hammer (5) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -47.31 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) a39c3b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) a39c3b.yaml deleted file mode 100644 index f5d59bda7..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) (Taboo) a39c3b.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558218 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"08093-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Mystic\",\r\n - \ \"cost\": 5,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"willpowerIcons\": 2,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"Edge of the - Earth\"\r\n}\r" -GUID: a39c3b -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Cyclopean Hammer (5) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.84 - posY: 4.51 - posZ: -49.4 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) 4df3b9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) 4df3b9.yaml index 24ac0bb66..3634bfd73 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) 4df3b9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Cyclopean Hammer (5) 4df3b9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378931 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08093\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Mystic\",\r\n - \ \"cost\": 5,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"willpowerIcons\": 2,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"Edge of the - Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08093\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian|Mystic\",\n \"cost\": 5,\n \"level\": 5,\n \"traits\": + \"Item. Relic. Weapon. Melee.\",\n \"willpowerIcons\": 2,\n \"combatIcons\": 2,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 4df3b9 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.19 posY: 2.53 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Back) 2f2e0d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Back) 2f2e0d.yaml index d695711bb..a371b16f3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Back) 2f2e0d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Back) 2f2e0d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273901 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Librarian DragSelectable: true -GMNotes: "{\r\n \"id\": \"01002-pb\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Miskatonic.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 5,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01002-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Seeker\",\n \"traits\": \"Miskatonic.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 5,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: 2f2e0d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 1.69 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Front) e8cafc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Front) e8cafc.yaml index 80b9fc4cf..840dab32e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Front) e8cafc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel Front) e8cafc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535101 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Librarian DragSelectable: true -GMNotes: "{\r\n \"id\": \"01002-pf\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Miskatonic.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 5,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01002-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Seeker\",\n \"traits\": \"Miskatonic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 5,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: e8cafc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 1.71 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel) 282857.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel) 282857.yaml index 26632d90b..abfd62c34 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel) 282857.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker (Parallel) 282857.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270201 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Librarian DragSelectable: true -GMNotes: "{\r\n \"id\": \"01002-p\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Miskatonic.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 5,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01002-p\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Miskatonic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 5,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: '282857' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 1.7 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker 6938eb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker 6938eb.yaml index 7c4efe714..2a8497553 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker 6938eb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker 6938eb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 269901 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Librarian DragSelectable: true -GMNotes: "{\r\n \"id\": \"01002\",\r\n \"alternate_ids\": [\r\n \"01502\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Seeker\",\r\n \"traits\": - \"Miskatonic.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": 5,\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01002\",\n \"alternate_ids\": [\n \"01502\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Seeker\",\n \"traits\": \"Miskatonic.\",\n \"willpowerIcons\": + 3,\n \"intellectIcons\": 5,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": + \"Core\"\n}" GUID: 6938eb Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587401 ColorDiffuse: @@ -93,7 +93,7 @@ States: rotY: 179.999237 rotZ: 1.734952e-08 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -10.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker bce6a5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker bce6a5.yaml index 2dfaa37b9..549710e66 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker bce6a5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daisy Walker bce6a5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 258701 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01002-m\",\r\n \"alternate_ids\": [\r\n \"01502-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"01002-m\",\n \"alternate_ids\": [\n \"01502-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: bce6a5 Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587101 ColorDiffuse: @@ -88,7 +88,7 @@ States: rotY: 269.985962 rotZ: 1.07859748e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -8.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag 96c9be.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag 96c9be.yaml index 8f784c9f2..b7ddbc626 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag 96c9be.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag 96c9be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581821 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Signature DragSelectable: true -GMNotes: "{\r\n \"id\": \"01008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01008\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 96c9be Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag d72b97.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag d72b97.yaml index 32966237d..5cdc1999d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag d72b97.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daisy's Tote Bag d72b97.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587205 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01508\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01508\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: d72b97 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 48.53 posY: 2.02 posZ: -121.62 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Damned bad8cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Damned bad8cb.yaml index aff111e93..798f4b0db 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Damned bad8cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Damned bad8cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449520 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -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" +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}" GUID: bad8cb Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.86 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Damning Testimony 3369a5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Damning Testimony 3369a5.yaml index bac679f80..31927363b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Damning Testimony 3369a5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Damning Testimony 3369a5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379052 ColorDiffuse: @@ -19,28 +19,28 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09059\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Illicit.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Evidence\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"customizations\": [\r\n {\r\n - \ \"name\": \"Search Warrant\",\r\n \"xp\": 1,\r\n \"text\": \"While - investigating using Damning Testimony, you may ignore any effect or keyword on the - investigated location that would trigger.\"\r\n },\r\n {\r\n \"name\": - \"Fabricated Evidence\",\r\n \"xp\": 2,\r\n \"text\": \"Damning Testimony - enters play with 2 additional evidence on it.\",\r\n \"replaces\": {\r\n \"uses\": - [\r\n {\r\n \"count\": 5,\r\n \"type\": \"Evidence\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ]\r\n }\r\n },\r\n - \ {\r\n \"name\": \"Blackmail\",\r\n \"xp\": 2,\r\n \"text\": \"You - get +2 Intellect while investigating using Damning Testimony.\"\r\n },\r\n {\r\n - \ \"name\": \"Extort\",\r\n \"xp\": 3,\r\n \"text\": \"When you successfully - investigate using Damning Testimony, you may spend 1 evidence to automatically evade - the chosen enemy.\"\r\n },\r\n {\r\n \"name\": \"Surveil\",\r\n \"xp\": - 3,\r\n \"text\": \"You may use Damning Testimony\u2019s ability to investigate - the chosen enemy\u2019s location instead of your location.\"\r\n },\r\n {\r\n - \ \"name\": \"Expose\",\r\n \"xp\": 4,\r\n \"text\": \"When you successfully - investigate using Damning Testimony, you may spend X evidence to discard the chosen - enemy if it is non-Elite. X is that enemy\u2019s remaining health.\"\r\n }\r\n - \ ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09059\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Illicit.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Evidence\",\n \"token\": \"resource\"\n }\n ],\n \"customizations\": + [\n {\n \"name\": \"Search Warrant\",\n \"xp\": 1,\n \"text\": + \"While investigating using Damning Testimony, you may ignore any effect or keyword + on the investigated location that would trigger.\"\n },\n {\n \"name\": + \"Fabricated Evidence\",\n \"xp\": 2,\n \"text\": \"Damning Testimony + enters play with 2 additional evidence on it.\",\n \"replaces\": {\n \"uses\": + [\n {\n \"count\": 5,\n \"type\": \"Evidence\",\n + \ \"token\": \"resource\"\n }\n ]\n }\n },\n {\n + \ \"name\": \"Blackmail\",\n \"xp\": 2,\n \"text\": \"You get +2 Intellect + while investigating using Damning Testimony.\"\n },\n {\n \"name\": \"Extort\",\n + \ \"xp\": 3,\n \"text\": \"When you successfully investigate using Damning + Testimony, you may spend 1 evidence to automatically evade the chosen enemy.\"\n + \ },\n {\n \"name\": \"Surveil\",\n \"xp\": 3,\n \"text\": \"You + may use Damning Testimony\u2019s ability to investigate the chosen enemy\u2019s + location instead of your location.\"\n },\n {\n \"name\": \"Expose\",\n + \ \"xp\": 4,\n \"text\": \"When you successfully investigate using Damning + Testimony, you may spend X evidence to discard the chosen enemy if it is non-Elite. + X is that enemy\u2019s remaining health.\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 3369a5 Grid: true GridProjection: false @@ -65,11 +65,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes 444830.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes 444830.yaml index 3b573cf38..47c7a0ff0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes 444830.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes 444830.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379500 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Mechanic DragSelectable: true -GMNotes: "{\r\n \"id\": \"08001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Entrepreneur.\",\r\n \"willpowerIcons\": 4,\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 5,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Entrepreneur.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 1,\n \"combatIcons\": 5,\n \"agilityIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: '444830' Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.76 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes df8ec4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes df8ec4.yaml index b5f00d64f..9022c7bc1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes df8ec4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daniela Reyes df8ec4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379201 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.15 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daredevil (2) b3cad4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daredevil (2) b3cad4.yaml index 6a64f8453..a7b059a5e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daredevil (2) b3cad4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daredevil (2) b3cad4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447633 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06240\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Fortune. Practiced.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06240\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 2,\n \"traits\": \"Fortune. Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: b3cad4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daredevil (Taboo) cd1e54.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daredevil (Taboo) cd1e54.yaml new file mode 100644 index 000000000..013ba727f --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Daredevil (Taboo) cd1e54.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 326 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"60318-t\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Fortune. Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"Investigator Packs\"\n}" +GUID: cd1e54 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Daredevil (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -36.03 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daredevil e4688b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daredevil e4688b.yaml index 5965a20f4..4e1d83580 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daredevil e4688b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daredevil e4688b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538616 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60318\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune. Practiced.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60318\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Fortune. Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: e4688b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.74 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daring 91e53c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daring 91e53c.yaml index 03644b899..31aca458c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daring 91e53c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daring 91e53c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379827 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06111\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06111\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 3,\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: 91e53c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.35 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver (2) fc82a5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver (2) fc82a5.yaml index 331e12e65..6c0bea09e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver (2) fc82a5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver (2) fc82a5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538620 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60322\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Gambit.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60322\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Gambit.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: fc82a5 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver cc6b14.yaml b/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver cc6b14.yaml index 832dc088e..2666b0bad 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver cc6b14.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Daring Maneuver cc6b14.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368706 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03030\",\r\n \"alternate_ids\": [\r\n \"60313\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 0,\r\n - \ \"level\": 0,\r\n \"traits\": \"Gambit.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03030\",\n \"alternate_ids\": [\n \"60313\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": + \"Gambit.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: cc6b14 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.13 posY: 5.45 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dario El-Amin 5ec1a2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dario El-Amin 5ec1a2.yaml index ce6f334a0..8f6ae7299 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dario El-Amin 5ec1a2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dario El-Amin 5ec1a2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368630 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Unscrupulous Investor DragSelectable: true -GMNotes: "{\r\n \"id\": \"03151\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Patron.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03151\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Patron.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 5ec1a2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.88 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Future 3aa40e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Future 3aa40e.yaml index b56c85639..caa4fecc6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Future 3aa40e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Future 3aa40e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538701 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60403\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Omen. Endtimes.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60403\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Omen. Endtimes.\",\n \"weakness\": true,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 3aa40e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.79 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Horse 1b4434.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Horse 1b4434.yaml index 8ffb05c9f..a61cb683b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Horse 1b4434.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Horse 1b4434.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368833 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02234\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Condition.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02234\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Condition.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 1b4434 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Insight f08934.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Insight f08934.yaml index 979e957ea..485f493ea 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Insight f08934.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Insight f08934.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444260 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05014\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"startsInHand\": true,\r\n \"cost\": 2,\r\n \"traits\": \"Insight.\",\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05014\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"startsInHand\": true,\n \"cost\": 2,\n \"traits\": \"Insight.\",\n \"cycle\": + \"The Circle Undone\"\n}" GUID: f08934 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.1 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 580a4d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 580a4d.yaml index 761631ab0..80e48ece8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 580a4d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 580a4d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 584101 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90019\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Spell.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90019\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Spell.\",\n \"weakness\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 580a4d Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 8.98 posY: 4.01 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 98c8d8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 98c8d8.yaml index 697b84acd..083206249 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 98c8d8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Memory 98c8d8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587209 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01513\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Spell.\",\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01513\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Spell.\",\n \"cycle\": \"Core\"\n}" GUID: 98c8d8 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 49.08 posY: 2.33 posZ: -96.09 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Memory c025bf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Memory c025bf.yaml index 68587d7f2..1ca81ff0a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Memory c025bf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Memory c025bf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230527 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Signature DragSelectable: true -GMNotes: "{\r\n \"id\": \"01013\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Spell.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01013\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Spell.\",\n \"weakness\": true,\n \"cycle\": \"Core\"\n}" GUID: c025bf Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.08 posY: 3.72 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Pact dd3d09.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Pact dd3d09.yaml index 01f1d81df..4df40ed54 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Pact dd3d09.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Pact dd3d09.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440813 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"04038\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Pact.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04038\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Pact.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: dd3d09 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.66 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 448db7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 448db7.yaml new file mode 100644 index 000000000..cffab9773 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 448db7.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 347 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"04032-t\",\n \"alternate_ids\": [\n \"60417-t\"\n ],\n + \ \"type\": \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 0,\n + \ \"traits\": \"Augury.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" +GUID: 448db7 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Dark Prophecy (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -27 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 94cdf6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 94cdf6.yaml deleted file mode 100644 index 6a5ab49f1..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy (Taboo) 94cdf6.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558210 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"04032-t\",\r\n \"alternate_ids\": [\r\n \"60417-t\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Augury.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" -GUID: 94cdf6 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Dark Prophecy (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 21.61 - posY: 4.32 - posZ: -56.29 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy da7613.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy da7613.yaml index 764c8c124..06d41da97 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy da7613.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Prophecy da7613.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230309 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04032\",\r\n \"alternate_ids\": [\r\n \"60417\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Augury.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04032\",\n \"alternate_ids\": [\n \"60417\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": + \"Augury.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Forgotten Age\"\n}" GUID: da7613 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.ttslua index eefaab375..a2c391b0e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.ttslua @@ -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("playercards/cards/DarkRitual") -end) __bundle_register("playercards/cards/DarkRitual", function(require, _LOADED, __bundle_register, __bundle_modules) VALID_TOKENS = { ["Curse"] = true @@ -78,6 +75,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -125,7 +127,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -134,7 +138,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -150,6 +154,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -185,7 +194,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -193,6 +202,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -204,8 +217,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -230,7 +243,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -253,7 +266,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -265,36 +278,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -315,11 +353,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -327,33 +369,166 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/DarkRitual") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.yaml index a0c65d573..4812fdb04 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dark Ritual 272e6c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 554120 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07026\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Ritual. Cursed.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07026\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Ritual. + Cursed.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 272e6c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.17 posY: 3.02 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 3b3b7a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 3b3b7a.yaml index f5ff5dfa6..1163aa2c2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 3b3b7a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 3b3b7a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846104 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 14.92 posY: 2.21 posZ: 57.24 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 5d3d67.yaml b/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 5d3d67.yaml index 1c7bc8411..2c02a355f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 5d3d67.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Darrell Simmons 5d3d67.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 843404 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Photographer DragSelectable: true -GMNotes: "{\r\n \"id\": \"09015\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Reporter.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": - 5,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09015\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Reporter.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": 5,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 5d3d67 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.6 posY: 2.21 posZ: 52.39 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Darrell's Kodak caa382.yaml b/unpacked/Bag All Player Cards 15bb07/Card Darrell's Kodak caa382.yaml index 51306b336..7cbba5e17 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Darrell's Kodak caa382.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Darrell's Kodak caa382.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379010 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Proof in the Pudding DragSelectable: true -GMNotes: "{\r\n \"id\": \"09016\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"startsInPlay\": true,\r\n \"cost\": 2,\r\n \"traits\": \"Item. Tool.\",\r\n - \ \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09016\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"cost\": 2,\n \"traits\": \"Item. Tool.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Evidence\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: caa382 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 10.22 posY: 2.2 posZ: 44.98 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dauntless Spirit (1) adc8b6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dauntless Spirit (1) adc8b6.yaml index 1098e6165..21d85c681 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dauntless Spirit (1) adc8b6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dauntless Spirit (1) adc8b6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378907 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08078\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Developed.\",\r\n \"dynamicIcons\": - true,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08078\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Developed.\",\n \"dynamicIcons\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: adc8b6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.95 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card David Renfield (Taboo) 7a73c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card David Renfield (Taboo) 4c7c54.yaml similarity index 50% rename from unpacked/Bag All Player Cards 15bb07/Card David Renfield (Taboo) 7a73c4.yaml rename to unpacked/Bag All Player Cards 15bb07/Card David Renfield (Taboo) 4c7c54.yaml index 6a545819b..adf236f63 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card David Renfield (Taboo) 7a73c4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card David Renfield (Taboo) 4c7c54.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 558200 +CardID: 343 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '5582': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 Type: 0 UniqueBack: false Description: Esteemed Eschatologist DragSelectable: true -GMNotes: "{\r\n \"id\": \"03112-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Patron.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" -GUID: 7a73c4 +GMNotes: "{\n \"id\": \"03112-t\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally. Patron.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" +GUID: 4c7c54 Grid: true GridProjection: false Hands: true @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 21.62 - posY: 4.33 - posZ: -57.28 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -16.59 + posY: 3.45 + posZ: -45.05 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card David Renfield 1f8539.yaml b/unpacked/Bag All Player Cards 15bb07/Card David Renfield 1f8539.yaml index e5b76bc9f..6f81beabb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card David Renfield 1f8539.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card David Renfield 1f8539.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230325 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Esteemed Eschatologist DragSelectable: true -GMNotes: "{\r\n \"id\": \"03112\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Patron.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03112\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally. + Patron.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 1f8539 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.ttslua index dced9c438..495cc3f55 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.ttslua @@ -41,48 +41,46 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + local GUIDReferenceApi = {} - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) + local function getGuidHandler() + return getObjectFromGUID("123456") end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type) + return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectsByType = function(type) + return getGuidHandler().call("getObjectsByType", type) 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", playerColor) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + GUIDReferenceApi.getObjectsByOwner = function(owner) + return getGuidHandler().call("getObjectsByOwner", owner) 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + -- 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 - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi + return GUIDReferenceApi end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) @@ -120,6 +118,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -167,7 +170,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -176,7 +181,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -192,6 +197,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -227,7 +237,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -235,6 +245,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -246,8 +260,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -272,7 +286,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -295,7 +309,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -307,36 +321,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -354,4 +393,140 @@ do 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.yaml b/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.yaml index c45cdd8ee..b0e54cfd2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Day of Reckoning e701af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586334 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07040\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Endtimes.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07040\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Endtimes.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e701af Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 4.17 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dayana Esperence (3) 4f2489.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dayana Esperence (3) 4f2489.yaml index c2d9b6c64..39597b9a9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dayana Esperence (3) 4f2489.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dayana Esperence (3) 4f2489.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379616 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Deals with "Devils" DragSelectable: true -GMNotes: "{\r\n \"id\": \"05279\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Witch.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05279\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Ally. + Witch.\",\n \"willpowerIcons\": 2,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 4f2489 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.14 posY: 3.76 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card De Vermis Mysteriis (2) b40b98.yaml b/unpacked/Bag All Player Cards 15bb07/Card De Vermis Mysteriis (2) b40b98.yaml index 5777f072b..e7c99dfed 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card De Vermis Mysteriis (2) b40b98.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card De Vermis Mysteriis (2) b40b98.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293313 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Signs of the Black Stars DragSelectable: true -GMNotes: "{\r\n \"id\": \"05235\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05235\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: b40b98 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.03 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deafening Silence 0821d4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deafening Silence 0821d4.yaml index 80a9ce719..ff8957bcd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deafening Silence 0821d4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deafening Silence 0821d4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379009 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09014\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Omen.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09014\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Omen.\",\n \"weakness\": true,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 0821d4 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 10.69 posY: 2.44 posZ: 43.88 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Death ∙ XIII (1) 2e5b03.yaml b/unpacked/Bag All Player Cards 15bb07/Card Death ∙ XIII (1) 2e5b03.yaml index 1862912d4..986bdeced 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Death ∙ XIII (1) 2e5b03.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Death ∙ XIII (1) 2e5b03.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 290207 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Free from the Past DragSelectable: true -GMNotes: "{\r\n \"id\": \"05027\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05027\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: 2e5b03 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.81 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deciphered Reality (5) 8b0193.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deciphered Reality (5) 8b0193.yaml index 8fded851c..8e07e432f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deciphered Reality (5) 8b0193.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deciphered Reality (5) 8b0193.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430660 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02303\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02303\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 8b0193 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.27 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deck of Possibilities fefdfa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deck of Possibilities fefdfa.yaml index 1e44ee106..f799f7176 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deck of Possibilities fefdfa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deck of Possibilities fefdfa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266432 ColorDiffuse: @@ -12,15 +12,15 @@ CustomDeck: '2664': BackIsHidden: true BackURL: http://cloud-3.steamusercontent.com/ugc/1874087305860121579/39578AC78E34DAA169AB4DE4246BB1E002528B8C/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1874087305860119704/FCC908E5C313759E9E478D5952C74179DF80ADA8/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2021605474902965618/1DA915D6106D951592457701CBA262B73CBEDE6B/ NumHeight: 5 NumWidth: 7 Type: 0 UniqueBack: true Description: Tychokinetic Implement DragSelectable: true -GMNotes: "{\r\n \"id\": \"88043\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"traits\": \"Item. Relic.\",\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"88043\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"permanent\": true,\n \"traits\": \"Item. Relic.\",\n \"cycle\": \"Standalone\"\n}" GUID: fefdfa Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.46 posY: 3.24 posZ: 26.59 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull (3) 946a58.yaml b/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull (3) 946a58.yaml index c58fc7acc..57d4daf6d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull (3) 946a58.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull (3) 946a58.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545204 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Doom Begets Doom DragSelectable: true -GMNotes: "{\r\n \"id\": \"53005\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Cursed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 0,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53005\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Cursed.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": + [\n {\n \"count\": 0,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: 946a58 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.11 posY: 3.84 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull 07350b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull 07350b.yaml index 07302d316..4966996fb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull 07350b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Decorated Skull 07350b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368618 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Doom Begets Doom DragSelectable: true -GMNotes: "{\r\n \"id\": \"04026\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Cursed.\",\r\n - \ \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 0,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04026\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Item. + Relic. Cursed.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 07350b Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Decoy 2ee50e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Decoy 2ee50e.yaml index befe6b7e9..83c68bbbe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Decoy 2ee50e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Decoy 2ee50e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292914 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05234\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Favor. Service.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05234\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Favor. Service.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 2ee50e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deduction (2) 95272b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deduction (2) 95272b.yaml index ff57aaf32..4aa6dd2c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deduction (2) 95272b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deduction (2) 95272b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430642 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02150\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Practiced. Expert.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02150\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 2,\n \"traits\": \"Practiced. Expert.\",\n \"intellectIcons\": 2,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 95272b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 25.72 posY: 3.53 posZ: -7.11 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deduction b265c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deduction b265c4.yaml index 1096d88dd..f61e06ad0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deduction b265c4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deduction b265c4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368402 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01039\",\r\n \"alternate_ids\": [\r\n \"60219\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Practiced.\",\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01039\",\n \"alternate_ids\": [\n \"60219\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Seeker\",\n \"level\": 0,\n \"traits\": \"Practiced.\",\n + \ \"intellectIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: b265c4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 20.51 posY: 1.99 posZ: -102.6 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deduction bc4a4c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deduction bc4a4c.yaml index 9b9e1045a..a90b5e904 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deduction bc4a4c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deduction bc4a4c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587204 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01539\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01539\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"intellectIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: bc4a4c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.81 posY: 3.34 posZ: 7.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deep Knowledge b176fc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deep Knowledge b176fc.yaml index 648e54c44..d7cc3f847 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deep Knowledge b176fc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deep Knowledge b176fc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581517 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07023\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07023\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight. Cursed.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: b176fc Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.96 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Defensive Stance (1) 62e4f4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Defensive Stance (1) 62e4f4.yaml index d6f21280a..658c52835 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Defensive Stance (1) 62e4f4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Defensive Stance (1) 62e4f4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379014 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08024\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Practiced. Expert.\",\r\n \"dynamicIcons\": - true,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08024\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 1,\n \"traits\": \"Practiced. Expert.\",\n \"dynamicIcons\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 62e4f4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.36 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Defiance (2) bf3dd1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Defiance (2) bf3dd1.yaml index 6b1991dc0..f78ed1fa8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Defiance (2) bf3dd1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Defiance (2) bf3dd1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230338 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04198\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Developed.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04198\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Developed.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: bf3dd1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.1 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Defiance 59b24f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Defiance 59b24f.yaml index 56cf51d75..f73933c0e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Defiance 59b24f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Defiance 59b24f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230302 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02190\",\r\n \"alternate_ids\": [\r\n \"60418\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Innate.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02190\",\n \"alternate_ids\": [\n \"60418\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Mystic\",\n \"level\": 0,\n \"traits\": \"Innate.\",\n + \ \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 59b24f Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.04 posY: 3.78 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Delay the Inevitable 683937.yaml b/unpacked/Bag All Player Cards 15bb07/Card Delay the Inevitable 683937.yaml index 73dd2c9da..0dc3f3137 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Delay the Inevitable 683937.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Delay the Inevitable 683937.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431007 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05021\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Spirit. Tactic.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05021\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Spirit. Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: '683937' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Delilah O'Rourke (3) 97a795.yaml b/unpacked/Bag All Player Cards 15bb07/Card Delilah O'Rourke (3) 97a795.yaml index 4a603c810..24fe39ca4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Delilah O'Rourke (3) 97a795.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Delilah O'Rourke (3) 97a795.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449035 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Syndicate Assassin DragSelectable: true -GMNotes: "{\r\n \"id\": \"06281\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Criminal. Syndicate.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06281\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Ally. + Criminal. Syndicate.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 97a795 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.07 posY: 3.78 posZ: -16.71 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) d4a68a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) ca5603.yaml similarity index 51% rename from unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) d4a68a.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) ca5603.yaml index 1f6586d05..b05c094c1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) d4a68a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep (Taboo) ca5603.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450615 +CardID: 348 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02111-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"victory\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" -GUID: d4a68a +GMNotes: "{\n \"id\": \"02111-t\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"victory\": 1,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: ca5603 Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 8.97 - posY: 4.76 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -16.59 + posY: 3.45 + posZ: -20.23 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep 14e212.yaml b/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep 14e212.yaml index a2cff7902..3b32643ec 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep 14e212.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Delve Too Deep 14e212.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230310 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02111\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"victory\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02111\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"victory\": 1,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 14e212 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.23 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dendromorphosis 121b2d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dendromorphosis 121b2d.yaml index a446a3180..a999df1b5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dendromorphosis 121b2d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dendromorphosis 121b2d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545211 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"53012\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Curse. Flora.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53012\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Neutral\",\n \"traits\": \"Curse. Flora.\",\n \"weakness\": true,\n + \ \"basicWeaknessCount\": 1,\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: 121b2d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deny Existence (5) d24531.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deny Existence (5) d24531.yaml index 6b3d0e093..88befc0cd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deny Existence (5) d24531.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deny Existence (5) d24531.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379617 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05280\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 5,\r\n \"traits\": \"Spell. Paradox.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05280\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 5,\n \"traits\": \"Spell. Paradox.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: d24531 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Deny Existence 8aa0c3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Deny Existence 8aa0c3.yaml index 9c0dcde3d..40646300e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Deny Existence 8aa0c3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Deny Existence 8aa0c3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430908 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05032\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Paradox.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05032\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spell. Paradox.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 8aa0c3 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Desperate Search 45bdf0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Desperate Search 45bdf0.yaml index 284dc5e41..cac272834 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Desperate Search 45bdf0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Desperate Search 45bdf0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368507 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03117\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Desperate.\",\r\n \"intellectIcons\": 4,\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03117\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Desperate.\",\n \"intellectIcons\": 4,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 45bdf0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.33 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Detached from Reality d12359.yaml b/unpacked/Bag All Player Cards 15bb07/Card Detached from Reality d12359.yaml index b15ea90a9..63e6ee1d6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Detached from Reality d12359.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Detached from Reality d12359.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587508 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06014\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06014\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: d12359 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 25.43 posY: 3.53 posZ: -7.47 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Detective's Colt 1911s f4bac6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Detective's Colt 1911s f4bac6.yaml index a3628c0f0..dc319bf71 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Detective's Colt 1911s f4bac6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Detective's Colt 1911s f4bac6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 592055 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05009\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 4,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05009\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Neutral\",\n \"cost\": 4,\n \"traits\": \"Item. Weapon. Firearm.\",\n + \ \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": + [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: f4bac6 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.1 posY: 3.71 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Devil's Luck (1) 812685.yaml b/unpacked/Bag All Player Cards 15bb07/Card Devil's Luck (1) 812685.yaml index 3550d1909..8fc0c3aed 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Devil's Luck (1) 812685.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Devil's Luck (1) 812685.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368835 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03157\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Fortune.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03157\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Fortune.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: '812685' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 3.9 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake 57668a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake 57668a.yaml index 2a144fc4c..9ea92b132 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake 57668a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake 57668a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553203 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07004-m\",\r\n \"alternate_ids\": [\r\n \"98016-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"07004-m\",\n \"alternate_ids\": [\n \"98016-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: 57668a Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274300 ColorDiffuse: @@ -85,10 +85,10 @@ States: posY: 1.49510384 posZ: 31.0408936 rotX: 2.7844257e-07 - rotY: 270.0 + rotY: 270 rotZ: -7.77030152e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -10.9 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake e015f8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake e015f8.yaml index fb79f6598..2e6f3d5af 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake e015f8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dexter Drake e015f8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553103 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: true Description: The Magician DragSelectable: true -GMNotes: "{\r\n \"id\": \"07004\",\r\n \"alternate_ids\": [\r\n \"98016\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Mystic\",\r\n \"traits\": - \"Sorcerer. Veteran.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": 2,\r\n - \ \"combatIcons\": 3,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07004\",\n \"alternate_ids\": [\n \"98016\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Mystic\",\n \"traits\": \"Sorcerer. Veteran.\",\n + \ \"willpowerIcons\": 5,\n \"intellectIcons\": 2,\n \"combatIcons\": 3,\n \"agilityIcons\": + 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e015f8 Grid: true GridProjection: false @@ -42,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274137 ColorDiffuse: @@ -92,10 +91,10 @@ States: posY: 1.49510384 posZ: 24.50595 rotX: 8.37629059e-08 - rotY: 180.0 + rotY: 180 rotZ: -3.86306681e-07 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -108,11 +107,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -8.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 32b091.yaml b/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 32b091.yaml index f00fc7733..e076560f1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 32b091.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 32b091.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272125 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Redeemed Cultist DragSelectable: true -GMNotes: "{\r\n \"id\": \"05004\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Cultist. Silver Twilight.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05004\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Cultist. Silver Twilight.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 32b091 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.58 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 359ef4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 359ef4.yaml index 65fa2c36a..fcf30e988 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 359ef4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Diana Stanley 359ef4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 591001 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.84 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (2) 0414b4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (2) 0414b4.yaml index 9594059c1..1b096fdb8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (2) 0414b4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (2) 0414b4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368845 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50009\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50009\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: 0414b4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (4) 734b45.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (4) 734b45.yaml index f78f7a41e..8f0add130 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (4) 734b45.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dig Deep (4) 734b45.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449609 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07270\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n - \ \"replenish\": 2,\r\n \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07270\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"agilityIcons\": 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": + 2,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 734b45 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.13 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dig Deep fc9e1b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dig Deep fc9e1b.yaml index b08d1cc9b..27684f84a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dig Deep fc9e1b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dig Deep fc9e1b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368831 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01077\",\r\n \"alternate_ids\": [\r\n \"01577\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01077\",\n \"alternate_ids\": [\n \"01577\"\n ],\n \"type\": + \"Asset\",\n \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Talent.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: fc9e1b Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dimensional Beam Machine fb4fff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dimensional Beam Machine fb4fff.yaml index 84719c14d..1a59ad67a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dimensional Beam Machine fb4fff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dimensional Beam Machine fb4fff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 558008 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"87032\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Science. Tool. Future.\",\r\n \"wildIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"87032\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Science. Tool. Future.\",\n \"wildIcons\": + 2,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Charge\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Standalone\"\n}" GUID: fb4fff Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 78.5 posY: 3.35 posZ: 6.88 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Directive 07e7bd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Directive 07e7bd.yaml index 03627b4cf..3f85bbc97 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Directive 07e7bd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Directive 07e7bd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536204 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Leave No Doubt DragSelectable: true -GMNotes: "{\r\n \"id\": \"90029\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90029\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 07e7bd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.17 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Directive 0994c9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Directive 0994c9.yaml index 9d0182244..ffef6be68 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Directive 0994c9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Directive 0994c9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536203 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Seek the Truth DragSelectable: true -GMNotes: "{\r\n \"id\": \"90028\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90028\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 0994c9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.23 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Directive 133521.yaml b/unpacked/Bag All Player Cards 15bb07/Card Directive 133521.yaml index 643c85898..b85d48156 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Directive 133521.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Directive 133521.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536200 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Due Diligence DragSelectable: true -GMNotes: "{\r\n \"id\": \"90025\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90025\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" GUID: '133521' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.92 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Directive 2d9256.yaml b/unpacked/Bag All Player Cards 15bb07/Card Directive 2d9256.yaml index a238d996e..a250fe822 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Directive 2d9256.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Directive 2d9256.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536202 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Consult Experts DragSelectable: true -GMNotes: "{\r\n \"id\": \"90027\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90027\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 2d9256 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Directive 706176.yaml b/unpacked/Bag All Player Cards 15bb07/Card Directive 706176.yaml index dcf37688e..061c8810f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Directive 706176.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Directive 706176.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536201 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Red Tape DragSelectable: true -GMNotes: "{\r\n \"id\": \"90026\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90026\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" GUID: '706176' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dirty Fighting (2) fa1be0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dirty Fighting (2) fa1be0.yaml index 730e7a289..f3ec913f9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dirty Fighting (2) fa1be0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dirty Fighting (2) fa1be0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379066 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09073\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Talent. Trick. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09073\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Talent. Trick. Illicit.\",\n \"combatIcons\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: fa1be0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna (2) b00b76.yaml b/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna (2) b00b76.yaml index 4eb88c525..a31867e54 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna (2) b00b76.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna (2) b00b76.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430648 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Protective Amulet DragSelectable: true -GMNotes: "{\r\n \"id\": \"01041\",\r\n \"alternate_ids\": [\r\n \"01541\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 3,\r\n - \ \"level\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01041\",\n \"alternate_ids\": [\n \"01541\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Accessory\",\n \"class\": \"Seeker\",\n \"cost\": 3,\n + \ \"level\": 2,\n \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: b00b76 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 19.28 posY: 3.37 posZ: -57.07 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna d6c44a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna d6c44a.yaml index 9970e8eea..d7a1253d1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna d6c44a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Disc of Itzamna d6c44a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538805 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Protective Amulet DragSelectable: true -GMNotes: "{\r\n \"id\": \"60207\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60207\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: d6c44a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.1 posY: 3.71 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Discipline 081db4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Discipline 081db4.yaml index 248e700e4..5ac68e7b8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Discipline 081db4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Discipline 081db4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379406 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: Quiescence of Thought DragSelectable: true -GMNotes: "{\r\n \"id\": \"08012a\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Unbroken.\",\r\n \"permanent\": true,\r\n \"cycle\": \"Edge of - the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08012a\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Unbroken.\",\n \"permanent\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 081db4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.44 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Discipline 3247da.yaml b/unpacked/Bag All Player Cards 15bb07/Card Discipline 3247da.yaml index fba771929..8756aec6c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Discipline 3247da.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Discipline 3247da.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379408 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: Balance of Body DragSelectable: true -GMNotes: "{\r\n \"id\": \"08014a\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Unbroken.\",\r\n \"permanent\": true,\r\n \"cycle\": \"Edge of - the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08014a\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Unbroken.\",\n \"permanent\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 3247da Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.59 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Discipline 5ff3bd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Discipline 5ff3bd.yaml index a11dd19e8..f9a0b4c4a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Discipline 5ff3bd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Discipline 5ff3bd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379405 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: Alignment of Spirit DragSelectable: true -GMNotes: "{\r\n \"id\": \"08011a\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Unbroken.\",\r\n \"permanent\": true,\r\n \"cycle\": \"Edge of - the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08011a\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Unbroken.\",\n \"permanent\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 5ff3bd Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.52 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Discipline e8d38d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Discipline e8d38d.yaml index 82412fab0..859846b0d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Discipline e8d38d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Discipline e8d38d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379407 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: Prescience of Fate DragSelectable: true -GMNotes: "{\r\n \"id\": \"08013a\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Unbroken.\",\r\n \"permanent\": true,\r\n \"cycle\": \"Edge of - the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08013a\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Unbroken.\",\n \"permanent\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: e8d38d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.6 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Disguise f170fc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Disguise f170fc.yaml index ebe3b30f8..51dba6253 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Disguise f170fc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Disguise f170fc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379055 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09062\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Talent. Trick. Illicit.\",\r\n - \ \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09062\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Talent. Trick. Illicit.\",\n \"agilityIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: f170fc Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dissection Tools 95ca5d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dissection Tools 95ca5d.yaml index ba943bef7..001606088 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dissection Tools 95ca5d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dissection Tools 95ca5d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379036 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09043\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool. Science.\",\r\n - \ \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09043\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool. Science.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Evidence\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: 95ca5d Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Divination (1) 658588.yaml b/unpacked/Bag All Player Cards 15bb07/Card Divination (1) 658588.yaml index 4b1cbd190..f008e80a4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Divination (1) 658588.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Divination (1) 658588.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378939 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08101\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Spell. Augury.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08101\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker|Mystic\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": + \"Spell. Augury.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: '658588' Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.99 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Divination (4) 58f2af.yaml b/unpacked/Bag All Player Cards 15bb07/Card Divination (4) 58f2af.yaml index cfe61b39b..0c08b27d0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Divination (4) 58f2af.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Divination (4) 58f2af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378941 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08103\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Spell. Augury.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08103\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker|Mystic\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": + \"Spell. Augury.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": + [\n {\n \"count\": 6,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 58f2af Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.72 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dodge (2) 9ab750.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dodge (2) 9ab750.yaml index 2cd4fa7c3..346cd3d5c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dodge (2) 9ab750.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dodge (2) 9ab750.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379016 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08026\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08026\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 9ab750 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.17 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dodge e0dff3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dodge e0dff3.yaml index cd07ce329..d27d06d33 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dodge e0dff3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dodge e0dff3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226313 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01023\",\r\n \"alternate_ids\": [\r\n \"60113\",\r\n - \ \"01523\"\r\n ],\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01023\",\n \"alternate_ids\": [\n \"60113\",\n \"01523\"\n + \ ],\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": + 0,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n + \ \"cycle\": \"Core\"\n}" GUID: e0dff3 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.06 posY: 3.81 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Doomed ba2ae1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Doomed ba2ae1.yaml index 6fae99943..b179d07c4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Doomed ba2ae1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Doomed ba2ae1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440814 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"04040\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04040\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"The Forgotten Age\"\n}" GUID: ba2ae1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.17 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) f98f6f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) 9aa0de.yaml similarity index 52% rename from unpacked/Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) f98f6f.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) 9aa0de.yaml index fc922b4ba..1a657a0ba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) f98f6f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing (Taboo) 9aa0de.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450625 +CardID: 327 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02026-t\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" -GUID: f98f6f +GMNotes: "{\n \"id\": \"02026-t\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Fortune.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" +GUID: 9aa0de Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.13 - posY: 3.8 - posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -13.42 + posY: 3.45 + posZ: -38.28 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing efb09b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing efb09b.yaml index 52bf49338..1950fd3b5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing efb09b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Double or Nothing efb09b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261701 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02026\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02026\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Fortune.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: efb09b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.67 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Double, Double (4) 0e0530.yaml b/unpacked/Bag All Player Cards 15bb07/Card Double, Double (4) 0e0530.yaml index 61cbbe3b1..f7e87168c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Double, Double (4) 0e0530.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Double, Double (4) 0e0530.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378019 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05320\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05320\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 0e0530 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.11 posY: 3.94 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Down the Rabbit Hole b925fc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Down the Rabbit Hole b925fc.yaml index 55ad1b126..de8bd8d1e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Down the Rabbit Hole b925fc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Down the Rabbit Hole b925fc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379049 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08059\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08059\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: b925fc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.19 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod (4) bcb13d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod (4) bcb13d.yaml index a36b4af67..badf50220 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod (4) bcb13d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod (4) bcb13d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379121 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09097\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Item. Charm.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09097\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Item. + Charm.\",\n \"intellectIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: bcb13d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.74 posY: 3.37 posZ: 65.49 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod 851e3a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod 851e3a.yaml index 5f3e983f2..45b24d739 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod 851e3a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dowsing Rod 851e3a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379107 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09083\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09083\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 851e3a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.37 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Dr. Charles West III 72efed.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. Charles West III 72efed.yaml similarity index 61% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Dr. Charles West III 72efed.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Dr. Charles West III 72efed.yaml index 00f1aec62..991c7ca1f 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Dr. Charles West III 72efed.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. Charles West III 72efed.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 105 +CardID: 12105 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Knows His Purpose DragSelectable: true -GMNotes: "{\n \"id\": \"10041\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n - \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. Science.\",\n \"intellectIcons\": - 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GMNotes: "{\n \"id\": \"10041\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Science.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"The + Feast of Hemlock Vale\"\n}" GUID: 72efed Grid: true GridProjection: false @@ -43,14 +44,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -44.35 - posY: 3.23 - posZ: -103.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 79.31 + posY: 3.21 + posZ: 18.32 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. Dewi Irawan c76a06.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. Dewi Irawan c76a06.yaml index 5145c11d5..6cea830ef 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. Dewi Irawan c76a06.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. Dewi Irawan c76a06.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588602 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '"Cryptozoologist"' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09764\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Scholar.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09764\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Scholar.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: c76a06 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 82.2 posY: 3.3 posZ: 25.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. Elli Horowitz 27e7b3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. Elli Horowitz 27e7b3.yaml index 8e0e24987..91783c583 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. Elli Horowitz 27e7b3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. Elli Horowitz 27e7b3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368433 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Assistant Curator DragSelectable: true -GMNotes: "{\r\n \"id\": \"04021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Assistant.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04021\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Assistant.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 27e7b3 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.09 posY: 3.7 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. Francis Morgan f03306.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. Francis Morgan f03306.yaml index c8152094d..07b8d1113 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. Francis Morgan f03306.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. Francis Morgan f03306.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232907 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Professor of Archaeology DragSelectable: true -GMNotes: "{\r\n \"id\": \"02080\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"combatIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02080\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Miskatonic.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: f03306 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.68 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. Henry Armitage 9229a8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. Henry Armitage 9229a8.yaml index c77e1ef1b..add91b840 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. Henry Armitage 9229a8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. Henry Armitage 9229a8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588913 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: The Head Librarian DragSelectable: true -GMNotes: "{\r\n \"id\": \"02040\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"wildIcons\": 2,\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02040\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Miskatonic.\",\n \"wildIcons\": 2,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 9229a8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 8ae314.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 2a6fd1.yaml similarity index 50% rename from unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 8ae314.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 2a6fd1.yaml index 598178538..660e2bfd3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 8ae314.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher (Taboo) 2a6fd1.yaml @@ -1,29 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450614 +CardID: 315 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: Professor of Entomology DragSelectable: true -GMNotes: "{\r\n \"id\": \"01033-t\",\r\n \"alternate_ids\": [\r\n \"01533-t\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 4,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" -GUID: 8ae314 +GMNotes: "{\n \"id\": \"01033-t\",\n \"alternate_ids\": [\n \"01533-t\"\n ],\n + \ \"type\": \"Asset\",\n \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 0,\n + \ \"traits\": \"Ally. Miskatonic.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Core\"\n}" +GUID: 2a6fd1 Grid: true GridProjection: false Hands: true @@ -44,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 8.97 - posY: 4.2 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -19.75 + posY: 3.45 + posZ: -31.51 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher 9934d2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher 9934d2.yaml index 174959c1e..f420a8850 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher 9934d2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. Milan Christopher 9934d2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368434 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Professor of Entomology DragSelectable: true -GMNotes: "{\r\n \"id\": \"01033\",\r\n \"alternate_ids\": [\r\n \"01533\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 4,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01033\",\n \"alternate_ids\": [\n \"01533\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": + 0,\n \"traits\": \"Ally. Miskatonic.\",\n \"intellectIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: 9934d2 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 19.52 posY: 3.37 posZ: -56.77 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson (2) 3ee7a5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson (2) 3ee7a5.yaml index 2f6698bb9..cc67a17f7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson (2) 3ee7a5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson (2) 3ee7a5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379047 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Working on Something Bigger DragSelectable: true -GMNotes: "{\r\n \"id\": \"09054\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09054\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Ally. + Miskatonic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 3ee7a5 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.67 posY: 3.4 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson 14d04f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson 14d04f.yaml index 5f5561bf5..d24c95a14 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson 14d04f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dr. William T. Maleson 14d04f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581102 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Working on Something Big DragSelectable: true -GMNotes: "{\r\n \"id\": \"02302\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02302\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Ally. + Miskatonic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 14d04f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.45 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dragon Pole 331b58.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dragon Pole 331b58.yaml index c60aacc03..d19b7177d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dragon Pole 331b58.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dragon Pole 331b58.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379050 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08060\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08060\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 331b58 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 3d08dc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 49361a.yaml similarity index 51% rename from unpacked/Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 3d08dc.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 49361a.yaml index a10c65c19..76a1ad093 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 3d08dc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin (Taboo) 49361a.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450609 +CardID: 331 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05159-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: 3d08dc +GMNotes: "{\n \"id\": \"05159-t\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" +GUID: 49361a Grid: true GridProjection: false Hands: true @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.08 - posY: 3.7 - posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -13.42 + posY: 3.45 + posZ: -58.59 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin 6d9881.yaml b/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin 6d9881.yaml index e76730903..f63b30370 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin 6d9881.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Drawing Thin 6d9881.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277910 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05159\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05159\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 6d9881 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.04 posY: 3.89 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Drawing the Sign 438cca.yaml b/unpacked/Bag All Player Cards 15bb07/Card Drawing the Sign 438cca.yaml index 977fbef5c..47de6c231 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Drawing the Sign 438cca.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Drawing the Sign 438cca.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580603 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"03041\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Pact. Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03041\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Pact. Madness.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 438cca Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.93 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Drawn to the Flame a8298f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Drawn to the Flame a8298f.yaml index eb48d719c..4a23c65a2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Drawn to the Flame a8298f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Drawn to the Flame a8298f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230304 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01064\",\r\n \"alternate_ids\": [\r\n \"01564\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 0,\r\n - \ \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01064\",\n \"alternate_ids\": [\n \"01564\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": + \"Insight.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: a8298f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dread Curse c54d7e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dread Curse c54d7e.yaml index c3fedd336..737f17807 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dread Curse c54d7e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dread Curse c54d7e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583433 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07039\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07039\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 2,\n + \ \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: c54d7e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.76 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dreaded End 1a94ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dreaded End 1a94ad.yaml index dc3f3ac7c..f36437386 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dreaded End 1a94ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dreaded End 1a94ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587828 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Gift of the Void DragSelectable: true -GMNotes: "{\r\n \"id\": \"86053\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 2,\r\n \"wildIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"86053\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": 2,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Standalone\"\n}" GUID: 1a94ad Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.16 posY: 3.71 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) 5f9a10.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) 5f9a10.yaml index 9232e1eab..579563eed 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) 5f9a10.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) 5f9a10.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447834 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Dreams of an Explorer DragSelectable: true -GMNotes: "{\r\n \"id\": \"06236\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome. Charm.\",\r\n \"bonded\": - [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06113\"\r\n }\r\n ],\r\n - \ \"willpowerIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +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}" GUID: 5f9a10 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.09 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) e5f9cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) e5f9cb.yaml index 368947a30..3df303483 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) e5f9cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) e5f9cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447835 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Dreams of a Madman DragSelectable: true -GMNotes: "{\r\n \"id\": \"06237\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome. Charm.\",\r\n \"bonded\": - [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06113\"\r\n }\r\n ],\r\n - \ \"willpowerIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06237\",\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 \"combatIcons\": 1,\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: e5f9cb Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.16 posY: 4.18 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) ea40f6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) ea40f6.yaml index 6e0409d72..fad480ae5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) ea40f6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary (3) ea40f6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447836 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Dreams of a Child DragSelectable: true -GMNotes: "{\r\n \"id\": \"06238\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome. Charm.\",\r\n \"bonded\": - [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06113\"\r\n }\r\n ],\r\n - \ \"willpowerIcons\": 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06238\",\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 \"intellectIcons\": 1,\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: ea40f6 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.97 posY: 4.03 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary b81dcf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary b81dcf.yaml index 12ee1cbf0..98f7b04e0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dream Diary b81dcf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dream Diary b81dcf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379928 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Untranslated DragSelectable: true -GMNotes: "{\r\n \"id\": \"06112\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome. Charm.\",\r\n \"bonded\": - [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06113\"\r\n }\r\n ],\r\n - \ \"willpowerIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06112\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tome. Charm.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06113\"\n + \ }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: b81dcf Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.01 posY: 3.92 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dream Parasite ae16e8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dream Parasite ae16e8.yaml index 938bad8fb..7d725a185 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dream Parasite ae16e8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dream Parasite ae16e8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448736 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"06331\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"wildIcons\": 2,\r\n \"negativeIcons\": - true,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06331\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"wildIcons\": 2,\n \"negativeIcons\": + true,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: ae16e8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dream-Enhancing Serum 98c5af.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dream-Enhancing Serum 98c5af.yaml index 0aafbc0be..3b66ac9cf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dream-Enhancing Serum 98c5af.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dream-Enhancing Serum 98c5af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379931 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06159\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Science.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06159\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Science.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 98c5af Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.13 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dream-Gate fa4c1e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dream-Gate fa4c1e.yaml index c45292f4e..6f242b76e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dream-Gate fa4c1e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dream-Gate fa4c1e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 541109 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06015a\",\r\n \"alternate_ids\": [\r\n \"06015b\"\r\n - \ ],\r\n \"type\": \"Location\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Dreamlands.\",\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06015a\",\n \"alternate_ids\": [\n \"06015b\"\n ],\n + \ \"type\": \"Location\",\n \"class\": \"Neutral\",\n \"traits\": \"Dreamlands.\",\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: fa4c1e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 26.04 posY: 3.54 posZ: -7.32 - rotX: 0.0 - rotY: 240.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 240 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dreams of the Deep 13eaf0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dreams of the Deep 13eaf0.yaml index f67a30480..6257c07c1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dreams of the Deep 13eaf0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dreams of the Deep 13eaf0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444147 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98015\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"wildIcons\": 2,\r\n \"negativeIcons\": - true,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98015\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"wildIcons\": 2,\n \"negativeIcons\": + true,\n \"cycle\": \"Promo\"\n}" GUID: 13eaf0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Duke 876557.yaml b/unpacked/Bag All Player Cards 15bb07/Card Duke 876557.yaml index 41035c2b7..b1ed6bd4a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Duke 876557.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Duke 876557.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371112 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02014\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Creature.\",\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02014\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Creature.\",\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: '876557' Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 78.27 posY: 1.06 posZ: 26.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck (2) 0c433b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck (2) 0c433b.yaml index 2638d7c46..3f9d926d4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck (2) 0c433b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck (2) 0c433b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550823 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60525\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Fortune.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60525\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Fortune.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 0c433b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck f0e425.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck f0e425.yaml index b78980ec6..790917457 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck f0e425.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dumb Luck f0e425.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368814 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04034\",\r\n \"alternate_ids\": [\r\n \"60514\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"agilityIcons\": 2,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04034\",\n \"alternate_ids\": [\n \"60514\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Fortune.\",\n \"agilityIcons\": 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: f0e425 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dyer's Sketches b12d89.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dyer's Sketches b12d89.yaml index 1ce2cd44c..a4ab2443e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dyer's Sketches b12d89.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dyer's Sketches b12d89.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452303 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08733\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": 1,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08733\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Insight.\",\n \"intellectIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: b12d89 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 79.19 posY: 3.33 posZ: 7.94 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dynamite 793df5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dynamite 793df5.yaml index 265853361..2fc30d0f1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dynamite 793df5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dynamite 793df5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450308 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08616\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Expedition.\",\r\n \"combatIcons\": 2,\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08616\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Expedition.\",\n \"combatIcons\": 2,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 793df5 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 79.47 posY: 3.32 posZ: 8.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (2) e35bc2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (2) e35bc2.yaml index 9b5e497df..5316a66e7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (2) e35bc2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (2) e35bc2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226349 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50002\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50002\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 4,\n \"level\": 2,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: e35bc2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.79 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (3) 14dcc4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (3) 14dcc4.yaml index 4261929e3..d02055c9f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (3) 14dcc4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast (3) 14dcc4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545327 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60129\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60129\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 2,\n \"combatIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 14dcc4 Grid: true GridProjection: false @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.0 + posX: 9 posY: 3.82 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast 97986a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast 97986a.yaml index 7a3a69b75..d88df7b0e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast 97986a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Dynamite Blast 97986a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226319 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01024\",\r\n \"alternate_ids\": [\r\n \"01524\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 5,\r\n - \ \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01024\",\n \"alternate_ids\": [\n \"01524\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Guardian\",\n \"cost\": 5,\n \"level\": 0,\n \"traits\": + \"Tactic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 97986a Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 19.4 posY: 3.37 posZ: -57.26 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Déjà Vu (5) 719a45.yaml b/unpacked/Bag All Player Cards 15bb07/Card Déjà Vu (5) 719a45.yaml index 187bf40e7..b68f7a20f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Déjà Vu (5) 719a45.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Déjà Vu (5) 719a45.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550829 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60531\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 5,\r\n \"traits\": \"Talent. Cursed.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60531\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"level\": 5,\n \"traits\": \"Talent. Cursed.\",\n \"permanent\": true,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 719a45 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.83 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Earl Sawyer f14dce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Earl Sawyer f14dce.yaml index c7639bf0c..4aade2321 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Earl Sawyer f14dce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Earl Sawyer f14dce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232950 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Smarter Than He Lets On DragSelectable: true -GMNotes: "{\r\n \"id\": \"02218\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Dunwich.\",\r\n \"agilityIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02218\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Dunwich.\",\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: f14dce Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.02 posY: 4.05 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (1) 1d6d47.yaml b/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (1) 1d6d47.yaml index 11b1df084..f9b03e8b0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (1) 1d6d47.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (1) 1d6d47.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378955 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08117\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic|Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08117\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic|Survivor\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": + \"Spell.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n + \ \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 1d6d47 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.18 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (4) 57f037.yaml b/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (4) 57f037.yaml index dd7ee9f35..120b139a1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (4) 57f037.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Earthly Serenity (4) 57f037.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378957 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08119\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic|Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08119\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic|Survivor\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": + \"Spell.\",\n \"willpowerIcons\": 2,\n \"uses\": [\n {\n \"count\": 6,\n + \ \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 57f037 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.18 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Easy Mark (1) cdbb37.yaml b/unpacked/Bag All Player Cards 15bb07/Card Easy Mark (1) cdbb37.yaml index d82e3c467..db53524c2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Easy Mark (1) cdbb37.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Easy Mark (1) cdbb37.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440724 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06026\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06026\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: cdbb37 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eat lead! (2) fc2629.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eat lead! (2) fc2629.yaml index 9bd0ee040..2e347d43b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eat lead! (2) fc2629.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eat lead! (2) fc2629.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226342 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03304\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03304\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: fc2629 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eat lead! a2c7ef.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eat lead! a2c7ef.yaml index f017b360c..0f5a121a1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eat lead! a2c7ef.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eat lead! a2c7ef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440923 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52002\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52002\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: a2c7ef Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.2 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eavesdrop 256da2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eavesdrop 256da2.yaml index e7df98d11..e36be7c8b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eavesdrop 256da2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eavesdrop 256da2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368711 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04027\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04027\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight. Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 256da2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.97 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ectoplasmic Horror 379582.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ectoplasmic Horror 379582.yaml index 8c16dcf57..6262bf7b9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ectoplasmic Horror 379582.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ectoplasmic Horror 379582.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379151 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"09127\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster. Geist.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09127\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Geist.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: '379582' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eidetic Memory (3) 814ce2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eidetic Memory (3) 814ce2.yaml index f966cad59..ca01948f0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eidetic Memory (3) 814ce2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eidetic Memory (3) 814ce2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430650 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03306\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03306\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"level\": 3,\n \"traits\": \"Spirit.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 814ce2 Grid: true GridProjection: false @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.0 + posX: 9 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Elder Sign Amulet (3) 324e49.yaml b/unpacked/Bag All Player Cards 15bb07/Card Elder Sign Amulet (3) 324e49.yaml index b01b67359..1b99cba86 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Elder Sign Amulet (3) 324e49.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Elder Sign Amulet (3) 324e49.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368522 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01095\",\r\n \"alternate_ids\": [\r\n \"01595\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 2,\r\n - \ \"level\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01095\",\n \"alternate_ids\": [\n \"01595\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Accessory\",\n \"class\": \"Neutral\",\n \"cost\": 2,\n + \ \"level\": 3,\n \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: 324e49 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eldritch Initiation 223eb2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eldritch Initiation 223eb2.yaml index 6938423ed..633f864b1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eldritch Initiation 223eb2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eldritch Initiation 223eb2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379110 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09086\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09086\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Ritual.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 223eb2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration (1) e84eff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration (1) e84eff.yaml index 83f53f3ae..852de8f22 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration (1) e84eff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration (1) e84eff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538718 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60420\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Spell. Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60420\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Spell. Spirit.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: e84eff Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.11 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration 24eb36.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration 24eb36.yaml index 5952e4431..bd71d7b03 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration 24eb36.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eldritch Inspiration 24eb36.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583604 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05033\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05033\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spell. Spirit.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 24eb36 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Elina Harper 7e2896.yaml b/unpacked/Bag All Player Cards 15bb07/Card Elina Harper 7e2896.yaml index 0a232b42a..2b600c373 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Elina Harper 7e2896.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Elina Harper 7e2896.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 369816 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Knows Too Much DragSelectable: true -GMNotes: "{\r\n \"id\": \"07083\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Ally. Agency. Detective.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07083\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Ally. Agency. Detective.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 7e2896 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 9.0 posY: 3.79 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Elle Rubash (2) 43c3e0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Elle Rubash (2) 43c3e0.yaml index 8e0085fa8..11109bd18 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Elle Rubash (2) 43c3e0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Elle Rubash (2) 43c3e0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379116 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Purifying Purpose DragSelectable: true -GMNotes: "{\r\n \"id\": \"09092\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Witch.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09092\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ally. + Witch.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Scarlet Keys\"\n}" GUID: 43c3e0 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.74 posY: 3.36 posZ: 65.49 - rotX: 359.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ellsworth's Boots 1c751d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ellsworth's Boots 1c751d.yaml index bb96a8669..aad9b7529 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ellsworth's Boots 1c751d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ellsworth's Boots 1c751d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452304 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08734\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Clothing. Footwear.\",\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08734\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Clothing. Footwear.\",\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 1c751d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.96 posY: 3.33 posZ: 7.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Elusive (Taboo) 3c046a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Elusive (Taboo) 3c046a.yaml new file mode 100644 index 000000000..ba5889ad3 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Elusive (Taboo) 3c046a.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 323 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"01050-t\",\n \"alternate_ids\": [\n \"01550-t\"\n ],\n + \ \"type\": \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n + \ \"traits\": \"Tactic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"Core\"\n}" +GUID: 3c046a +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Elusive (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -29.26 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Elusive (Taboo) b67931.yaml b/unpacked/Bag All Player Cards 15bb07/Card Elusive (Taboo) b67931.yaml deleted file mode 100644 index 4f722a5d4..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Elusive (Taboo) b67931.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 585804 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5858': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"01050-t\",\r\n \"alternate_ids\": [\r\n \"01550-t\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" -GUID: b67931 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Elusive (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 8.97 - posY: 3.82 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Elusive 833305.yaml b/unpacked/Bag All Player Cards 15bb07/Card Elusive 833305.yaml index 71a092a8c..92723b648 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Elusive 833305.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Elusive 833305.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368712 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01050\",\r\n \"alternate_ids\": [\r\n \"01550\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01050\",\n \"alternate_ids\": [\n \"01550\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Tactic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: '833305' Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Embezzled Treasure 8fd043.yaml b/unpacked/Bag All Player Cards 15bb07/Card Embezzled Treasure 8fd043.yaml index 8d7bf4801..01d65618f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Embezzled Treasure 8fd043.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Embezzled Treasure 8fd043.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379056 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09063\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Item. Illicit.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09063\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Item. Illicit.\",\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Resource\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 8fd043 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 357.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 357 + rotY: 270 + rotZ: 357 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Emergency Aid 9c46da.yaml b/unpacked/Bag All Player Cards 15bb07/Card Emergency Aid 9c46da.yaml index ca92b0670..d4207ccb9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Emergency Aid 9c46da.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Emergency Aid 9c46da.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226317 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02105\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Science.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02105\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Science.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 9c46da Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.73 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (2) 8948c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (2) 8948c4.yaml index 3f9cc5f67..dc4dcb469 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (2) 8948c4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (2) 8948c4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368519 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02194\",\r\n \"alternate_ids\": [\r\n \"01693\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 0,\r\n - \ \"level\": 2,\r\n \"traits\": \"Supply.\",\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02194\",\n \"alternate_ids\": [\n \"01693\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Neutral\",\n \"cost\": 0,\n \"level\": 2,\n \"traits\": + \"Supply.\",\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 8948c4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 33.28 posY: 2.3 posZ: -79.22 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (3) 408cb5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (3) 408cb5.yaml index b6c19ead4..b6dbc4c5b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (3) 408cb5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache (3) 408cb5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368520 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03239\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Supply.\",\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03239\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Supply.\",\n \"uses\": [\n {\n + \ \"count\": 4,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 408cb5 Grid: true GridProjection: false @@ -45,11 +46,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache 510c0d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache 510c0d.yaml index 29c05fe33..56d6ddce6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache 510c0d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Emergency Cache 510c0d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368509 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01088\",\r\n \"alternate_ids\": [\r\n \"01588\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 0,\r\n - \ \"level\": 0,\r\n \"traits\": \"Supply.\",\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01088\",\n \"alternate_ids\": [\n \"01588\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Neutral\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": + \"Supply.\",\n \"cycle\": \"Core\"\n}" GUID: 510c0d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Empirical Hypothesis 62c67d.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Empirical Hypothesis 62c67d.ttslua new file mode 100644 index 000000000..087ae4f02 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Empirical Hypothesis 62c67d.ttslua @@ -0,0 +1,999 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/EmpiricalHypothesis") +end) +__bundle_register("playercards/cards/EmpiricalHypothesis", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this helper creates buttons to help the user track which hypothesis has been chosen each round +-- (if user forgot to choose one at round start, the old one stays active) +local playmatApi = require("playermat/PlaymatApi") +local upgradeSheetLibrary = require("playercards/customizable/UpgradeSheetLibrary") + +-- common button parameters +local buttonParameters = {} +buttonParameters.function_owner = self +buttonParameters.height = 160 +buttonParameters.width = 1000 +buttonParameters.font_size = 84 +buttonParameters.font_color = { 1.0, 1.0, 1.0 } +buttonParameters.color = Color.Black +buttonParameters.position = {} +buttonParameters.position.x = 0 +buttonParameters.position.y = 0.6 +buttonParameters.position.z = -1.05 +initialButtonPosition = buttonParameters.position.z + +-- vertical offset between buttons +local verticalOffset = 0.325 + +-- list of customizable labels +local customizableList = { + 'Run out of cards in hand', + 'Take damage/horror', + 'Discard treachery/enemy', + 'Enter 3 or more shroud' +} + +-- index of the currently selected button (0-indexed from the top) +local activeButtonIndex + +function onSave() + return JSON.encode(activeButtonIndex) +end + +function onLoad(savedData) + self.addContextMenuItem("Enable Helper", createButtons) + self.addContextMenuItem("Clear Helper", deleteButtons) + + activeButtonIndex = JSON.decode(savedData) + if activeButtonIndex and activeButtonIndex ~= "" then + local tempButtonIndex = activeButtonIndex + createButtons() + if tempButtonIndex >= 0 then + selectButton(tempButtonIndex) + end + end +end + +-- marks a button as active +---@param index Number Index of the button to mark (starts at 0 from the top) +function selectButton(index) + local lastindex = #hypothesisList - 1 + for i = 0, lastindex do + local color = Color.Black + if i == index then + color = Color.Red + activeButtonIndex = i + end + self.editButton({ index = i, color = color }) + end +end + +function deleteButtons() + self.clearButtons() + self.clearContextMenu() + self.addContextMenuItem("Enable Helper", createButtons) + buttonParameters.position.z = initialButtonPosition -- reset the z position +end + +-- Create buttons based on the button parameters +function createButtons() + self.clearContextMenu() + self.addContextMenuItem("Clear Helper", deleteButtons) + + -- reset the list in case of addition of checkboxes or Refine + hypothesisList = { + 'Succeed by 3 or more', + 'Fail by 2 or more' + } + + -- set activeButtonIndex to restore state onLoad ("-1" -> nothing selected) + activeButtonIndex = -1 + + -- get the upgradesheet and check for more conditions + local upgradeSheet = findUpgradeSheet() + if upgradeSheet then + for i = 1, 4 do + if upgradeSheet.call("isUpgradeActive", i) then + table.insert(hypothesisList, customizableList[i]) + end + end + end + + for i, label in ipairs(hypothesisList) do + buttonParameters.click_function = "selectButton" .. i + self.setVar(buttonParameters.click_function, function() selectButton(i - 1) end) + buttonParameters.label = label + self.createButton(buttonParameters) + buttonParameters.position.z = buttonParameters.position.z + verticalOffset + end +end + +function findUpgradeSheet() + local matColor = playmatApi.getMatColorByPosition(self.getPosition()) + local result = playmatApi.searchAroundPlaymat(matColor, "isCard") + for j, card in ipairs(result) do + local metadata = JSON.decode(card.getGMNotes()) or {} + if metadata.id == "09041-c" then + return card + end + end +end +end) +__bundle_register("playercards/customizable/UpgradeSheetLibrary", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Common code for handling customizable card upgrade sheets +-- Define UI elements in the base card file, then include this +-- UI element definition is an array of tables, each with this structure. A row may include +-- checkboxes (number defined by count), a text field, both, or neither (if the row has custom +-- handling, as Living Ink does) +-- { +-- checkboxes = { +-- posZ = -0.71, +-- count = 1, +-- }, +-- textField = { +-- position = { 0.005, 0.25, -0.58 }, +-- width = 875 +-- } +-- } +-- Fields should also be defined for xInitial (left edge of the checkboxes) and xOffset (amount to +-- shift X from one box to the next) as well as boxSize (checkboxes) and inputFontSize. +-- +-- selectedUpgrades holds the state of checkboxes and text input, each element being: +-- selectedUpgrades[row] = { xp = #, text = "" } + +local playmatApi = require("playermat/PlaymatApi") + +-- Y position for UI elements. Visibility of checkboxes moves the checkbox inside the card object +-- when not selected. +local Y_VISIBLE = 0.25 +local Y_INVISIBLE = -0.5 + +-- Used for Summoned Servitor and Living Ink +local VECTOR_COLOR = { + unselected = { 0.5, 0.5, 0.5, 0.75 }, + mystic = { 0.597, 0.195, 0.796 } +} + +-- These match with ArkhamDB's way of storing the data in the dropdown menu +local SUMMONED_SERVITOR_SLOT_INDICES = { arcane = "1", ally = "0", none = "" } + +local rowCheckboxFirstIndex = { } +local rowInputIndex = { } +local selectedUpgrades = { } + +-- save state when going into bags / decks +function onDestroy() self.script_state = onSave() end + +function onSave() + return JSON.encode({ + selections = selectedUpgrades + }) +end + +-- Startup procedure +function onLoad(savedData) + if savedData ~= "" then + local loadedData = JSON.decode(savedData) + if loadedData.selections ~= nil then + selectedUpgrades = loadedData.selections + end + end + + selfId = getSelfId() + + maybeLoadLivingInkSkills() + createUi() + maybeUpdateLivingInkSkillDisplay() + maybeUpdateServitorSlotDisplay() + + self.addContextMenuItem("Clear Selections", function() resetSelections() end) + self.addContextMenuItem("Scale: 1x", function() self.setScale({ 1, 1, 1 }) end) + self.addContextMenuItem("Scale: 2x", function() self.setScale({ 2, 1, 2 }) end) + self.addContextMenuItem("Scale: 3x", function() self.setScale({ 3, 1, 3 }) end) +end + +-- Grabs the ID from the metadata for special functions (Living Ink, Summoned Servitor) +function getSelfId() + local metadata = JSON.decode(self.getGMNotes()) + return metadata.id +end + +function isUpgradeActive(row) + return customizations[row] ~= nil + and customizations[row].checkboxes ~= nil + and customizations[row].checkboxes.count ~= nil + and customizations[row].checkboxes.count > 0 + and selectedUpgrades[row] ~= nil + and selectedUpgrades[row].xp ~= nil + and selectedUpgrades[row].xp >= customizations[row].checkboxes.count +end + +function resetSelections() + selectedUpgrades = { } + updateDisplay() +end + +function createUi() + if customizations == nil then + return + end + for i = 1, #customizations do + if customizations[i].checkboxes ~= nil then + createRowCheckboxes(i) + end + if customizations[i].textField ~= nil then + createRowTextField(i) + end + end + maybeMakeLivingInkSkillSelectionButtons() + maybeMakeServitorSlotSelectionButtons() + updateDisplay() +end + +function createRowCheckboxes(rowIndex) + local checkboxes = customizations[rowIndex].checkboxes + rowCheckboxFirstIndex[rowIndex] = 0 + local previousButtons = self.getButtons() + if previousButtons ~= nil then + rowCheckboxFirstIndex[rowIndex] = #previousButtons + end + for col = 1, checkboxes.count do + local funcName = "checkboxRow" .. rowIndex .. "Col" .. col + local func = function() clickCheckbox(rowIndex, col) end + self.setVar(funcName, func) + local checkboxPos = getCheckboxPosition(rowIndex, col) + + self.createButton({ + click_function = funcName, + function_owner = self, + position = checkboxPos, + height = boxSize * 10, + width = boxSize * 10, + font_size = 1000, + scale = { 0.1, 0.1, 0.1 }, + color = { 0, 0, 0 }, + font_color = { 0, 0, 0 } + }) + end +end + +function getCheckboxPosition(row, col) + return { + x = xInitial + col * xOffset, + y = Y_VISIBLE, + z = customizations[row].checkboxes.posZ + } +end + +function createRowTextField(rowIndex) + local textField = customizations[rowIndex].textField + + rowInputIndex[rowIndex] = 0 + local previousInputs = self.getInputs() + if previousInputs ~= nil then + rowInputIndex[rowIndex] = #previousInputs + end + local funcName = "textbox" .. rowIndex + local func = function(_, _, val, sel) clickTextbox(rowIndex, val, sel) end + self.setVar(funcName, func) + + self.createInput({ + input_function = funcName, + function_owner = self, + label = "Click to type", + alignment = 2, + position = textField.position, + scale = { 0.1, 0.1, 0.1 }, + width = textField.width * 10, + height = inputFontsize * 10 + 75, + font_size = inputFontsize * 10.5, + color = "White", + value = "" + }) +end + +function updateDisplay() + for i = 1, #customizations do + updateRowDisplay(i) + end + maybeUpdateLivingInkSkillDisplay() + maybeUpdateServitorSlotDisplay() +end + +function updateRowDisplay(rowIndex) + if customizations[rowIndex].checkboxes ~= nil then + updateCheckboxes(rowIndex) + end + if customizations[rowIndex].textField ~= nil then + updateTextField(rowIndex) + end +end + +function updateCheckboxes(rowIndex) + local checkboxCount = customizations[rowIndex].checkboxes.count + local selected = 0 + if selectedUpgrades[rowIndex] ~= nil and selectedUpgrades[rowIndex].xp ~= nil then + selected = selectedUpgrades[rowIndex].xp + end + local checkboxIndex = rowCheckboxFirstIndex[rowIndex] + for col = 1, checkboxCount do + local pos = getCheckboxPosition(rowIndex, col) + if col <= selected then + pos.y = Y_VISIBLE + else + pos.y = Y_INVISIBLE + end + self.editButton({ + index = checkboxIndex, + position = pos + }) + checkboxIndex = checkboxIndex + 1 + end +end + +function updateTextField(rowIndex) + local inputIndex = rowInputIndex[rowIndex] + if selectedUpgrades[rowIndex] ~= nil and selectedUpgrades[rowIndex].text ~= nil then + self.editInput({ + index = inputIndex, + value = " " .. selectedUpgrades[rowIndex].text + }) + end +end + +function clickCheckbox(row, col, buttonIndex) + if selectedUpgrades[row] == nil then + selectedUpgrades[row] = { } + selectedUpgrades[row].xp = 0 + end + if selectedUpgrades[row].xp == col then + selectedUpgrades[row].xp = col - 1 + else + selectedUpgrades[row].xp = col + end + updateCheckboxes(row) + playmatApi.syncAllCustomizableCards() +end + +-- Updates saved value for given text box when it loses focus +function clickTextbox(rowIndex, value, selected) + if selected == false then + if selectedUpgrades[rowIndex] == nil then + selectedUpgrades[rowIndex] = { } + end + selectedUpgrades[rowIndex].text = value:gsub("^%s*(.-)%s*$", "%1") + -- Editing isn't actually done yet, and will block the update. Wait a frame so it's finished + Wait.frames(function() updateRowDisplay(rowIndex) end, 1) + end +end + +--------------------------------------------------------- +-- Living Ink related functions +--------------------------------------------------------- + +-- Builds the list of boolean skill selections from the Row 1 text field +function maybeLoadLivingInkSkills() + if selfId ~= "09079-c" then return end + selectedSkills = { + willpower = false, + intellect = false, + combat = false, + agility = false + } + if selectedUpgrades[1] ~= nil and selectedUpgrades[1].text ~= nil then + for skill in string.gmatch(selectedUpgrades[1].text, "([^,]+)") do + selectedSkills[skill] = true + end + end +end + +function clickSkill(skillname) + selectedSkills[skillname] = not selectedSkills[skillname] + maybeUpdateLivingInkSkillDisplay() + updateSelectedLivingInkSkillText() +end + +-- Creates the invisible buttons overlaying the skill icons +function maybeMakeLivingInkSkillSelectionButtons() + if selfId ~= "09079-c" then return end + + local buttonData = { + function_owner = self, + position = { y = 0.2 }, + height = 130, + width = 130, + color = { 0, 0, 0, 0 }, + } + + for skillname, _ in pairs(selectedSkills) do + local funcName = "clickSkill" .. skillname + self.setVar(funcName, function() clickSkill(skillname) end) + + buttonData.click_function = funcName + buttonData.position.x = -1 * SKILL_ICON_POSITIONS[skillname].x + buttonData.position.z = SKILL_ICON_POSITIONS[skillname].z + self.createButton(buttonData) + end +end + +-- Builds a comma-delimited string of skills and places it in the Row 1 text field +function updateSelectedLivingInkSkillText() + local skillString = "" + if selectedSkills.willpower then + skillString = skillString .. "willpower" .. "," + end + if selectedSkills.intellect then + skillString = skillString .. "intellect" .. "," + end + if selectedSkills.combat then + skillString = skillString .. "combat" .. "," + end + if selectedSkills.agility then + skillString = skillString .. "agility" .. "," + end + if selectedUpgrades[1] == nil then + selectedUpgrades[1] = { } + end + selectedUpgrades[1].text = skillString +end + +-- Refresh the vector circles indicating a skill is selected. Since we can only have one table of +-- vectors set, have to refresh all 4 at once +function maybeUpdateLivingInkSkillDisplay() + if selfId ~= "09079-c" then return end + local circles = {} + for skill, isSelected in pairs(selectedSkills) do + if isSelected then + local circle = getCircleVector(SKILL_ICON_POSITIONS[skill]) + if circle ~= nil then + table.insert(circles, circle) + end + end + end + self.setVectorLines(circles) +end + +function getCircleVector(center) + local diameter = Vector(0, 0, 0.1) + local pointOfOrigin = Vector(center.x, Y_VISIBLE, center.z) + local vec + local vecList = {} + local arcStep = 5 + for i = 0, 360, arcStep do + diameter:rotateOver('y', arcStep) + vec = pointOfOrigin + diameter + vec.y = pointOfOrigin.y + table.insert(vecList, vec) + end + + return { + points = vecList, + color = VECTOR_COLOR.mystic, + thickness = 0.02, + } +end + +--------------------------------------------------------- +-- Summoned Servitor related functions +--------------------------------------------------------- + +-- Creates the invisible buttons overlaying the slot words +function maybeMakeServitorSlotSelectionButtons() + if selfId ~= "09080-c" then return end + + local buttonData = { + click_function = "clickArcane", + function_owner = self, + position = { x = -1 * SLOT_ICON_POSITIONS.arcane.x, y = 0.2, z = SLOT_ICON_POSITIONS.arcane.z }, + height = 130, + width = 130, + color = { 0, 0, 0, 0 }, + } + self.createButton(buttonData) + + buttonData.click_function = "clickAlly" + buttonData.position.x = -1 * SLOT_ICON_POSITIONS.ally.x + self.createButton(buttonData) +end + +-- toggles the clicked slot +function clickArcane() + if selectedUpgrades[6] == nil then + selectedUpgrades[6] = { } + end + if selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.arcane then + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.none + else + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.arcane + end + maybeUpdateServitorSlotDisplay() +end + +-- toggles the clicked slot +function clickAlly() + if selectedUpgrades[6] == nil then + selectedUpgrades[6] = { } + end + if selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.ally then + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.none + else + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.ally + end + maybeUpdateServitorSlotDisplay() +end + +-- Refresh the vector circles indicating a slot is selected. +function maybeUpdateServitorSlotDisplay() + if selfId ~= "09080-c" then return end + + local center = SLOT_ICON_POSITIONS["arcane"] + local arcaneVecList = { + Vector(center.x + 0.12, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.12, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.12, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.12, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.12, Y_VISIBLE, center.z + 0.05), + } + + center = SLOT_ICON_POSITIONS["ally"] + local allyVecList = { + Vector(center.x + 0.07, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.07, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.07, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.07, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.07, Y_VISIBLE, center.z + 0.05), + } + + local arcaneVecColor = VECTOR_COLOR.unselected + local allyVecColor = VECTOR_COLOR.unselected + + if selectedUpgrades[6] ~= nil and selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.arcane then + arcaneVecColor = VECTOR_COLOR.mystic + elseif selectedUpgrades[6] ~= nil and selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.ally then + allyVecColor = VECTOR_COLOR.mystic + end + + self.setVectorLines({ + { + points = arcaneVecList, + color = arcaneVecColor, + thickness = 0.02, + }, + { + points = allyVecList, + color = allyVecColor, + thickness = 0.02, + } + }) +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Empirical Hypothesis 62c67d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Empirical Hypothesis 62c67d.yaml index e3c66ad9c..12f4c2f51 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Empirical Hypothesis 62c67d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Empirical Hypothesis 62c67d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379034 ColorDiffuse: @@ -19,30 +19,30 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09041\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent. Science.\",\r\n \"intellectIcons\": - 1,\r\n \"customizations\": [\r\n {\r\n \"name\": \"Pessimistic Outlook\",\r\n - \ \"xp\": 1,\r\n \"text\": \"Add the following criteria: \u201Cyou run - out of cards in your hand.\u201D\"\r\n },\r\n {\r\n \"name\": \"Trial - and Error\",\r\n \"xp\": 1,\r\n \"text\": \"Add the following criteria: - \u201Cyou are dealt damage or horror.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Independent Variable\",\r\n \"xp\": 1,\r\n \"text\": \"Add the following - criteria: \u201Cyou discard a treachery or enemy from play.\u201D\"\r\n },\r\n - \ {\r\n \"name\": \"Field Research\",\r\n \"xp\": 1,\r\n \"text\": - \"Add the following criteria: \u201Cyou enter a location with 3 or more shroud.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Peer Review\",\r\n \"xp\": 2,\r\n \"text\": - \"The chosen criteria is met if any investigator at your location meets it, instead - of only you. Other investigators at your location may trigger \U0001F5F2 abilities - on Empirical Hypothesis.\"\r\n },\r\n {\r\n \"name\": \"Research Grant\",\r\n - \ \"xp\": 2,\r\n \"text\": \"Empirical Hypothesis gains: \u201C\U0001F5F2 - Spend 2 evidence: Reduce the cost of the next card you play this phase by 3.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Irrefutable Proof\",\r\n \"xp\": 3,\r\n - \ \"text\": \"Empirical Hypothesis gains: \u201C\U0001F5F2 Spend 3 evidence: - Discover 1 clue at your location.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Alternative Hypothesis\",\r\n \"xp\": 4,\r\n \"text\": \"After you exhaust +GMNotes: "{\n \"id\": \"09041\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent. Science.\",\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Evidence\",\n \"token\": + \"resource\"\n }\n ],\n \"customizations\": [\n {\n \"name\": \"Pessimistic + Outlook\",\n \"xp\": 1,\n \"text\": \"Add the following criteria: \u201Cyou + run out of cards in your hand.\u201D\"\n },\n {\n \"name\": \"Trial and + Error\",\n \"xp\": 1,\n \"text\": \"Add the following criteria: \u201Cyou + are dealt damage or horror.\u201D\"\n },\n {\n \"name\": \"Independent + Variable\",\n \"xp\": 1,\n \"text\": \"Add the following criteria: \u201Cyou + discard a treachery or enemy from play.\u201D\"\n },\n {\n \"name\": + \"Field Research\",\n \"xp\": 1,\n \"text\": \"Add the following criteria: + \u201Cyou enter a location with 3 or more shroud.\u201D\"\n },\n {\n \"name\": + \"Peer Review\",\n \"xp\": 2,\n \"text\": \"The chosen criteria is met + if any investigator at your location meets it, instead of only you. Other investigators + at your location may trigger \U0001F5F2 abilities on Empirical Hypothesis.\"\n },\n + \ {\n \"name\": \"Research Grant\",\n \"xp\": 2,\n \"text\": \"Empirical + Hypothesis gains: \u201C\U0001F5F2 Spend 2 evidence: Reduce the cost of the next + card you play this phase by 3.\u201D\"\n },\n {\n \"name\": \"Irrefutable + Proof\",\n \"xp\": 3,\n \"text\": \"Empirical Hypothesis gains: \u201C\U0001F5F2 + Spend 3 evidence: Discover 1 clue at your location.\u201D\"\n },\n {\n \"name\": + \"Alternative Hypothesis\",\n \"xp\": 4,\n \"text\": \"After you exhaust Empirical Hypothesis, you may resolve its forced effect, choosing a criteria you - have not chosen this round. Then, ready it.\"\r\n }\r\n ],\r\n \"cycle\": \"The - Scarlet Keys\"\r\n}\r" + have not chosen this round. Then, ready it.\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 62c67d Grid: true GridProjection: false @@ -51,7 +51,7 @@ HideWhenFaceDown: true IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Card Empirical Hypothesis 62c67d.ttslua' LuaScriptState: '' MeasureMovement: false Name: Card @@ -67,11 +67,11 @@ Transform: posX: 16.67 posY: 3.4 posZ: 65.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 3d22c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 3d22c4.yaml index 0007077b6..74fa1e3ca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 3d22c4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 3d22c4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448033 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Acuity DragSelectable: true -GMNotes: "{\r\n \"id\": \"06243\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06243\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n + \ \"intellectIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 3d22c4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.0 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 4c0f00.yaml b/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 4c0f00.yaml index d8e93a662..67fecd194 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 4c0f00.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) 4c0f00.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448032 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Alacrity DragSelectable: true -GMNotes: "{\r\n \"id\": \"06242\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06242\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n + \ \"agilityIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 4c0f00 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) ffe4dd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) ffe4dd.yaml index fc1c79ecb..989421a02 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) ffe4dd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Empower Self (2) ffe4dd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448031 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Stamina DragSelectable: true -GMNotes: "{\r\n \"id\": \"06241\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06241\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n + \ \"combatIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: ffe4dd Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Empty Vessel (4) c0d236.yaml b/unpacked/Bag All Player Cards 15bb07/Card Empty Vessel (4) c0d236.yaml index b2f4c7772..a03b16699 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Empty Vessel (4) c0d236.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Empty Vessel (4) c0d236.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448936 ColorDiffuse: @@ -19,12 +19,12 @@ CustomDeck: UniqueBack: false Description: Abandoned by the Gods DragSelectable: true -GMNotes: "{\r\n \"id\": \"06276\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic. Blessed.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06277\"\r\n }\r\n - \ ],\r\n \"willpowerIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 0,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06276\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. + Relic. Blessed.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06277\"\n + \ }\n ],\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 0,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: c0d236 Grid: true GridProjection: false @@ -49,11 +49,11 @@ Transform: posX: 9.02 posY: 3.94 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enchant Weapon (3) 33455f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enchant Weapon (3) 33455f.yaml index 8813e19a3..738b805ed 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enchant Weapon (3) 33455f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enchant Weapon (3) 33455f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449600 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07261\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell. Upgrade.\",\r\n \"willpowerIcons\": - 2,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07261\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell. Upgrade.\",\n \"willpowerIcons\": + 2,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 33455f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.01 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Armor (2) 9509e3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Armor (2) 9509e3.yaml index 36df28a2f..db380fb9a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Armor (2) 9509e3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Armor (2) 9509e3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588800 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07189\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Ritual. Armor.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07189\",\n \"type\": \"Asset\",\n \"slot\": \"Body|Arcane\",\n + \ \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Ritual. + Armor.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Innsmouth Conspiracy\"\n}" GUID: 9509e3 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.03 posY: 3.71 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) 84b918.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) 84b918.yaml index 718d3a2d4..c980bcbd3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) 84b918.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) 84b918.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292815 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Guardian DragSelectable: true -GMNotes: "{\r\n \"id\": \"05192\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05192\",\n \"type\": \"Asset\",\n \"slot\": \"Hand|Arcane\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Weapon. Melee.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: 84b918 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 3.84 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) d0de54.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) d0de54.yaml index cc41bc8cf..1482c02db 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) d0de54.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade (3) d0de54.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293314 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Mystic DragSelectable: true -GMNotes: "{\r\n \"id\": \"05193\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 4,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05193\",\n \"type\": \"Asset\",\n \"slot\": \"Hand|Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Weapon. Melee.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": + [\n {\n \"count\": 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: d0de54 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade c7d9b5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade c7d9b5.yaml index f32644258..0c14bbf06 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade c7d9b5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Blade c7d9b5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277607 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05118\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic|Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05118\",\n \"type\": \"Asset\",\n \"slot\": \"Hand|Arcane\",\n + \ \"class\": \"Mystic|Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": + \"Item. Relic. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: c7d9b5 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Bow (2) f85d4e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Bow (2) f85d4e.yaml index af8d539d5..aac555435 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Bow (2) f85d4e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Bow (2) f85d4e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378956 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08118\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Blessed. Weapon. Ranged.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08118\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2|Arcane\",\n + \ \"class\": \"Mystic|Survivor\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": + \"Spell. Blessed. Weapon. Ranged.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: f85d4e Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.9 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Skull a4775a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Skull a4775a.yaml index 280f892f1..d88c7b7e1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enchanted Skull a4775a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enchanted Skull a4775a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 585230 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Mask of the Burning Pit DragSelectable: true -GMNotes: "{\r\n \"id\": \"86055\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": 2,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"86055\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Relic.\",\n \"intellectIcons\": 2,\n \"wildIcons\": + 1,\n \"cycle\": \"Standalone\"\n}" GUID: a4775a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.03 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia (2) f5bcec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia (2) f5bcec.yaml index d4cde253f..7f04f6d00 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia (2) f5bcec.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia (2) f5bcec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430646 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01042\",\r\n \"alternate_ids\": [\r\n \"01542\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 2,\r\n - \ \"level\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01042\",\n \"alternate_ids\": [\n \"01542\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": + 2,\n \"traits\": \"Item. Tome.\",\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: f5bcec Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 19.5 posY: 3.37 posZ: -56.86 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia dbb0e0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia dbb0e0.yaml index 81eba3d9b..fe5f7492a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia dbb0e0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Encyclopedia dbb0e0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538806 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60208\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"wildIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60208\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tome.\",\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 5,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Investigator + Packs\"\n}" GUID: dbb0e0 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.06 posY: 3.76 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card End of the Road a3d041.yaml b/unpacked/Bag All Player Cards 15bb07/Card End of the Road a3d041.yaml index dd1eaf01a..5839fd83a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card End of the Road a3d041.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card End of the Road a3d041.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379128 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09104\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Spirit.\",\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09104\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight. Spirit.\",\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: a3d041 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Enraptured a5c780.yaml b/unpacked/Bag All Player Cards 15bb07/Card Enraptured a5c780.yaml index 2fd18f124..02bc5d654 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Enraptured a5c780.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Enraptured a5c780.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230301 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04157\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04157\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"intellectIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: a5c780 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.92 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 389610.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 389610.yaml new file mode 100644 index 000000000..9b5670fa9 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 389610.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 354 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"08098-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker|Rogue\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. Relic.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" +GUID: '389610' +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Eon Chart (1) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -24.74 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 4d4ffb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 4d4ffb.yaml deleted file mode 100644 index fb0aabb21..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) (Taboo) 4d4ffb.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558216 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"08098-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" -GUID: 4d4ffb -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Eon Chart (1) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.84 - posY: 4.6 - posZ: -51.37 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) be4332.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) be4332.yaml index 565e87ad4..cb84ae425 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) be4332.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (1) be4332.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378936 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08098\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08098\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker|Rogue\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Relic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: be4332 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.79 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) 41c449.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) 41c449.yaml new file mode 100644 index 000000000..79c6a6287 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) 41c449.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 355 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"08100-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker|Rogue\",\n + \ \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Item. Relic.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" +GUID: 41c449 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Eon Chart (4) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -17.97 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) b925cf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) b925cf.yaml deleted file mode 100644 index 916258281..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) (Taboo) b925cf.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558217 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"08100-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" -GUID: b925cf -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Eon Chart (4) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.85 - posY: 4.69 - posZ: -53.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) d3ad2d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) d3ad2d.yaml index bd9ade69a..26edb83d8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) d3ad2d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eon Chart (4) d3ad2d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378938 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08100\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08100\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker|Rogue\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Item. + Relic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n + \ \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: d3ad2d Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.63 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Erynn MacAoidh 6abfbc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Erynn MacAoidh 6abfbc.yaml index 7c0816d9f..29fb24973 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Erynn MacAoidh 6abfbc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Erynn MacAoidh 6abfbc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449503 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: Devoted Enchantress DragSelectable: true -GMNotes: "{\r\n \"id\": \"54041\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Witch.\",\r\n \"willpowerIcons\": 2,\r\n - \ \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return to the Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54041\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Witch.\",\n \"willpowerIcons\": 2,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 6abfbc Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 9.13 posY: 3.8 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (1) 0ce005.yaml b/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (1) 0ce005.yaml index 634e700b9..24b0785c1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (1) 0ce005.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (1) 0ce005.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293216 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05232\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Item. Tome.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05232\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Item. + Tome.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Circle + Undone\"\n}" GUID: 0ce005 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.13 posY: 5.46 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (2) 2172e2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (2) 2172e2.yaml index 120ab2df9..cc1a9d47b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (2) 2172e2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Esoteric Atlas (2) 2172e2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538820 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60222\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60222\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Item. + Tome.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 4,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Investigator Packs\"\n}" GUID: 2172e2 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Essence of the Dream 6ad46b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Essence of the Dream 6ad46b.yaml index 344f78b57..a5f5d0f94 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Essence of the Dream 6ad46b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Essence of the Dream 6ad46b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379929 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06113\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"traits\": \"Practiced. Expert.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06113\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Practiced. Expert.\",\n \"wildIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 6ad46b Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.13 posY: 5.32 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ethereal Form db90e2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ethereal Form db90e2.yaml index cdd5aa879..82fb1bdae 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ethereal Form db90e2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ethereal Form db90e2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380128 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06164\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06164\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: db90e2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.92 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip (2) 39cb5b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip (2) 39cb5b.yaml index d71c7ab87..74c3223e2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip (2) 39cb5b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip (2) 39cb5b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378948 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08110\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue|Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Trick.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08110\",\n \"type\": \"Event\",\n \"class\": \"Rogue|Mystic\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Spell. Trick.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 39cb5b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.79 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip 31539a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip 31539a.yaml index a30e7ac99..ebc22ec9b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip 31539a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ethereal Slip 31539a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378946 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08108\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue|Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Trick.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08108\",\n \"type\": \"Event\",\n \"class\": \"Rogue|Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell. Trick.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 31539a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.7 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) 8be540.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) 8be540.yaml new file mode 100644 index 000000000..a19281cd5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) 8be540.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 334 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"05324-t\",\n \"alternate_ids\": [\n \"01692-t\"\n ],\n + \ \"type\": \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": + 3,\n \"traits\": \"Fortune. Blessed.\",\n \"wildIcons\": 2,\n \"cycle\": \"The + Circle Undone\"\n}" +GUID: 8be540 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Eucatastrophe (3) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -49.57 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) b2ccf8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) b2ccf8.yaml deleted file mode 100644 index d8bc226e7..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) (Taboo) b2ccf8.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 585705 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5857': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"05324-t\",\r\n \"alternate_ids\": [\r\n \"01692-t\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 2,\r\n - \ \"level\": 3,\r\n \"traits\": \"Fortune. Blessed.\",\r\n \"wildIcons\": 2,\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: b2ccf8 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Eucatastrophe (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 9.16 - posY: 3.3 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) eaaee9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) eaaee9.yaml index 44b6505e0..6601026c2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) eaaee9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eucatastrophe (3) eaaee9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374419 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05324\",\r\n \"alternate_ids\": [\r\n \"01692\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 2,\r\n - \ \"level\": 3,\r\n \"traits\": \"Fortune. Blessed.\",\r\n \"wildIcons\": 2,\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05324\",\n \"alternate_ids\": [\n \"01692\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": + \"Fortune. Blessed.\",\n \"wildIcons\": 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: eaaee9 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eureka! ffa4f9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eureka! ffa4f9.yaml index b93d7897d..d0c477c1d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eureka! ffa4f9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eureka! ffa4f9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368400 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03231\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03231\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: ffa4f9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 3.96 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (1) bb640d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (1) bb640d.yaml index 696f5e2f0..7186f1e32 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (1) bb640d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (1) bb640d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226334 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03023\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03023\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: bb640d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.94 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (4) ac910a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (4) ac910a.yaml index bd4e3fda2..7a54da930 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (4) ac910a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ever Vigilant (4) ac910a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379032 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09039\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 4,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09039\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 4,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: ac910a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.37 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Evidence! (1) 3df5fb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Evidence! (1) 3df5fb.yaml index 004c5726c..3c80a5c6d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Evidence! (1) 3df5fb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Evidence! (1) 3df5fb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545318 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60120\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60120\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 3df5fb Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Evidence! 2db518.yaml b/unpacked/Bag All Player Cards 15bb07/Card Evidence! 2db518.yaml index c0c1c483e..9ec267d86 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Evidence! 2db518.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Evidence! 2db518.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226309 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01022\",\r\n \"alternate_ids\": [\r\n \"01522\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01022\",\n \"alternate_ids\": [\n \"01522\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": + \"Insight.\",\n \"intellectIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: 2db518 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 19.37 posY: 3.37 posZ: -57.52 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Existential Riddle (1) 38a30a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Existential Riddle (1) 38a30a.yaml index 33cc02242..5859cdd9f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Existential Riddle (1) 38a30a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Existential Riddle (1) 38a30a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379045 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09052\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Insight. Paradox.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09052\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Insight. Paradox.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 38a30a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Expedited Ticket 8fbd1b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Expedited Ticket 8fbd1b.yaml index b53f0ed71..515924123 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Expedited Ticket 8fbd1b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Expedited Ticket 8fbd1b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588603 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09765\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Item.\",\r\n \"permanent\": true,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09765\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Item.\",\n \"permanent\": true,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 8fbd1b Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 82.2 posY: 3.3 posZ: 27.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Expedition Journal 9dc3d4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Expedition Journal 9dc3d4.yaml index 708d8fcb5..bde7edc6f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Expedition Journal 9dc3d4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Expedition Journal 9dc3d4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235649 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04148\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": 2,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04148\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Tome.\",\n \"intellectIcons\": 2,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 9dc3d4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.74 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Expeditious Retreat (1) ea8324.yaml b/unpacked/Bag All Player Cards 15bb07/Card Expeditious Retreat (1) ea8324.yaml index 4bc47a6cd..bd67dc8eb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Expeditious Retreat (1) ea8324.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Expeditious Retreat (1) ea8324.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447734 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06246\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Developed.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06246\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Developed.\",\n \"agilityIcons\": 1,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: ea8324 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.13 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Exploit Weakness b6857b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Exploit Weakness b6857b.yaml index 3a9624ccc..92fb0336b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Exploit Weakness b6857b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Exploit Weakness b6857b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379129 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09105\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Trick.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09105\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Tactic. Trick.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: b6857b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Explosive Ward f86c67.yaml b/unpacked/Bag All Player Cards 15bb07/Card Explosive Ward f86c67.yaml index 69152f259..aabde5dca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Explosive Ward f86c67.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Explosive Ward f86c67.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379111 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09087\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": 2,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09087\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Spell.\",\n \"combatIcons\": 2,\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: f86c67 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (1) 2e93fd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (1) 2e93fd.yaml index 513938782..3172be56b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (1) 2e93fd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (1) 2e93fd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430635 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02228\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02228\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 2e93fd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.18 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (3) 77f92c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (3) 77f92c.yaml index e0397271d..d89ce8743 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (3) 77f92c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Expose Weakness (3) 77f92c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 262203 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04195\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04195\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 77f92c Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.2 posY: 3.0 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Extensive Research (1) 3dc25c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Extensive Research (1) 3dc25c.yaml index 9469977b1..74544b06d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Extensive Research (1) 3dc25c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Extensive Research (1) 3dc25c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447833 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06198\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 10,\r\n \"level\": 1,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06198\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 10,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 3dc25c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 3.97 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Extensive Research 013446.yaml b/unpacked/Bag All Player Cards 15bb07/Card Extensive Research 013446.yaml index 521802601..f78155519 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Extensive Research 013446.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Extensive Research 013446.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538814 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60216\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 12,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60216\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 12,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: '013446' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Extra Ammunition (1) f60263.yaml b/unpacked/Bag All Player Cards 15bb07/Card Extra Ammunition (1) f60263.yaml index e883c9fd1..c55318dd9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Extra Ammunition (1) f60263.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Extra Ammunition (1) f60263.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226337 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01026\",\r\n \"alternate_ids\": [\r\n \"01526\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 2,\r\n - \ \"level\": 1,\r\n \"traits\": \"Supply.\",\r\n \"intellectIcons\": 1,\r\n \"uses\": - [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Ammo\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01026\",\n \"alternate_ids\": [\n \"01526\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": + \"Supply.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Core\"\n}" GUID: f60263 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.52 posY: 3.38 posZ: -56.92 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos (4) f68105.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos (4) f68105.yaml index 7ddb7858f..cee2f2b11 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos (4) f68105.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos (4) f68105.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 579707 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07227\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 5,\r\n \"level\": 4,\r\n \"traits\": \"Spell. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07227\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 5,\n \"level\": 4,\n \"traits\": \"Spell. + Cursed.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n + \ {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: f68105 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 5.33 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos 9a5782.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos 9a5782.yaml index 31828ed11..836cc11eb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos 9a5782.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eye of Chaos 9a5782.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553110 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07118\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 5,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Cursed.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07118\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 5,\n \"level\": 0,\n \"traits\": \"Spell. + Cursed.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 9a5782 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.01 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Eye of the Djinn (2) df182a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Eye of the Djinn (2) df182a.yaml index 1610b2928..cee70c1eb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Eye of the Djinn (2) df182a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Eye of the Djinn (2) df182a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590105 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Vessel of Good and Evil DragSelectable: true -GMNotes: "{\r\n \"id\": \"07225\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic. Blessed. Cursed.\",\r\n - \ \"intellectIcons\": 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07225\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Relic. Blessed. Cursed.\",\n \"intellectIcons\": 2,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: df182a Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ezra Graves efe0dd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ezra Graves efe0dd.yaml index 8eb604df4..57821cbe6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ezra Graves efe0dd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ezra Graves efe0dd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 558005 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Professor of the Arcane DragSelectable: true -GMNotes: "{\r\n \"id\": \"87023\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Scientist. Ally. Present.\",\r\n \"intellectIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"87023\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Scientist. Ally. Present.\",\n \"intellectIcons\": + 2,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: efe0dd Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.62 posY: 3.32 posZ: 8.37 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card False Awakening 3bf831.yaml b/unpacked/Bag All Player Cards 15bb07/Card False Awakening 3bf831.yaml index e2be5e816..af160444d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card False Awakening 3bf831.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card False Awakening 3bf831.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448519 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"06275\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06275\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 3bf831 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.2 posY: 3.11 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card False Covenant (2) 3442f5.yaml b/unpacked/Bag All Player Cards 15bb07/Card False Covenant (2) 3442f5.yaml index 01bb59565..e14fe36e2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card False Covenant (2) 3442f5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card False Covenant (2) 3442f5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553108 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07116\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Covenant. Cursed.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07116\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"startsInPlay\": true,\n \"level\": 2,\n \"traits\": \"Covenant. Cursed.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 3442f5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.95 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Familiar Spirit 971d52.yaml b/unpacked/Bag All Player Cards 15bb07/Card Familiar Spirit 971d52.yaml index 5971d87fd..bf3440188 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Familiar Spirit 971d52.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Familiar Spirit 971d52.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538708 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60410\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Creature. Summon.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60410\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Ally. + Creature. Summon.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 971d52 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.13 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.ttslua index 90eac9abc..74b4f587e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.ttslua @@ -41,223 +41,13 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local PlayAreaApi = { } - - local PLAY_AREA_GUID = "721ba2" - - local IMAGE_SWAPPER = "b7b45b" - - -- Returns the current value of the investigator counter from the playmat - ---@return Integer. Number of investigators currently set on the counter - PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") - end - - -- Updates the current value of the investigator counter from the playmat - ---@param count Number of investigators to set on the counter - PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) - end - - -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted - PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) - end - - PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) - end - - PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) - end - - PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) - end - - -- Reset the play area's tracking of which cards have had tokens spawned. - PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") - end - - -- Event to be called when the current scenario has changed. - ---@param scenarioName Name of the new scenario - PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) - end - - -- Sets this playmat's snap points to limit snapping to locations or not. - -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. - PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) - end - - -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged - -- cards before they're destroyed by entering the container - PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) - end - - -- counts the VP on locations in the play area - PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") - end - - -- highlights all locations in the play area without metadata - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) - end - - -- highlights all locations in the play area with VP - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) - end - - -- Checks if an object is in the play area (returns true or false) - PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) - end - - PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image - end - - PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) - end - - return PlayAreaApi -end -end) -__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local TokenSpawnTracker = { } - - local SPAWN_TRACKER_GUID = "e3ffc9" - - TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) - end - - TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") - end - - TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") - end - - TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") - end - - return TokenSpawnTracker -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/cards/FamilyInheritance") -end) -__bundle_register("playercards/cards/FamilyInheritance", function(require, _LOADED, __bundle_register, __bundle_modules) -local tokenManager = require("core/token/TokenManager") -local playmatApi = require("playermat/PlaymatApi") - -local clickableResourceCounter = nil -local foundTokens = 0 - -function onLoad() - self.addContextMenuItem("Add 4 resources", function(playerColor) add4(playerColor) end) - self.addContextMenuItem("Take all resources", function(playerColor) takeAll(playerColor) end) - self.addContextMenuItem("Discard all resources", function(playerColor) loseAll(playerColor) end) -end - -function searchSelf() - clickableResourceCounter = nil - foundTokens = 0 - - for _, obj in ipairs(searchArea(self.getPosition(), { 2.5, 0.5, 3.5 })) do - local obj = obj.hit_object - if obj.getCustomObject().image == - "http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/" then - foundTokens = foundTokens + math.abs(obj.getQuantity()) - obj.destruct() - elseif obj.getMemo() == "resourceCounter" then - foundTokens = obj.getVar("val") - clickableResourceCounter = obj - return - end - end -end - -function add4(playerColor) - searchSelf() - - local newCount = foundTokens + 4 - if clickableResourceCounter then - clickableResourceCounter.call("updateVal", newCount) - else - if newCount > 12 then - printToColor("Count increased to " .. newCount .. " resources. Spawning clickable counter instead.", playerColor) - tokenManager.spawnResourceCounterToken(self, newCount) - else - tokenManager.spawnTokenGroup(self, "resource", newCount) - end - end -end - -function takeAll(playerColor) - searchSelf() - local matColor = playmatApi.getMatColorByPosition(self.getPosition()) - playmatApi.gainResources(foundTokens, matColor) - - if clickableResourceCounter then - clickableResourceCounter.call("updateVal", 0) - end - printToColor("Moved " .. foundTokens .. " resource(s) to " .. matColor .. "'s resource pool.", playerColor) -end - -function loseAll(playerColor) - searchSelf() - - if clickableResourceCounter then - clickableResourceCounter.call("updateVal", 0) - end - printToColor("Discarded " .. foundTokens .. " resource(s).", playerColor) -end - -function searchArea(origin, size) - return Physics.cast({ - origin = origin, - direction = { 0, 1, 0 }, - orientation = PLAY_ZONE_ROTATION, - type = 3, - size = size, - max_distance = 1 - }) -end -end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -375,15 +165,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -398,7 +183,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -416,13 +201,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -456,16 +243,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -478,9 +266,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -560,7 +350,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -593,8 +383,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -606,7 +396,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -621,19 +411,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -656,22 +444,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -691,13 +478,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -733,7 +519,6 @@ do local column = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x + 1.5 - 0.55 * row, pos.y + 0.15, pos.z - 0.825 + 0.55 * column)) end - return cluePositions end @@ -747,12 +532,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -784,238 +567,639 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, + return TokenManager +end +end) +__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end + + TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) + end + + TokenSpawnTracker.markTokensSpawned = function(cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetTokensSpawned = function(cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetAllAssetAndEvents = function() + return getSpawnTracker().call("resetAllAssetAndEvents") + end + + TokenSpawnTracker.resetAllLocations = function() + return getSpawnTracker().call("resetAllLocations") + end + + TokenSpawnTracker.resetAll = function() + return getSpawnTracker().call("resetAll") + end + + return TokenSpawnTracker +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 Table Global position + ---@param rot Table 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) + if filter then filter = filterFunctions[filter] end + local searchResult = Physics.cast({ + origin = pos, + direction = direction or { 0, 1, 0 }, + orientation = rot or { 0, 0, 0 }, type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false + size = size, + max_distance = maxDistance or 0 + }) + + -- filtering the result + local objList = {} + for _, v in ipairs(searchResult) do + if not filter or filter(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("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 - return TokenManager + return GUIDReferenceApi +end +end) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/FamilyInheritance") +end) +__bundle_register("playercards/cards/FamilyInheritance", function(require, _LOADED, __bundle_register, __bundle_modules) +local playmatApi = require("playermat/PlaymatApi") +local searchLib = require("util/SearchLib") +local tokenManager = require("core/token/TokenManager") + +local clickableResourceCounter = nil +local foundTokens = 0 + +function onLoad() + self.addContextMenuItem("Add 4 resources", function(playerColor) add4(playerColor) end) + self.addContextMenuItem("Take all resources", function(playerColor) takeAll(playerColor) end) + self.addContextMenuItem("Discard all resources", function(playerColor) loseAll(playerColor) end) +end + +function searchSelf() + clickableResourceCounter = nil + foundTokens = 0 + + for _, obj in ipairs(searchLib.onObject(self, "isTileOrToken")) do + local image = obj.getCustomObject().image + if image == "http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/" then + foundTokens = foundTokens + math.abs(obj.getQuantity()) + obj.destruct() + elseif obj.getMemo() == "resourceCounter" then + foundTokens = obj.getVar("val") + clickableResourceCounter = obj + return + end + end +end + +function add4(playerColor) + searchSelf() + + local newCount = foundTokens + 4 + if clickableResourceCounter then + clickableResourceCounter.call("updateVal", newCount) + else + if newCount > 12 then + printToColor("Count increased to " .. newCount .. " resources. Spawning clickable counter instead.", playerColor) + tokenManager.spawnResourceCounterToken(self, newCount) + else + tokenManager.spawnTokenGroup(self, "resource", newCount) + end + end +end + +function takeAll(playerColor) + searchSelf() + local matColor = playmatApi.getMatColorByPosition(self.getPosition()) + playmatApi.updateCounter(matColor, "ResourceCounter", _, foundTokens) + + if clickableResourceCounter then + clickableResourceCounter.call("updateVal", 0) + end + printToColor("Moved " .. foundTokens .. " resource(s) to " .. matColor .. "'s resource pool.", playerColor) +end + +function loseAll(playerColor) + searchSelf() + + if clickableResourceCounter then + clickableResourceCounter.call("updateVal", 0) + end + printToColor("Discarded " .. foundTokens .. " resource(s).", playerColor) end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) diff --git a/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.yaml b/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.yaml index e4d029549..680789afc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Family Inheritance 394603.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431557 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05011\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Boon.\",\r\n \"permanent\": true,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05011\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Boon.\",\n \"permanent\": true,\n \"uses\": + [\n {\n \"count\": 0,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: '394603' Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.17 posY: 2.96 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fang of Tyr'thrha (4) e2dc13.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fang of Tyr'thrha (4) e2dc13.yaml index afa4b7556..361dd1c04 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fang of Tyr'thrha (4) e2dc13.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fang of Tyr'thrha (4) e2dc13.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379019 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08029\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08029\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Spell.\",\n \"combatIcons\": 2,\n + \ \"agilityIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: e2dc13 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.74 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Farsight (4) b4121c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Farsight (4) b4121c.yaml index 647452e6b..53238754e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Farsight (4) b4121c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Farsight (4) b4121c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538829 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60231\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60231\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: b4121c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.82 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Father Mateo df852c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Father Mateo df852c.yaml index 477df9c4e..6068b4cb8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Father Mateo df852c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Father Mateo df852c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 262119 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.81 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Father Mateo eb96e6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Father Mateo eb96e6.yaml index f404b728f..69cc601d2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Father Mateo eb96e6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Father Mateo eb96e6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449601 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Priest DragSelectable: true -GMNotes: "{\r\n \"id\": \"04004\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Believer. Warden.\",\r\n \"willpowerIcons\": 4,\r\n - \ \"intellectIcons\": 3,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04004\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Believer. Warden.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: eb96e6 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 1.94 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Faustian Bargain 17d34b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Faustian Bargain 17d34b.yaml index 214fb4f3b..034e95061 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Faustian Bargain 17d34b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Faustian Bargain 17d34b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586622 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07028\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Pact. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07028\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Pact. Cursed.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 17d34b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.03 posY: 3.68 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.ttslua index a6921ff04..2ad027651 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.ttslua @@ -41,6 +41,197 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/FavoroftheMoon1") +end) +__bundle_register("playercards/cards/FavoroftheMoon1", function(require, _LOADED, __bundle_register, __bundle_modules) +VALID_TOKENS = { + ["Curse"] = true +} + +SHOW_SINGLE_RELEASE = true +KEEP_OPEN = true + +require("playercards/CardsThatSealTokens") +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. @@ -66,6 +257,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -113,7 +309,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -122,7 +320,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -138,6 +336,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -173,7 +376,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -181,6 +384,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -192,8 +399,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -218,7 +425,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -241,7 +448,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -253,36 +460,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -300,61 +532,4 @@ do return TokenArrangerApi end end) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) - end - - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { 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) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/cards/FavoroftheMoon1") -end) -__bundle_register("playercards/cards/FavoroftheMoon1", function(require, _LOADED, __bundle_register, __bundle_modules) -VALID_TOKENS = { - ["Curse"] = true -} - -SHOW_SINGLE_RELEASE = true -KEEP_OPEN = true - -require("playercards/CardsThatSealTokens") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.yaml b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.yaml index b97dd08db..5c06a3f57 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Moon (1) 542a70.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449610 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07271\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Pact. Cursed.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07271\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Pact. Cursed.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 542a70 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.0 posY: 3.83 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.ttslua index dcc2d2795..cca3f2310 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.ttslua @@ -41,6 +41,187 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/FavoroftheSun1") +end) __bundle_register("playercards/cards/FavoroftheSun1", function(require, _LOADED, __bundle_register, __bundle_modules) VALID_TOKENS = { ["Bless"] = true @@ -76,6 +257,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -123,7 +309,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -132,7 +320,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -148,6 +336,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -183,7 +376,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -191,6 +384,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -202,8 +399,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -228,7 +425,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -251,7 +448,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -263,36 +460,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -310,51 +532,4 @@ do return TokenArrangerApi end end) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) - end - - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { 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) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/cards/FavoroftheSun1") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.yaml b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.yaml index 7ea6e6f8c..bb52c7813 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Favor of the Sun (1) 1e6a06.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449611 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07272\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Pact. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07272\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Pact. Blessed.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 1e6a06 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 4.07 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fearless (2) b2e27e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fearless (2) b2e27e.yaml index 30ca645ff..d11476b55 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fearless (2) b2e27e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fearless (2) b2e27e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230337 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02268\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Developed.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02268\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Developed.\",\n \"willpowerIcons\": 2,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: b2e27e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.88 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fearless cd0ac1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fearless cd0ac1.yaml index 7b268b941..11711afde 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fearless cd0ac1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fearless cd0ac1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230303 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01067\",\r\n \"alternate_ids\": [\r\n \"01567\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01067\",\n \"alternate_ids\": [\n \"01567\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Mystic\",\n \"level\": 0,\n \"traits\": \"Innate.\",\n + \ \"willpowerIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: cd0ac1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind (3) bc4788.yaml b/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind (3) bc4788.yaml index e8b254c18..59f45ef59 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind (3) bc4788.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind (3) bc4788.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 262200 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04267\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04267\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: bc4788 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind a614de.yaml b/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind a614de.yaml index e251350e7..6cd4b5762 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind a614de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Feed the Mind a614de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538807 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60209\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60209\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Investigator + Packs\"\n}" GUID: a614de Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fence (1) 2423e7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fence (1) 2423e7.yaml index f69f84538..69368f953 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fence (1) 2423e7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fence (1) 2423e7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315238 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04108\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Connection. Illicit.\",\r\n - \ \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04108\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Connection. Illicit.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 2423e7 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.02 posY: 3.94 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fend Off (3) 0c2449.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fend Off (3) 0c2449.yaml index db3c71a58..f81a49c42 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fend Off (3) 0c2449.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fend Off (3) 0c2449.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378911 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08082\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Gambit. Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08082\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Gambit. Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 0c2449 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.75 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fey (1) f10690.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fey (1) f10690.yaml index 3a54f5344..19075f28a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fey (1) f10690.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fey (1) f10690.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 579402 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07222\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Cursed.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07222\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Cursed.\",\n \"willpowerIcons\": 1,\n + \ \"wildIcons\": 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: f10690 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 3.77 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fickle Fortune (3) 1b4684.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fickle Fortune (3) 1b4684.yaml index 3d11bd2ca..7a7fe4f37 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fickle Fortune (3) 1b4684.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fickle Fortune (3) 1b4684.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379142 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09118\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Dilemma. Fortune.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09118\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 3,\n \"traits\": \"Dilemma. Fortune.\",\n \"intellectIcons\": 2,\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: 1b4684 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Field Agent (2) babfb6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Field Agent (2) babfb6.yaml index 547f3584b..79346f472 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Field Agent (2) babfb6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Field Agent (2) babfb6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379026 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09033\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Agency.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09033\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 2,\n \"traits\": \"Ally. + Agency.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Scarlet Keys\"\n}" GUID: babfb6 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 17.02 posY: 3.34 posZ: 65.98 - rotX: 358.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fieldwork d6771f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fieldwork d6771f.yaml index a07f8bf33..5a46ae6fd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fieldwork d6771f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fieldwork d6771f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368429 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03024\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03024\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: d6771f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.0 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fight or Flight 00af4f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fight or Flight 00af4f.yaml index 2d4a566a8..45b966df2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fight or Flight 00af4f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fight or Flight 00af4f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368813 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03155\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03155\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"cycle\": \"The + Path to Carcosa\"\n}" GUID: 00af4f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fighting Lessons fc2432.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fighting Lessons fc2432.yaml index bea52ef85..aaf313657 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fighting Lessons fc2432.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fighting Lessons fc2432.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379023 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09030\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09030\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: fc2432 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 17.02 posY: 3.36 posZ: 65.98 - rotX: 358.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Final Rhapsody 2c901b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Final Rhapsody 2c901b.yaml index 821591cf7..9282d044f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Final Rhapsody 2c901b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Final Rhapsody 2c901b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 372011 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02013\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Endtimes.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02013\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Endtimes.\",\n \"weakness\": true,\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 2c901b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.05 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Final Rhapsody 561775.yaml b/unpacked/Bag All Player Cards 15bb07/Card Final Rhapsody 561775.yaml new file mode 100644 index 000000000..657731a9c --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Final Rhapsody 561775.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 847001 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8470': + BackIsHidden: false + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2149964195986880793/517FBB4FF8F72900B9E123DB865BCAD625F6506C/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: false +Description: Advanced +DragSelectable: true +GMNotes: "{\n \"id\": \"90051\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Endtimes.\",\n \"weakness\": true,\n \"cycle\": \"The Dunwich + Legacy\"\n}" +GUID: '561775' +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Final Rhapsody +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 78.42 + posY: 3.19 + posZ: 23.54 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fine Clothes 5cb973.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fine Clothes 5cb973.yaml index c67837136..a375b649f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fine Clothes 5cb973.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fine Clothes 5cb973.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368511 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02272\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Clothing.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02272\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Neutral\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Clothing.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 5cb973 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.01 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fine Print 39452d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fine Print 39452d.yaml index 17ead6737..ece526fa8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fine Print 39452d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fine Print 39452d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545213 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"53014\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Pact.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53014\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Pact.\",\n \"weakness\": true,\n \"cycle\": \"Return to the Forgotten + Age\"\n}" GUID: 39452d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.01 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fine Tuning (1) 103fbd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fine Tuning (1) 103fbd.yaml new file mode 100644 index 000000000..17bf185a9 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Fine Tuning (1) 103fbd.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 2500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '25': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447674651244793/501B12FC5970ACC35866C564F2AF1635D23377CD/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10054\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Insight. Upgrade.\",\n \"agilityIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 103fbd +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Fine Tuning (1) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.17 + posY: 2.93 + posZ: -16.73 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit (4) 33b09e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit (4) 33b09e.yaml index 6a47b6bc9..03b67a7b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit (4) 33b09e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit (4) 33b09e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379050 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09057\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 5,\r\n \"level\": 4,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09057\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 5,\n \"level\": 4,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 33b09e Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 357 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit b9bb2a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit b9bb2a.yaml index 420bf026a..fa7b732be 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit b9bb2a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fingerprint Kit b9bb2a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430810 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05024\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05024\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Circle Undone\"\n}" GUID: b9bb2a Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.98 posY: 4.01 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards 82dc80.yaml b/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards 82dc80.yaml index 254679289..b8fcb975a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards 82dc80.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards 82dc80.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261918 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.87 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards dd40c0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards dd40c0.yaml index fca74d189..d6d4f07ff 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards dd40c0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Finn Edwards dd40c0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271518 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Bootlegger DragSelectable: true -GMNotes: "{\r\n \"id\": \"04003\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Criminal.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04003\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Criminal.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 4,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: dd40c0 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 50.42 posY: 2.5 posZ: 23.82 - rotX: 2.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 2 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Finn's Trusty .38 848d9c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Finn's Trusty .38 848d9c.yaml index ad1be740f..4876d4bb8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Finn's Trusty .38 848d9c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Finn's Trusty .38 848d9c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 376739 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04011\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04011\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Weapon. Firearm. + Illicit.\",\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 848d9c Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 5.55 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fire Axe 9da37c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fire Axe 9da37c.yaml index 7da311b77..ff52ef854 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fire Axe 9da37c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fire Axe 9da37c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368825 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02032\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02032\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 9da37c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.52 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (1) 8a4673.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (1) 8a4673.yaml index f0986b863..acc793daf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (1) 8a4673.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (1) 8a4673.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368838 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02114\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Tool. Melee.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02114\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Tool. Melee.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 8a4673 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.68 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (3) fb019d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (3) fb019d.yaml index 284610c3c..13a339806 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (3) fb019d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fire Extinguisher (3) fb019d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378909 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08080\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tool. Melee.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08080\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Tool. Melee.\",\n \"agilityIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: fb019d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.95 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) 3c7eb1.yaml b/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) 3c7eb1.yaml index b1715f50a..aeb1e5738 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) 3c7eb1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) 3c7eb1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587215 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01683\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Talent. Science.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01683\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Talent. Science.\",\n \"willpowerIcons\": + 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: 3c7eb1 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 78.92 posY: 3.32 posZ: 7.63 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) bc80ab.yaml b/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) bc80ab.yaml index 19722bd79..2df243f27 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) bc80ab.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card First Aid (3) bc80ab.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226353 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03230\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Talent. Science.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03230\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Talent. Science.\",\n \"willpowerIcons\": + 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: bc80ab Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.16 posY: 4.19 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card First Aid 56b8ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card First Aid 56b8ad.yaml index 92bee2c0f..a9b74263a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card First Aid 56b8ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card First Aid 56b8ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587200 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01519\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent. Science.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01519\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent. Science.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: 56b8ad Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 78.81 posY: 3.32 posZ: 7.67 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card First Aid 5cd622.yaml b/unpacked/Bag All Player Cards 15bb07/Card First Aid 5cd622.yaml index e9fa6ba9a..5d3362af7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card First Aid 5cd622.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card First Aid 5cd622.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226324 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01019\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent. Science.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01019\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent. Science.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: 5cd622 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 3.83 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card First Watch 0bb3da.yaml b/unpacked/Bag All Player Cards 15bb07/Card First Watch 0bb3da.yaml index f41a0f288..f6c6cecec 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card First Watch 0bb3da.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card First Watch 0bb3da.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379828 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06110\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06110\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 0bb3da Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.76 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fishing Net c7b748.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fishing Net c7b748.yaml index fad3956f1..5cfed161a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fishing Net c7b748.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fishing Net c7b748.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 7502 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Trap. DragSelectable: true -GMNotes: "{\r\n \"id\": \"81021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Trap.\",\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"81021\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Trap.\",\n \"cycle\": \"Standalone\"\n}" GUID: c7b748 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.35 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Five of Pentacles (1) 46187b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Five of Pentacles (1) 46187b.yaml index 93b477b15..786232386 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Five of Pentacles (1) 46187b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Five of Pentacles (1) 46187b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274609 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: From the Brink DragSelectable: true -GMNotes: "{\r\n \"id\": \"05039\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05039\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: 46187b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 62ceb5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 62ceb5.yaml new file mode 100644 index 000000000..91904eebe --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 62ceb5.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 302 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"04305-t\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Item. Weapon. Firearm.\",\n \"combatIcons\": + 2,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Forgotten + Age\"\n}" +GUID: 62ceb5 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Flamethrower (5) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -54.08 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 8f170b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 8f170b.yaml deleted file mode 100644 index 25243f42b..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) (Taboo) 8f170b.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450608 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"04305-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 4,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" -GUID: 8f170b -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Flamethrower (5) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.17 - posY: 3.18 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) cf4f15.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) cf4f15.yaml index 0a674ff03..abf830cd6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) cf4f15.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Flamethrower (5) cf4f15.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314002 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04305\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 4,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04305\",\n \"type\": \"Asset\",\n \"slot\": \"Body|Hand + x2\",\n \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": + \"Item. Weapon. Firearm.\",\n \"combatIcons\": 2,\n \"wildIcons\": 1,\n \"uses\": + [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: cf4f15 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flare (1) 017821.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flare (1) 017821.yaml index 9697af8db..24ca70b5b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Flare (1) 017821.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Flare (1) 017821.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368839 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02115\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Tactic.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02115\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Tactic.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 017821 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.03 posY: 3.68 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flashlight (3) 2b3301.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flashlight (3) 2b3301.yaml index 40bfd1bfa..8c0d579fe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Flashlight (3) 2b3301.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Flashlight (3) 2b3301.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379146 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09122\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09122\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 4,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 2b3301 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flashlight bb1cce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flashlight bb1cce.yaml index 0129a92ab..d46ff226e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Flashlight bb1cce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Flashlight bb1cce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368515 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01087\",\r\n \"alternate_ids\": [\r\n \"01587\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": 1,\r\n - \ \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01087\",\n \"alternate_ids\": [\n \"01587\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": + 0,\n \"traits\": \"Item. Tool.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Core\"\n}" GUID: bb1cce Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flesh Ward 52c686.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flesh Ward 52c686.yaml index 35c631991..43e423eaa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Flesh Ward 52c686.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Flesh Ward 52c686.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545304 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60106\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60106\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 52c686 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.16 posY: 4.18 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 453fd1.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 453fd1.ttslua new file mode 100644 index 000000000..9d4e129af --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 453fd1.ttslua @@ -0,0 +1,535 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("playercards/cards/FluteoftheOuterGods4", function(require, _LOADED, __bundle_register, __bundle_modules) +VALID_TOKENS = { + ["Curse"] = true +} + +SHOW_SINGLE_RELEASE = true +KEEP_OPEN = true + +require("playercards/CardsThatSealTokens") +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. +Valid options (set before requiring this file): + +UPDATE_ON_HOVER --@type: boolean + - automatically updates the context menu options when the card is hovered + - the "Read Bag" function reads the content of the chaos bag to update the context menu + - example usage: "Unrelenting" (to only display valid tokens) + +KEEP_OPEN --@type: boolean +- meant for cards that seal single tokens multiple times (one by one) +- makes the context menu stay open after selecting an option +- example usage: "Unrelenting" + +SHOW_SINGLE_RELEASE --@type: boolean + - enables an entry in the context menu + - this entry allows releasing a single token + - example usage: "Holy Spear" (to keep the other tokens and just release one) + +SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) + - enables an entry in the context menu + - this entry allows releasing of multiple tokens at once + - example usage: "Nephthys" (to release 3 bless tokens at once) + +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + +SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) + - enables an entry in the context menu + - this entry allows sealing of multiple tokens at once + - example usage: "Holy Spear" (to seal two bless tokens at once) + +VALID_TOKENS --@type: table ([tokenName] = true) + - this table defines which tokens should be abled to be sealed + - needs to be defined for each card -> even if empty + - example usage: "The Chthonian Stone" + > VALID_TOKENS = { + > ["Skull"] = true, + > ["Cultist"] = true, + > ["Tablet"] = true, + > ["Elder Thing"] = true, + > } + +INVALID_TOKENS --@type: table ([tokenName] = true) + - this table defines which tokens are invalid for sealing + - only needs to be defined if needed + - usually combined with empty "VALID_TOKENS" table + - example usage: "Protective Incantation" (not allowed to seal Auto-fail) + +---------------------------------------------------------- +Example 1: Crystalline Elder Sign +This card can only seal the "+1" or "Elder Sign" token, +it does not need specific options for multi-sealing or releasing. +Thus it should be implemented like this: + > VALID_TOKENS = { + > ["+1"] = true, + > ["Elder Sign"] = true + > } + > require... +---------------------------------------------------------- +Example 2: Holy Spear +This card features the following abilities (just listing the relevant parts): +- releasing a single bless token +- sealing two bless tokens +Thus it should be implemented like this: + > VALID_TOKENS = { + > ["Bless"] = true + > } + > SHOW_SINGLE_RELEASE = true + > SHOW_MULTI_SEAL = 2 + > require... +----------------------------------------------------------]] + +local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") +local tokenArrangerApi = require("accessories/TokenArrangerApi") + +local sealedTokens = {} +local ID_URL_MAP = {} +local tokensInBag = {} + +function onSave() return JSON.encode(sealedTokens) end + +function onLoad(savedData) + sealedTokens = JSON.decode(savedData) or {} + ID_URL_MAP = chaosBagApi.getIdUrlMap() + generateContextMenu() + self.addTag("CardThatSeals") +end + +-- builds the context menu +function generateContextMenu() + -- conditional single or multi release options + if SHOW_SINGLE_RELEASE then + self.addContextMenuItem("Release token", releaseOneToken) + elseif SHOW_MULTI_RELEASE then + self.addContextMenuItem("Release " .. SHOW_MULTI_RELEASE .. " token(s)", releaseMultipleTokens) + else + self.addContextMenuItem("Release token(s)", releaseAllTokens) + end + + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + + -- main context menu options to seal tokens + for _, map in pairs(ID_URL_MAP) do + if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then + if not SHOW_MULTI_SEAL then + self.addContextMenuItem("Seal " .. map.name, function(playerColor) + sealToken(map.name, playerColor) + end, KEEP_OPEN) + else + self.addContextMenuItem("Seal " .. SHOW_MULTI_SEAL .. " " .. map.name, function(playerColor) + readBag() + local allowed = true + local notFound + + for name, _ in pairs(VALID_TOKENS) do + if (tokensInBag[name] or 0) < SHOW_MULTI_SEAL then + allowed = false + notFound = name + end + end + + if allowed then + for i = 1, SHOW_MULTI_SEAL do + sealToken(map.name, playerColor) + end + else + printToColor("Not enough " .. notFound .. " tokens in the chaos bag.", playerColor) + end + end) + end + end + end +end + +-- generates a list of chaos tokens that is in the chaos bag +function readBag() + local chaosbag = chaosBagApi.findChaosBag() + tokensInBag = {} + + for _, token in ipairs(chaosbag.getObjects()) do + tokensInBag[token.name] = (tokensInBag[token.name] or 0) + 1 + end +end + +function resetSealedTokens() + sealedTokens = {} +end + +-- native event from TTS - used to update the context menu for cards like "Unrelenting" +function onHover() + if UPDATE_ON_HOVER then + readBag() + self.clearContextMenu() + generateContextMenu() + end +end + +-- seals the named token on this card +function sealToken(name, playerColor) + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() + for i, obj in ipairs(chaosbag.getObjects()) do + if obj.name == name then + chaosbag.takeObject({ + position = self.getPosition() + Vector(0, 0.5 + 0.1 * #sealedTokens, 0), + rotation = self.getRotation(), + index = i - 1, + smooth = false, + callback_function = function(token) + local guid = token.getGUID() + table.insert(sealedTokens, guid) + tokenArrangerApi.layout() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.sealedToken(name, guid) + end + end + }) + return + end + end + printToColor(name .. " token not found in chaos bag", playerColor) +end + +-- release the last sealed token +function releaseOneToken(playerColor) + if not chaosBagApi.canTouchChaosTokens() then return end + if #sealedTokens == 0 then + printToColor("No sealed token(s) found", playerColor) + else + printToColor("Releasing token", playerColor) + putTokenAway(table.remove(sealedTokens)) + end +end + +-- release multiple tokens at once +function releaseMultipleTokens(playerColor) + if SHOW_MULTI_RELEASE <= #sealedTokens then + for i = 1, SHOW_MULTI_RELEASE do + putTokenAway(table.remove(sealedTokens)) + end + printToColor("Releasing " .. SHOW_MULTI_RELEASE .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + +-- releases all sealed tokens +function releaseAllTokens(playerColor) + if not chaosBagApi.canTouchChaosTokens() then return end + if #sealedTokens == 0 then + printToColor("No sealed token(s) found", playerColor) + else + printToColor("Releasing token(s)", playerColor) + for _, guid in ipairs(sealedTokens) do + putTokenAway(guid) + end + sealedTokens = {} + end +end + +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + +-- returns the token (referenced by GUID) to the chaos bag +function putTokenAway(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + local chaosbag = chaosBagApi.findChaosBag() + chaosbag.putObject(token) + tokenArrangerApi.layout() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.releasedToken(name, guid) + end +end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end +end) +__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + -- local function to call the token arranger, if it is on the table + ---@param functionName String Name of the function to cal + ---@param argument Variant 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/FluteoftheOuterGods4") +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 453fd1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 453fd1.yaml new file mode 100644 index 000000000..bebb941f7 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 453fd1.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 340 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"07268-t\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"level\": 4,\n \"traits\": \"Item. Instrument. Relic. Cursed.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" +GUID: 453fd1 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Card Flute of the Outer Gods (4) (Taboo) 453fd1.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Flute of the Outer Gods (4) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -49.57 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 669c4e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 669c4e.yaml deleted file mode 100644 index 8ec828694..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) (Taboo) 669c4e.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558213 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"07268-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 4,\r\n \"traits\": \"Item. Instrument. Relic. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" -GUID: 669c4e -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Flute of the Outer Gods (4) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.84 - posY: 4.46 - posZ: -48.41 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.ttslua index 97799655f..1bbec6962 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.ttslua @@ -41,63 +41,6 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) - end - - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { 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) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/cards/FluteoftheOuterGods4") -end) -__bundle_register("playercards/cards/FluteoftheOuterGods4", function(require, _LOADED, __bundle_register, __bundle_modules) -VALID_TOKENS = { - ["Curse"] = true -} - -SHOW_SINGLE_RELEASE = true -KEEP_OPEN = true - -require("playercards/CardsThatSealTokens") -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. @@ -123,6 +66,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -170,7 +118,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -179,7 +129,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -195,6 +145,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -230,7 +185,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -238,6 +193,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -249,8 +208,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -275,7 +234,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -298,7 +257,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -310,36 +269,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -357,4 +341,195 @@ do 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/FluteoftheOuterGods4") +end) +__bundle_register("playercards/cards/FluteoftheOuterGods4", function(require, _LOADED, __bundle_register, __bundle_modules) +VALID_TOKENS = { + ["Curse"] = true +} + +SHOW_SINGLE_RELEASE = true +KEEP_OPEN = true + +require("playercards/CardsThatSealTokens") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.yaml index 56e870aab..dcee023e2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Flute of the Outer Gods (4) 3cc1e2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449607 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07268\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 4,\r\n \"traits\": \"Item. Instrument. Relic. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07268\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"level\": 4,\n \"traits\": \"Item. Instrument. Relic. + Cursed.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 3cc1e2 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 3.99 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Followed 0cc3e7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Followed 0cc3e7.yaml index 2fa425a88..222b6ffe8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Followed 0cc3e7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Followed 0cc3e7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380025 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06114\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06114\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 0cc3e7 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fool me once... (1) b6506d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fool me once... (1) b6506d.yaml index d4c1cd7c6..ab5167cc0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fool me once... (1) b6506d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fool me once... (1) b6506d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379830 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06156\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06156\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Insight. Tactic.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: b6506d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 4.18 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Foolishness fa777f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Foolishness fa777f.yaml index f710c6afb..685605b80 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Foolishness fa777f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Foolishness fa777f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230502 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98011\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Ally. Creature. Dreamlands.\",\r\n \"wildIcons\": - 2,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98011\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 4,\n \"traits\": \"Ally. Creature. Dreamlands.\",\n + \ \"wildIcons\": 2,\n \"cycle\": \"Promo\"\n}" GUID: fa777f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.78 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Knowledge 80acd2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Knowledge 80acd2.yaml index 20bd3cf3e..02554d3b3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Knowledge 80acd2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Knowledge 80acd2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230316 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01058\",\r\n \"alternate_ids\": [\r\n \"01558\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 0,\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": 1,\r\n \"uses\": - [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Secret\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01058\",\n \"alternate_ids\": [\n \"01558\"\n ],\n \"type\": + \"Asset\",\n \"class\": \"Mystic\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": + \"Talent.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Core\"\n}" GUID: 80acd2 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) 2f4507.yaml b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) 2f4507.yaml index e0c324e0a..16804895b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) 2f4507.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) 2f4507.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538827 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Dark Knowledge DragSelectable: true -GMNotes: "{\r\n \"id\": \"60229\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60229\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Tome.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 2f4507 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.09 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) f375bf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) f375bf.yaml index de6375f5c..ea02f96fa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) f375bf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome (3) f375bf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538828 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Secrets Revealed DragSelectable: true -GMNotes: "{\r\n \"id\": \"60230\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60230\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Tome.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: f375bf Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 5.46 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome 0a4d22.yaml b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome 0a4d22.yaml index 96d44d107..bf2a01247 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome 0a4d22.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Forbidden Tome 0a4d22.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538808 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Untranslated DragSelectable: true -GMNotes: "{\r\n \"id\": \"60210\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"wildIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60210\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Relic. Tome.\",\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 5,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 0a4d22 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.14 posY: 3.76 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Forced Learning fa06f9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Forced Learning fa06f9.yaml index aebbbe0d1..290bebf97 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Forced Learning fa06f9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Forced Learning fa06f9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379021 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08031\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent. Ritual.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08031\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Talent. Ritual.\",\n \"permanent\": true,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: fa06f9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.15 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Foresight (1) c09a15.yaml b/unpacked/Bag All Player Cards 15bb07/Card Foresight (1) c09a15.yaml index 3d978cc60..582176002 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Foresight (1) c09a15.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Foresight (1) c09a15.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379054 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08064\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Augury.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08064\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Augury.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: c09a15 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.31 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Forewarned (1) c17f2c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Forewarned (1) c17f2c.yaml index 2bd85c625..5ef5d6f7d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Forewarned (1) c17f2c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Forewarned (1) c17f2c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430636 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03150\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03150\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: c17f2c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 3.52 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fortuitous Discovery dacbf0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fortuitous Discovery dacbf0.yaml index 98edc0785..93ccb01f5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fortuitous Discovery dacbf0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fortuitous Discovery dacbf0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440627 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06034\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune. Insight.\",\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06034\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Fortune. Insight.\",\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: dacbf0 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 9.15 posY: 3.97 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Fortune or Fate (2) e674e8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Fortune or Fate (2) e674e8.yaml index ea365e4ed..85681cccf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Fortune or Fate (2) e674e8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Fortune or Fate (2) e674e8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293015 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05237\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Fortune. Blessed.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05237\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Fortune. Blessed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: e674e8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.76 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Foundation Intel a72f6f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Foundation Intel a72f6f.yaml index 1589f177c..f8a33e572 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Foundation Intel a72f6f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Foundation Intel a72f6f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588604 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09766\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Item. Evidence.\",\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09766\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Item. Evidence.\",\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: a72f6f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 79.04 posY: 3.31 posZ: 27.62 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Four of Cups (1) dd4e2a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Four of Cups (1) dd4e2a.yaml index 073055a70..65243bc25 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Four of Cups (1) dd4e2a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Four of Cups (1) dd4e2a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430905 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Chalice of the Heart DragSelectable: true -GMNotes: "{\r\n \"id\": \"05035\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05035\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: dd4e2a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 3.44 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Friends in Low Places c332af.yaml b/unpacked/Bag All Player Cards 15bb07/Card Friends in Low Places c332af.yaml index 81db35442..c48357420 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Friends in Low Places c332af.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Friends in Low Places c332af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379053 ColorDiffuse: @@ -19,26 +19,25 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09060\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Favor.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"customizations\": [\r\n {\r\n \"name\": - \"Helpful\",\r\n \"xp\": 1,\r\n \"text\": \"When you play Friends in Low - Places, you may choose another investigator at your location to resolve its effects.\"\r\n - \ },\r\n {\r\n \"name\": \"Versatile\",\r\n \"xp\": 2,\r\n \"text\": - \"Choose another Trait. When you play Friends in Low Places, you may choose one - of the looked-at cards with both chosen Traits to add to your hand without spending - 1 resource.\"\r\n },\r\n {\r\n \"name\": \"Bolstering\",\r\n \"xp\": - 2,\r\n \"text\": \"Each card added to your hand by Friends in Low Places gains - a ? icon until the end of the phase.\"\r\n },\r\n {\r\n \"name\": \"Clever\",\r\n - \ \"xp\": 2,\r\n \"text\": \"Instead of shuffling the remaining cards into - your deck, you may place each of them on the top of your deck, in any order.\"\r\n - \ },\r\n {\r\n \"name\": \"Prompt\",\r\n \"xp\": 2,\r\n \"text\": - \"Friends in Low Places gains fast and \u201Cplay during any \U0001F5F2 window.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Experienced\",\r\n \"xp\": 3,\r\n \"text\": - \"Increase the number of cards looked at by 3.\"\r\n },\r\n {\r\n \"name\": - \"Swift\",\r\n \"xp\": 3,\r\n \"text\": \"You may play one of the cards - added to your hand (paying its cost).\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09060\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Favor.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"customizations\": [\n {\n \"name\": \"Helpful\",\n + \ \"xp\": 1,\n \"text\": \"When you play Friends in Low Places, you may + choose another investigator at your location to resolve its effects.\"\n },\n + \ {\n \"name\": \"Versatile\",\n \"xp\": 2,\n \"text\": \"Choose + another Trait. When you play Friends in Low Places, you may choose one of the looked-at + cards with both chosen Traits to add to your hand without spending 1 resource.\"\n + \ },\n {\n \"name\": \"Bolstering\",\n \"xp\": 2,\n \"text\": + \"Each card added to your hand by Friends in Low Places gains a ? icon until the + end of the phase.\"\n },\n {\n \"name\": \"Clever\",\n \"xp\": 2,\n + \ \"text\": \"Instead of shuffling the remaining cards into your deck, you may + place each of them on the top of your deck, in any order.\"\n },\n {\n \"name\": + \"Prompt\",\n \"xp\": 2,\n \"text\": \"Friends in Low Places gains fast + and \u201Cplay during any \U0001F5F2 window.\u201D\"\n },\n {\n \"name\": + \"Experienced\",\n \"xp\": 3,\n \"text\": \"Increase the number of cards + looked at by 3.\"\n },\n {\n \"name\": \"Swift\",\n \"xp\": 3,\n + \ \"text\": \"You may play one of the cards added to your hand (paying its cost).\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: c332af Grid: true GridProjection: false @@ -62,11 +61,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Frostbitten 8abd77.yaml b/unpacked/Bag All Player Cards 15bb07/Card Frostbitten 8abd77.yaml index 34a520f82..0b86a2c64 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Frostbitten 8abd77.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Frostbitten 8abd77.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450318 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness. DragSelectable: true -GMNotes: "{\r\n \"id\": \"08646\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Injury.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08646\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Injury.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 8abd77 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 79.12 posY: 3.33 posZ: 7.26 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Galvanize (1) 9e7f6a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Galvanize (1) 9e7f6a.yaml index ac9920ce1..f5147b1f5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Galvanize (1) 9e7f6a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Galvanize (1) 9e7f6a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545319 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60121\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60121\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 9e7f6a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 4.07 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gang Up (1) 09cc35.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gang Up (1) 09cc35.yaml index 382459883..140a3d83a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gang Up (1) 09cc35.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gang Up (1) 09cc35.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379012 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08022\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Spirit. Synergy.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08022\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Spirit. Synergy.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 09cc35 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.35 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Garrote Wire (2) b45c82.yaml b/unpacked/Bag All Player Cards 15bb07/Card Garrote Wire (2) b45c82.yaml index d95e3c8b8..f01cf383a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Garrote Wire (2) b45c82.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Garrote Wire (2) b45c82.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449034 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06280\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06280\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Weapon.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: b45c82 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gate Box b8c891.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gate Box b8c891.yaml index 37890e406..f0a71181e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gate Box b8c891.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gate Box b8c891.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582507 ColorDiffuse: @@ -19,12 +19,11 @@ CustomDeck: UniqueBack: false Description: Worlds within Worlds DragSelectable: true -GMNotes: "{\r\n \"id\": \"06013\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"startsInPlay\": true,\r\n \"cost\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06015a\"\r\n - \ }\r\n ],\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06013\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"cost\": 3,\n \"traits\": \"Item. Relic.\",\n \"bonded\": + [\n {\n \"count\": 1,\n \"id\": \"06015a\"\n }\n ],\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: b8c891 Grid: true GridProjection: false @@ -49,11 +48,11 @@ Transform: posX: 9.08 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gavriella Mizrah 2237f4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gavriella Mizrah 2237f4.yaml index 4f0c41e10..5ba26f74d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gavriella Mizrah 2237f4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gavriella Mizrah 2237f4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 312511 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Not Going Down That Easily DragSelectable: true -GMNotes: "{\r\n \"id\": \"05258\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Veteran.\",\r\n \"combatIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05258\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Veteran.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 2237f4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.77 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gaze of Ouraxsh (2) b7c316.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gaze of Ouraxsh (2) b7c316.yaml index 6e8bf8c7c..4b298bf98 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gaze of Ouraxsh (2) b7c316.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gaze of Ouraxsh (2) b7c316.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232103 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07155\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Cursed.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07155\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell. Cursed.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: b7c316 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Geared Up (Taboo) 83af5e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Geared Up (Taboo) 83af5e.yaml new file mode 100644 index 000000000..016dee0f7 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Geared Up (Taboo) 83af5e.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"08019-t\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"Edge of the Earth\"\n}" +GUID: 83af5e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Geared Up (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -42.8 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Geared Up 028cf7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Geared Up 028cf7.yaml index 1c8935151..4de46fa13 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Geared Up 028cf7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Geared Up 028cf7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379009 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08019\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08019\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 028cf7 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.99 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Geas (2) b7223c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Geas (2) b7223c.yaml index a2dfb52a3..b4b28b9dd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Geas (2) b7223c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Geas (2) b7223c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449604 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07265\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Pact.\",\r\n \"cycle\": \"The - Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07265\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Pact.\",\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: b7223c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.09 posY: 3.71 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) (Taboo) ab32db.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) (Taboo) ab32db.yaml deleted file mode 100644 index 9730a3270..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) (Taboo) ab32db.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558204 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: Intrepid Explorer -DragSelectable: true -GMNotes: "{\r\n \"id\": \"08099-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue\",\r\n - \ \"cost\": 5,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" -GUID: ab32db -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: "Gen\xE9 Beauregard (3) (Taboo)" -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.85 - posY: 4.65 - posZ: -52.36 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) (Taboo) d300bf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) (Taboo) d300bf.yaml new file mode 100644 index 000000000..3dbba17b6 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) (Taboo) d300bf.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 357 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: Intrepid Explorer +DragSelectable: true +GMNotes: "{\n \"id\": \"08099-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker|Rogue\",\n + \ \"cost\": 5,\n \"level\": 3,\n \"traits\": \"Ally. Wayfarer.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" +GUID: d300bf +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: "Gen\xE9 Beauregard (3) (Taboo)" +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -17.97 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) 255aa3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) 255aa3.yaml index b5c64ac21..c597aac06 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) 255aa3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gené Beauregard (3) 255aa3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378937 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Intrepid Explorer DragSelectable: true -GMNotes: "{\r\n \"id\": \"08099\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue\",\r\n - \ \"cost\": 5,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08099\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker|Rogue\",\n \"cost\": 5,\n \"level\": 3,\n \"traits\": \"Ally. + Wayfarer.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge + of the Earth\"\n}" GUID: 255aa3 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.18 posY: 2.7 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Get behind me! 76270e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Get behind me! 76270e.yaml index c9744cd0c..76d864e1e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Get behind me! 76270e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Get behind me! 76270e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379011 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08021\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08021\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit. Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 76270e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.35 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Get over here! (2) 415ca2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Get over here! (2) 415ca2.yaml index 70b35ae25..10f3af895 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Get over here! (2) 415ca2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Get over here! (2) 415ca2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545321 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60123\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"willpowerIcons\": - 2,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60123\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spirit. Tactic.\",\n \"willpowerIcons\": + 2,\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 415ca2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.89 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Get over here! 5b0f86.yaml b/unpacked/Bag All Player Cards 15bb07/Card Get over here! 5b0f86.yaml index 4ce9bf994..d1a66b6f9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Get over here! 5b0f86.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Get over here! 5b0f86.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545312 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60114\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60114\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spirit. Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 5b0f86 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.13 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ghastly Possession (1) 63282f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ghastly Possession (1) 63282f.yaml index a27724ea1..9817ad73c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ghastly Possession (1) 63282f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ghastly Possession (1) 63282f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379114 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09090\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Spell.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09090\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Spell.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 63282f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.7 posY: 3.35 posZ: 65.71 - rotX: 358.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ghastly Revelation b7c503.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ghastly Revelation b7c503.yaml index 46398ea25..c8ccbc7e1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ghastly Revelation b7c503.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ghastly Revelation b7c503.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 592318 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05275\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05275\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: b7c503 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.19 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gilded Volto d0e108.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gilded Volto d0e108.yaml index c86845565..82734d605 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gilded Volto d0e108.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gilded Volto d0e108.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 295604 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"82026\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Mask.\",\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"82026\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Mask.\",\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Standalone\"\n}" GUID: d0e108 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.66 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Girish Kadakia (4) bdd70d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Girish Kadakia (4) bdd70d.yaml index c4e8cfd3d..a7e7ae0cc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Girish Kadakia (4) bdd70d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Girish Kadakia (4) bdd70d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379031 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: ICPC Punjab Detective DragSelectable: true -GMNotes: "{\r\n \"id\": \"09038\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Ally. Police.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09038\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Ally. + Police.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: bdd70d Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 357.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 357 + rotY: 270 + rotZ: 357 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (1) 6e4d54.yaml b/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (1) 6e4d54.yaml index c95ac41b7..e2d1fb50d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (1) 6e4d54.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (1) 6e4d54.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538819 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60221\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60221\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 6e4d54 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.89 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (5) 090fcf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (5) 090fcf.yaml index d56e47e4c..7cf0e07ce 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (5) 090fcf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Glimpse the Unthinkable (5) 090fcf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 591922 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05318\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 5,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 3,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05318\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 5,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 3,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 090fcf Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.82 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gloria Goldberg 571596.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gloria Goldberg 571596.yaml index 4b8348525..ce1c759b6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gloria Goldberg 571596.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gloria Goldberg 571596.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270200 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Writer DragSelectable: true -GMNotes: "{\r\n \"id\": \"98019\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Clairvoyant.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98019\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Clairvoyant.\",\n \"willpowerIcons\": 5,\n \"intellectIcons\": + 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 1,\n \"cycle\": \"Promo\"\n}" GUID: '571596' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 2.13 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Glory 273584.yaml b/unpacked/Bag All Player Cards 15bb07/Card Glory 273584.yaml index c07ca9fb3..41696358e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Glory 273584.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Glory 273584.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545313 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60115\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60115\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: '273584' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.81 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Granny Orne (3) 52a66f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Granny Orne (3) 52a66f.yaml index 159bc2c1d..d6a667fdf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Granny Orne (3) 52a66f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Granny Orne (3) 52a66f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550825 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Tough Old Bird DragSelectable: true -GMNotes: "{\r\n \"id\": \"60527\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Ally.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60527\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Ally.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 52a66f Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.14 posY: 3.72 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Granny Orne 1cccfe.yaml b/unpacked/Bag All Player Cards 15bb07/Card Granny Orne 1cccfe.yaml index 1350e9b52..b96c8b914 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Granny Orne 1cccfe.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Granny Orne 1cccfe.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550806 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Tough Old Bird DragSelectable: true -GMNotes: "{\r\n \"id\": \"60508\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60508\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally.\",\n + \ \"willpowerIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 1cccfe Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.08 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grappling Hook 09f1a2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grappling Hook 09f1a2.yaml index 5d4e938e4..68f9dc7e0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grappling Hook 09f1a2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grappling Hook 09f1a2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379005 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09009\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": 1,\r\n - \ \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09009\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Item. Tool.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 09f1a2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 17.98 posY: 2.21 posZ: 59.36 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel (2) 96a440.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel (2) 96a440.yaml index bc9b268c0..9a451e5e6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel (2) 96a440.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel (2) 96a440.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440622 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52010\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Item. Tool. Weapon. Melee.\",\r\n - \ \"combatIcons\": 2,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52010\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Item. + Tool. Weapon. Melee.\",\n \"combatIcons\": 2,\n \"cycle\": \"Return to the Path + to Carcosa\"\n}" GUID: 96a440 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.01 posY: 3.99 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel 3fe6de.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel 3fe6de.yaml index 4ca1a432c..8d3935522 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel 3fe6de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gravedigger's Shovel 3fe6de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368829 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03037\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03037\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 3fe6de Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.66 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Graveyard Ghouls 80b7c6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Graveyard Ghouls 80b7c6.yaml index 21d619d56..0ff541ed8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Graveyard Ghouls 80b7c6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Graveyard Ghouls 80b7c6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 373819 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03017\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Monster. Ghoul.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03017\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Monster. Ghoul.\",\n \"weakness\": true,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 80b7c6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.92 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gray's Anatomy (5) f4e7f3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gray's Anatomy (5) f4e7f3.yaml index e8ea4e136..7c19ad6c5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gray's Anatomy (5) f4e7f3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gray's Anatomy (5) f4e7f3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379051 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: The Doctors' Bible DragSelectable: true -GMNotes: "{\r\n \"id\": \"09058\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09058\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Item. + Tome.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: f4e7f3 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Greed 0ca36f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Greed 0ca36f.yaml index d9bb457a9..3d46173c4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Greed 0ca36f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Greed 0ca36f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379000 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08018\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08018\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 0ca36f Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.2 posY: 2.43 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Green Man Medallion c729ab.yaml b/unpacked/Bag All Player Cards 15bb07/Card Green Man Medallion c729ab.yaml index b3f9b3639..0766a6346 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Green Man Medallion c729ab.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Green Man Medallion c729ab.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371565 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Hour of the Huntress DragSelectable: true -GMNotes: "{\r\n \"id\": \"98002\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98002\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 1,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": + 2,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Offering\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Promo\"\n}" GUID: c729ab Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Green Soapstone d36d80.yaml b/unpacked/Bag All Player Cards 15bb07/Card Green Soapstone d36d80.yaml index f5358aa6e..21badb325 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Green Soapstone d36d80.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Green Soapstone d36d80.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450306 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: Jinxed Idol DragSelectable: true -GMNotes: "{\r\n \"id\": \"08614\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Expedition.\",\r\n \"combatIcons\": 2,\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08614\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Expedition.\",\n \"combatIcons\": 2,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Charge\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: d36d80 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 79.37 posY: 3.33 posZ: 7.63 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gregory Gry 90bf93.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gregory Gry 90bf93.yaml index 7171f5755..d5e2eb98e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gregory Gry 90bf93.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gregory Gry 90bf93.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380029 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Muckraker DragSelectable: true -GMNotes: "{\r\n \"id\": \"06162\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Criminal. Dreamer.\",\r\n - \ \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 9,\r\n \"type\": - \"Resource\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06162\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Criminal. Dreamer.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 9,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: 90bf93 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.02 posY: 4.03 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner (3) b39b78.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner (3) b39b78.yaml index 5b169211c..9274fdd72 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner (3) b39b78.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner (3) b39b78.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545326 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: The Purifier DragSelectable: true -GMNotes: "{\r\n \"id\": \"60128\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 5,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Hunter.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60128\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 5,\n \"level\": 3,\n \"traits\": \"Ally. + Hunter.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: b39b78 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner f6dfe5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner f6dfe5.yaml index a798aaa1d..bee881bb3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner f6dfe5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grete Wagner f6dfe5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545305 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: The Purifier DragSelectable: true -GMNotes: "{\r\n \"id\": \"60107\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 5,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Hunter.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60107\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 5,\n \"level\": 0,\n \"traits\": \"Ally. + Hunter.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: f6dfe5 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grievous Wound d7c63c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grievous Wound d7c63c.yaml index 7f79ce9b8..86def5a29 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grievous Wound d7c63c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grievous Wound d7c63c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379020 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09027\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09027\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"combatIcons\": + 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: d7c63c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 13.02 posY: 2.21 posZ: 51.63 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grim Memoir d1f1d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grim Memoir d1f1d9.yaml index bae33d3a3..bb8b5fa6a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grim Memoir d1f1d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grim Memoir d1f1d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379037 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09044\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09044\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: d1f1d9 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 16.67 posY: 3.4 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grimm's Fairy Tales 1d75d0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grimm's Fairy Tales 1d75d0.yaml index 514afc56f..b0e747082 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grimm's Fairy Tales 1d75d0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grimm's Fairy Tales 1d75d0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550804 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60506\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60506\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tome.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 1d75d0 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.02 posY: 4.05 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 1433eb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 1433eb.yaml index 78c05838b..335c72bde 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 1433eb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 1433eb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293217 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Seeker DragSelectable: true -GMNotes: "{\r\n \"id\": \"05194\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Charm. Cursed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05194\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Charm. Cursed.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 1433eb Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.02 posY: 3.99 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 5fae20.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 5fae20.yaml index dc6f0105d..931123ba9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 5fae20.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem (3) 5fae20.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293016 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Survivor DragSelectable: true -GMNotes: "{\r\n \"id\": \"05195\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Charm. Blessed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05195\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Charm. Blessed.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 5fae20 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.17 posY: 2.92 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem a20887.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem a20887.yaml index c6880b030..d674dbf9c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem a20887.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grisly Totem a20887.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277606 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05119\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor|Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05119\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor|Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": + \"Item. Charm.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: a20887 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grit Your Teeth a92a90.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grit Your Teeth a92a90.yaml index 579671f97..2838da68b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grit Your Teeth a92a90.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grit Your Teeth a92a90.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550813 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60515\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60515\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: a92a90 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.33 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grizzled 9417a7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grizzled 9417a7.yaml index c634f0dd4..254a7be4d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grizzled 9417a7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grizzled 9417a7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379125 ColorDiffuse: @@ -19,21 +19,21 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09101\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate. Developed.\",\r\n \"wildIcons\": 1,\r\n - \ \"customizations\": [\r\n {\r\n \"name\": \"Specialist\",\r\n \"xp\": - 1,\r\n \"text\": \"Choose another trait.\"\r\n },\r\n {\r\n \"name\": - \"Specialist\",\r\n \"xp\": 2,\r\n \"text\": \"Choose another trait.\"\r\n - \ },\r\n {\r\n \"name\": \"Nemesis\",\r\n \"xp\": 3,\r\n \"text\": - \"If this is a skill test on or against an enemy with a chosen trait and the test - is successful, you may attach Grizzled to that enemy. Reduce the difficulty of tests - on or against the attached enemy by 1.\"\r\n },\r\n {\r\n \"name\": \"Mythos-Hardened\",\r\n - \ \"xp\": 4,\r\n \"text\": \"If this skill test is on a treachery with - a chosen trait and the test is successful, you may add both Grizzled and that treachery - to the victory display.\"\r\n },\r\n {\r\n \"name\": \"Always Prepared\",\r\n - \ \"xp\": 5,\r\n \"text\": \"After you draw an encounter card with a chosen - trait, return one copy of Grizzled from your discard pile to your hand. (Max once - per round.)\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09101\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Innate. Developed.\",\n \"wildIcons\": 1,\n \"customizations\": + [\n {\n \"name\": \"Specialist\",\n \"xp\": 1,\n \"text\": \"Choose + another trait.\"\n },\n {\n \"name\": \"Specialist\",\n \"xp\": + 2,\n \"text\": \"Choose another trait.\"\n },\n {\n \"name\": \"Nemesis\",\n + \ \"xp\": 3,\n \"text\": \"If this is a skill test on or against an enemy + with a chosen trait and the test is successful, you may attach Grizzled to that + enemy. Reduce the difficulty of tests on or against the attached enemy by 1.\"\n + \ },\n {\n \"name\": \"Mythos-Hardened\",\n \"xp\": 4,\n \"text\": + \"If this skill test is on a treachery with a chosen trait and the test is successful, + you may add both Grizzled and that treachery to the victory display.\"\n },\n + \ {\n \"name\": \"Always Prepared\",\n \"xp\": 5,\n \"text\": \"After + you draw an encounter card with a chosen trait, return one copy of Grizzled from + your discard pile to your hand. (Max once per round.)\"\n }\n ],\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 9417a7 Grid: true GridProjection: false @@ -57,11 +57,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (2) 6b2e97.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (2) 6b2e97.yaml index da2257256..c827f5823 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (2) 6b2e97.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (2) 6b2e97.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538719 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60421\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60421\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Investigator Packs\"\n}" GUID: 6b2e97 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 5.52 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (4) 07bc04.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (4) 07bc04.yaml index a6acbb572..b7c16a0f6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (4) 07bc04.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grotesque Statue (4) 07bc04.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230356 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01071\",\r\n \"alternate_ids\": [\r\n \"01571\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 2,\r\n - \ \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 1,\r\n \"uses\": - [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01071\",\n \"alternate_ids\": [\n \"01571\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": + 4,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Core\"\n}" GUID: 07bc04 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grounded (1) 98fc57.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grounded (1) 98fc57.yaml index 3e97ca2d8..9c1d2f096 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grounded (1) 98fc57.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grounded (1) 98fc57.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230332 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03113\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Talent. Composure.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03113\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Talent. Composure.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 98fc57 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.04 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Grounded (3) edb064.yaml b/unpacked/Bag All Player Cards 15bb07/Card Grounded (3) edb064.yaml index ff46ce1b7..30979b2c8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Grounded (3) edb064.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Grounded (3) edb064.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379059 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08069\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Talent. Composure.\",\r\n \"wildIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08069\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Talent. Composure.\",\n \"wildIcons\": + 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: edb064 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.19 posY: 2.37 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guard Dog (2) 9009db.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guard Dog (2) 9009db.yaml index a29e03554..cc6348724 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guard Dog (2) 9009db.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guard Dog (2) 9009db.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379027 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09034\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Creature.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09034\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ally. + Creature.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"The + Scarlet Keys\"\n}" GUID: 9009db Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 17.03 posY: 3.33 posZ: 65.98 - rotX: 357.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 357 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 001ae8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 001ae8.yaml index 2e13bbb62..1f20ee593 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 001ae8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 001ae8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587201 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01521\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Creature.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01521\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Creature.\",\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 001ae8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.92 posY: 3.31 posZ: 7.76 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 08bdf1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 08bdf1.yaml index 2ed7820a8..6841d3650 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 08bdf1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guard Dog 08bdf1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226326 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Creature.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01021\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Creature.\",\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 08bdf1 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 83.38 posY: 1.99 posZ: -10.39 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guardian Angel 3c0249.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guardian Angel 3c0249.yaml index 872ef656e..61f2d715d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guardian Angel 3c0249.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guardian Angel 3c0249.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580500 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ritual. Blessed.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07006\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ritual. Blessed.\",\n \"willpowerIcons\": 1,\n + \ \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 3c0249 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guardian of the Crystallizer aec357.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guardian of the Crystallizer aec357.yaml index 1d4db3e5f..1ea8bbf82 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guardian of the Crystallizer aec357.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guardian of the Crystallizer aec357.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440723 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06025\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster.\",\r\n \"weakness\": true,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06025\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster.\",\n \"weakness\": true,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: aec357 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 9.01 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guidance (1) 425841.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guidance (1) 425841.yaml index 0cd91f16d..1233beb23 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guidance (1) 425841.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guidance (1) 425841.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379046 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09053\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09053\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: '425841' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.4 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guidance bbfe9b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guidance bbfe9b.yaml index 29c46c8b6..e0d5bf90a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guidance bbfe9b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guidance bbfe9b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368406 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03265\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03265\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Path to Carcosa\"\n}" GUID: bbfe9b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.96 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guided by the Unseen (3) 477e79.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guided by the Unseen (3) 477e79.yaml index 486481e3f..a7bb12376 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guided by the Unseen (3) 477e79.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guided by the Unseen (3) 477e79.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590706 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07223\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07223\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 477e79 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.17 posY: 3.14 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guiding Spirit (1) 9375f4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guiding Spirit (1) 9375f4.yaml index 96a68c785..379c898f6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guiding Spirit (1) 9375f4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guiding Spirit (1) 9375f4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588405 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05236\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Geist.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05236\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Ally. + Geist.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 9375f4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.09 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Gumption (1) 4cb0c9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Gumption (1) 4cb0c9.yaml index 0545a486f..a56182711 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Gumption (1) 4cb0c9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Gumption (1) 4cb0c9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379136 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09112\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate.\",\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09112\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Innate.\",\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 4cb0c9 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guts (2) 219c78.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guts (2) 219c78.yaml index 8eebe6a99..b8e9a593f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guts (2) 219c78.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guts (2) 219c78.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538722 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60424\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Developed.\",\r\n \"willpowerIcons\": - 3,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60424\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Developed.\",\n \"willpowerIcons\": 3,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 219c78 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.12 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Guts 8f7289.yaml b/unpacked/Bag All Player Cards 15bb07/Card Guts 8f7289.yaml index fbe63b873..d2dea0260 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Guts 8f7289.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Guts 8f7289.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368500 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01089\",\r\n \"alternate_ids\": [\r\n \"01589\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01089\",\n \"alternate_ids\": [\n \"01589\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Neutral\",\n \"level\": 0,\n \"traits\": \"Innate.\",\n + \ \"willpowerIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: 8f7289 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 175810.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 175810.yaml new file mode 100644 index 000000000..69fa6a31b --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 175810.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 306 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"07301-t\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell. Blessed.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" +GUID: '175810' +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Hallow (3) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -22.49 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 3a85c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 3a85c4.yaml deleted file mode 100644 index c9857bb59..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) (Taboo) 3a85c4.yaml +++ /dev/null @@ -1,55 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 585607 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5856': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"07301-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" -GUID: 3a85c4 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Hallow (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 9.14 - posY: 3.69 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) e40802.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) e40802.yaml index d0b7fcd3a..722b9d38b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) e40802.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hallow (3) e40802.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07301\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07301\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell. Blessed.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e40802 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.73 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hallowed Chalice 3fa5b8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hallowed Chalice 3fa5b8.yaml index c3186fd88..9a15cb69d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hallowed Chalice 3fa5b8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hallowed Chalice 3fa5b8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379108 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09084\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09084\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 3fa5b8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror (3) 78858f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror (3) 78858f.yaml index 6ed2eb525..a7026fca2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror (3) 78858f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror (3) 78858f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449522 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"54002\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Occult. Blessed.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 3,\r\n \"id\": \"05314\"\r\n }\r\n - \ ],\r\n \"willpowerIcons\": 2,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54002\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Occult. Blessed.\",\n \"bonded\": [\n {\n \"count\": 3,\n \"id\": + \"05314\"\n }\n ],\n \"willpowerIcons\": 2,\n \"cycle\": \"Return to the Circle + Undone\"\n}" GUID: 78858f Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.05 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror 312d38.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror 312d38.yaml index 1c2a64cd9..0191d3035 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror 312d38.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hallowed Mirror 312d38.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378620 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05313\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Occult. Blessed.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 3,\r\n \"id\": \"05314\"\r\n }\r\n - \ ],\r\n \"willpowerIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05313\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Relic. Occult. Blessed.\",\n \"bonded\": [\n {\n \"count\": 3,\n \"id\": + \"05314\"\n }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 312d38 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 4.72 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hand of Fate 1ad931.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hand of Fate 1ad931.yaml index dc38324ae..60e86b884 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hand of Fate 1ad931.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hand of Fate 1ad931.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588314 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07020\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07020\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell. Blessed.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 1ad931 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.9 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hand-Eye Coordination (1) 102fcd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hand-Eye Coordination (1) 102fcd.yaml new file mode 100644 index 000000000..e6b067bf8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Hand-Eye Coordination (1) 102fcd.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 2100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '21': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279446315725170600/22FCF4406C090610E507C757FAEECC820E7F1E23/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10030\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Insight.\",\n \"combatIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 102fcd +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Hand-Eye Coordination (1) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.17 + posY: 2.93 + posZ: -16.73 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Handcuffs (2) 07c480.yaml b/unpacked/Bag All Player Cards 15bb07/Card Handcuffs (2) 07c480.yaml index 94ff90980..ab7b6f78a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Handcuffs (2) 07c480.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Handcuffs (2) 07c480.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379028 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09035\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Item. Police.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09035\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Item. Police.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 07c480 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 17.02 posY: 3.38 posZ: 65.98 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Handcuffs 5f33be.yaml b/unpacked/Bag All Player Cards 15bb07/Card Handcuffs 5f33be.yaml index 6655ea450..d89de96f6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Handcuffs 5f33be.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Handcuffs 5f33be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 313301 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04265\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Police.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04265\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. Police.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 5f33be Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (2) 15643b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (2) 15643b.yaml index 7becab18e..3869b67d0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (2) 15643b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (2) 15643b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315242 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50005\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50005\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: 15643b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 4.16 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (4) 9565f0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (4) 9565f0.yaml index efd1f27fb..eb8bafbbd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (4) 9565f0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks (4) 9565f0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449605 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07266\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n - \ \"replenish\": 2,\r\n \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07266\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 2,\n \"agilityIcons\": 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": + 2,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 9565f0 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.16 posY: 3.87 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 132069.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 132069.yaml index 0da686a21..de2c47e32 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 132069.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 132069.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587207 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01549\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01549\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: '132069' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.81 posY: 3.32 posZ: 7.67 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 68744b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 68744b.yaml index c49ead826..92fa1b5e5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 68744b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hard Knocks 68744b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368623 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01049\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01049\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 68744b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.08 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hard Times 876557.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hard Times 876557.yaml index 6df2cd8f7..63078e9be 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hard Times 876557.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hard Times 876557.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 381101 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"90048\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Hardship.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"90048\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Hardship.\",\n \"weakness\": true,\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: '876557' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.27 posY: 1.06 posZ: 26.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Harmony Restored (2) 7885cf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Harmony Restored (2) 7885cf.yaml index d08a3da2b..b5e26cabe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Harmony Restored (2) 7885cf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Harmony Restored (2) 7885cf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580010 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07230\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Fortune. Blessed.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07230\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Fortune. Blessed.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 7885cf Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.81 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 1fa944.yaml b/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 1fa944.yaml index 798b9edb2..36af8beb9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 1fa944.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 1fa944.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 234901 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Professor DragSelectable: true -GMNotes: "{\r\n \"id\": \"60201\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Miskatonic.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 5,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60201\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Miskatonic.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 5,\n \"combatIcons\": 1,\n \"agilityIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 1fa944 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.6 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 2d6db0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 2d6db0.yaml index 3ccd03a6a..65d860ce1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 2d6db0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Harvey Walters 2d6db0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274217 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.2 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Haste (2) 1bd139.yaml b/unpacked/Bag All Player Cards 15bb07/Card Haste (2) 1bd139.yaml index e3f50f195..6107731e8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Haste (2) 1bd139.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Haste (2) 1bd139.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447632 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06239\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06239\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n + \ \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 1bd139 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.13 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hasty Repairs 0821d5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hasty Repairs 0821d5.yaml new file mode 100644 index 000000000..95828a9f2 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Hasty Repairs 0821d5.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 910300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '9103': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2223150865961116492/B9D47B63A4285734AC59208BA2F5509EF4B8C138/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10003\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Blunder.\",\n \"weakness\": true,\n \"cycle\": \"The Feast of + Hemlock Vale\"\n}" +GUID: 0821d5 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Hasty Repairs +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 10.69 + posY: 2.44 + posZ: 43.88 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hatchet Man 857238.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hatchet Man 857238.yaml index eb86990e9..1a842aa07 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hatchet Man 857238.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hatchet Man 857238.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261704 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04155\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"agilityIcons\": 1,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04155\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"agilityIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: '857238' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.12 posY: 4.07 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Haunted 249d83.yaml b/unpacked/Bag All Player Cards 15bb07/Card Haunted 249d83.yaml index 5b869dcc1..cec522d44 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Haunted 249d83.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Haunted 249d83.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527402 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"01098\",\r\n \"alternate_ids\": [\r\n \"01598\"\r\n - \ ],\r\n \"type\": \"Treachery\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Curse.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01098\",\n \"alternate_ids\": [\n \"01598\"\n ],\n \"type\": + \"Treachery\",\n \"class\": \"Neutral\",\n \"traits\": \"Curse.\",\n \"weakness\": + true,\n \"basicWeaknessCount\": 1,\n \"cycle\": \"Core\"\n}" GUID: 249d83 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 78.8 posY: 3.32 posZ: 26.95 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hawk-Eye Folding Camera 5ada0a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hawk-Eye Folding Camera 5ada0a.yaml index c0e7ce524..ea73caefe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hawk-Eye Folding Camera 5ada0a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hawk-Eye Folding Camera 5ada0a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277813 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05154\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05154\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 0,\n + \ \"type\": \"Evidence\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 5ada0a Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 8.97 posY: 3.83 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Headdress of Y'ha-nthlei e44c96.yaml b/unpacked/Bag All Player Cards 15bb07/Card Headdress of Y'ha-nthlei e44c96.yaml index 5bce1e8b1..daeb5677f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Headdress of Y'ha-nthlei e44c96.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Headdress of Y'ha-nthlei e44c96.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 451114 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07181\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07181\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e44c96 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.51 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Healing Words (3) f2726b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Healing Words (3) f2726b.yaml index e2c5c13d6..1448aac06 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Healing Words (3) f2726b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Healing Words (3) f2726b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379058 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08068\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08068\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: f2726b Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.19 posY: 2.35 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Healing Words bba97a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Healing Words bba97a.yaml index 04962e929..e72a39ff0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Healing Words bba97a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Healing Words bba97a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380127 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06163\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06163\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: bba97a Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.15 posY: 3.67 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Heavy Furs 275450.yaml b/unpacked/Bag All Player Cards 15bb07/Card Heavy Furs 275450.yaml index 0307928f0..7ea510bab 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Heavy Furs 275450.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Heavy Furs 275450.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378913 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08126\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Armor.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08126\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Armor.\",\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: '275450' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.94 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Heed the Dream (2) 3b7419.yaml b/unpacked/Bag All Player Cards 15bb07/Card Heed the Dream (2) 3b7419.yaml index 2a99acf16..98f45bddb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Heed the Dream (2) 3b7419.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Heed the Dream (2) 3b7419.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379139 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09115\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Augury. Dilemma.\",\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09115\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Augury. Dilemma.\",\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 3b7419 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea bf151d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea bf151d.yaml index cab2af49e..f168bf439 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea bf151d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea bf151d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 585400 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Artifact from Another Life (Advanced) DragSelectable: true -GMNotes: "{\r\n \"id\": \"90018\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"combatIcons\": 1,\r\n \"wildIcons\": 2,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90018\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"wildIcons\": 2,\n \"cycle\": \"Standalone\"\n}" GUID: bf151d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea e929f9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea e929f9.yaml index 6395f919b..486bd1830 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea e929f9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Heirloom of Hyperborea e929f9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 290422 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Artifact from Another Life DragSelectable: true -GMNotes: "{\r\n \"id\": \"01012\",\r\n \"alternate_ids\": [\r\n \"01512\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 3,\r\n - \ \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01012\",\n \"alternate_ids\": [\n \"01512\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Accessory\",\n \"class\": \"Neutral\",\n \"cost\": 3,\n + \ \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n + \ \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: e929f9 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Helping Hand 7d93b4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Helping Hand 7d93b4.yaml index 8cff46bec..0943c410b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Helping Hand 7d93b4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Helping Hand 7d93b4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379024 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09031\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09031\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 7d93b4 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 17.03 posY: 3.32 posZ: 65.98 - rotX: 356.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 356 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hemispheric Map (3) d2663c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hemispheric Map (3) d2663c.yaml index b2344143a..470d99922 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hemispheric Map (3) d2663c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hemispheric Map (3) d2663c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261101 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04275\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04275\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The + Forgotten Age\"\n}" GUID: d2663c Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.16 posY: 4.17 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Henry Wan 9df9df.yaml b/unpacked/Bag All Player Cards 15bb07/Card Henry Wan 9df9df.yaml index f0f521b09..f24813b26 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Henry Wan 9df9df.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Henry Wan 9df9df.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277709 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Aspiring Actor DragSelectable: true -GMNotes: "{\r\n \"id\": \"05155\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05155\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Criminal.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 9df9df Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue (2) 93381d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue (2) 93381d.yaml index bd4f95fec..1618392c7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue (2) 93381d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue (2) 93381d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447934 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06234\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06234\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spirit. Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 93381d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.95 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue bb0f6a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue bb0f6a.yaml index 9f5d361ea..fbe7fb146 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue bb0f6a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Heroic Rescue bb0f6a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226311 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03106\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03106\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spirit. Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: bb0f6a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hidden Pocket 9bef61.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hidden Pocket 9bef61.yaml index d6cd006c3..d5409c568 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hidden Pocket 9bef61.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hidden Pocket 9bef61.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379058 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09065\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Upgrade. Illicit.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09065\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Upgrade. Illicit.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 9bef61 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hiding Spot dd130e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hiding Spot dd130e.yaml index a175da69e..c29547ad0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hiding Spot dd130e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hiding Spot dd130e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368808 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03038\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03038\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic. Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: dd130e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.72 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card High Roller (2) ce1b89.yaml b/unpacked/Bag All Player Cards 15bb07/Card High Roller (2) ce1b89.yaml index 48d9ff435..55cc84eb9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card High Roller (2) ce1b89.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card High Roller (2) ce1b89.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315247 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04156\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04156\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: ce1b89 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.05 posY: 3.86 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Higher Education (3) (Taboo) 833501.yaml b/unpacked/Bag All Player Cards 15bb07/Card Higher Education (3) (Taboo) 833501.yaml deleted file mode 100644 index b03216461..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Higher Education (3) (Taboo) 833501.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450604 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02187-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" -GUID: '833501' -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Higher Education (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.15 - posY: 4.11 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Higher Education (3) d48b25.yaml b/unpacked/Bag All Player Cards 15bb07/Card Higher Education (3) d48b25.yaml index 36e3aa2ec..0fef297fc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Higher Education (3) d48b25.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Higher Education (3) d48b25.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430649 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02187\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02187\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": + true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: d48b25 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 3.71 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Higher Education 8595fb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Higher Education 8595fb.yaml index 25b3862a9..251b3cfcd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Higher Education 8595fb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Higher Education 8595fb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538809 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60211\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60211\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 8595fb Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.17 posY: 3.14 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hiking Boots (1) b03e83.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hiking Boots (1) b03e83.yaml index 39c43a9c5..c6e98f85a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hiking Boots (1) b03e83.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hiking Boots (1) b03e83.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379025 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08035\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Clothing. Footwear.\",\r\n - \ \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08035\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. Clothing. Footwear.\",\n + \ \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: b03e83 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.21 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hired Muscle (1) cdd6aa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hired Muscle (1) cdd6aa.yaml index 84ed766f6..7b8c9d28a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hired Muscle (1) cdd6aa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hired Muscle (1) cdd6aa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315234 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02027\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02027\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Ally. + Criminal.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: cdd6aa Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.02 posY: 4.0 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hit and Run 408bce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hit and Run 408bce.yaml index 5590ad0b2..646f7bebe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hit and Run 408bce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hit and Run 408bce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379059 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09066\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Trick.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09066\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic. Trick.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 408bce Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hit me! 431c15.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hit me! 431c15.yaml index 7cefd4f7c..02cbb801c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hit me! 431c15.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hit me! 431c15.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378950 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08112\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue|Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Fortune. Gambit.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08112\",\n \"type\": \"Event\",\n \"class\": \"Rogue|Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Fortune. Gambit.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 431c15 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 3.06 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary (2) 2d2246.yaml b/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary (2) 2d2246.yaml index 809b50c57..cea6a84dd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary (2) 2d2246.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary (2) 2d2246.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 579300 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07220\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Charm. Blessed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07220\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Charm. Blessed.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 2d2246 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 4.88 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary fa1d67.yaml b/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary fa1d67.yaml index 44b1a109e..1772c99e8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary fa1d67.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Holy Rosary fa1d67.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230323 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01059\",\r\n \"alternate_ids\": [\r\n \"01559\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01059\",\n \"alternate_ids\": [\n \"01559\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Accessory\",\n \"class\": \"Mystic\",\n \"cost\": 2,\n + \ \"level\": 0,\n \"traits\": \"Item. Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: fa1d67 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.ttslua index 7cd15f6d0..8d91ee556 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.ttslua @@ -44,11 +44,15 @@ end)(nil) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -56,35 +60,165 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/cards/HolySpear5") end) @@ -123,6 +257,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -170,7 +309,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -179,7 +320,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -195,6 +336,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -230,7 +376,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -238,6 +384,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -249,8 +399,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -275,7 +425,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -298,7 +448,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -310,36 +460,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end diff --git a/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.yaml index c8b15aba9..952dc65ba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Holy Spear (5) 28289a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590001 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07302\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Item. Weapon. Melee. Blessed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07302\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Item. + Weapon. Melee. Blessed.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 2,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 28289a Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 4.16 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Honed Instinct 1cde62.yaml b/unpacked/Bag All Player Cards 15bb07/Card Honed Instinct 1cde62.yaml index aacedd180..e576d83e7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Honed Instinct 1cde62.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Honed Instinct 1cde62.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379054 ColorDiffuse: @@ -19,28 +19,27 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09061\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Gambit.\",\r\n \"agilityIcons\": - 1,\r\n \"customizations\": [\r\n {\r\n \"name\": \"Reflex Response\",\r\n - \ \"xp\": 1,\r\n \"text\": \"Add the following play condition: \u201C\\u003d - You take damage or horror.\u201D\"\r\n },\r\n {\r\n \"name\": \"Situational - Awareness\",\r\n \"xp\": 1,\r\n \"text\": \"Add the following play condition: - \u201C\\u003d A location enters play or is revealed.\u201D\"\r\n },\r\n {\r\n - \ \"name\": \"Killer Instinct\",\r\n \"xp\": 1,\r\n \"text\": \"Add - the following play condition: \u201C\\u003d An enemy engages you.\u201D\"\r\n },\r\n - \ {\r\n \"name\": \"Gut Reaction\",\r\n \"xp\": 1,\r\n \"text\": - \"Add the following play condition: \u201C\\u003d A treachery enters your threat - area .\u201D\"\r\n },\r\n {\r\n \"name\": \"Muscle Memory\",\r\n \"xp\": - 1,\r\n \"text\": \"Add the following play condition: \u201C\\u003d You play - an asset.\u201D\"\r\n },\r\n {\r\n \"name\": \"Sharpened Talent\",\r\n - \ \"xp\": 2,\r\n \"text\": \"During the action granted by Honed Instinct, - you get +2 to each of your skills.\"\r\n },\r\n {\r\n \"name\": \"Impulse - Control\",\r\n \"xp\": 3,\r\n \"text\": \"You may include up to three - copies of Honed Instinct in your deck. Honed Instinct gets \u20131 cost.\",\r\n - \ \"replaces\": {\r\n \"cost\": 0\r\n }\r\n },\r\n {\r\n \"name\": - \"Force of Habit\",\r\n \"xp\": 5,\r\n \"text\": \"When you play Honed - Instinct, you may take 2 actions instead of 1 (one at a time). Then, remove it from - the game.\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09061\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Gambit.\",\n \"agilityIcons\": + 1,\n \"customizations\": [\n {\n \"name\": \"Reflex Response\",\n \"xp\": + 1,\n \"text\": \"Add the following play condition: \u201C\\u003d You take damage + or horror.\u201D\"\n },\n {\n \"name\": \"Situational Awareness\",\n + \ \"xp\": 1,\n \"text\": \"Add the following play condition: \u201C\\u003d + A location enters play or is revealed.\u201D\"\n },\n {\n \"name\": \"Killer + Instinct\",\n \"xp\": 1,\n \"text\": \"Add the following play condition: + \u201C\\u003d An enemy engages you.\u201D\"\n },\n {\n \"name\": \"Gut + Reaction\",\n \"xp\": 1,\n \"text\": \"Add the following play condition: + \u201C\\u003d A treachery enters your threat area .\u201D\"\n },\n {\n \"name\": + \"Muscle Memory\",\n \"xp\": 1,\n \"text\": \"Add the following play condition: + \u201C\\u003d You play an asset.\u201D\"\n },\n {\n \"name\": \"Sharpened + Talent\",\n \"xp\": 2,\n \"text\": \"During the action granted by Honed + Instinct, you get +2 to each of your skills.\"\n },\n {\n \"name\": \"Impulse + Control\",\n \"xp\": 3,\n \"text\": \"You may include up to three copies + of Honed Instinct in your deck. Honed Instinct gets \u20131 cost.\",\n \"replaces\": + {\n \"cost\": 0\n }\n },\n {\n \"name\": \"Force of Habit\",\n + \ \"xp\": 5,\n \"text\": \"When you play Honed Instinct, you may take 2 + actions instead of 1 (one at a time). Then, remove it from the game.\"\n }\n + \ ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 1cde62 Grid: true GridProjection: false @@ -64,11 +63,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hoods 785f68.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hoods 785f68.yaml index 6a03d74e3..51136ecc7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hoods 785f68.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hoods 785f68.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378863 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05017\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Cultist.\",\r\n \"weakness\": true,\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05017\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Cultist.\",\n \"weakness\": true,\n \"cycle\": \"The + Circle Undone\"\n}" GUID: 785f68 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.78 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hope 45c582.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hope 45c582.yaml index 4b895df88..362c48918 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hope 45c582.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hope 45c582.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440624 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06031\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Ally. Creature. Dreamlands.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06031\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"traits\": \"Ally. Creature. Dreamlands.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 45c582 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.9 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hospital Debts 47d6c9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hospital Debts 47d6c9.yaml index ad70d464b..4b2be40a1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hospital Debts 47d6c9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hospital Debts 47d6c9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431425 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Signature DragSelectable: true -GMNotes: "{\r\n \"id\": \"01011\",\r\n \"alternate_ids\": [\r\n \"01511\"\r\n - \ ],\r\n \"type\": \"Treachery\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Task.\",\r\n \"weakness\": true,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01011\",\n \"alternate_ids\": [\n \"01511\"\n ],\n \"type\": + \"Treachery\",\n \"class\": \"Neutral\",\n \"traits\": \"Task.\",\n \"weakness\": + true,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Resource\",\n + \ \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: 47d6c9 Grid: true GridProjection: false @@ -45,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (2) f2508d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (2) f2508d.yaml index e2d43fcd1..d80cc2967 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (2) f2508d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (2) f2508d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315250 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50006\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 5,\r\n \"level\": 2,\r\n \"traits\": \"Fortune.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50006\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 5,\n \"level\": 2,\n \"traits\": \"Fortune.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: f2508d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.84 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (4) 4eb231.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (4) 4eb231.yaml index c16a3ab67..ed2b9e285 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (4) 4eb231.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hot Streak (4) 4eb231.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315258 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01057\",\r\n \"alternate_ids\": [\r\n \"01557\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 3,\r\n - \ \"level\": 4,\r\n \"traits\": \"Fortune.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01057\",\n \"alternate_ids\": [\n \"01557\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": + \"Fortune.\",\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 4eb231 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hunter's Armor a85f1d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hunter's Armor a85f1d.yaml index 704a7cac1..631505812 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hunter's Armor a85f1d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hunter's Armor a85f1d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379014 ColorDiffuse: @@ -19,27 +19,26 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Armor.\",\r\n \"willpowerIcons\": - 1,\r\n \"customizations\": [\r\n {\r\n \"name\": \"Enchanted\",\r\n \"xp\": - 1,\r\n \"text\": \"Hunter\u2019s Armor gains the Relic trait and takes up an - arcane slot instead of a body slot.\",\r\n \"replaces\": {\r\n \"traits\": - \"Item. Armor. Relic.\"\r\n }\r\n },\r\n {\r\n \"name\": \"Protective - Runes\",\r\n \"xp\": 2,\r\n \"text\": \"Hunter\u2019s Armor may be assigned - damage and/or horror dealt to other investigators at your location.\"\r\n },\r\n - \ {\r\n \"name\": \"Durable\",\r\n \"xp\": 2,\r\n \"text\": \"Hunter\u2019s - Armor gets +2 health.\"\r\n },\r\n {\r\n \"name\": \"Hallowed\",\r\n - \ \"xp\": 2,\r\n \"text\": \"Hunter\u2019s Armor gets +2 sanity.\"\r\n - \ },\r\n {\r\n \"name\": \"Lightweight\",\r\n \"xp\": 2,\r\n \"text\": - \"Hunter\u2019s Armor gets \u20131 cost and playing it does not provoke attacks - of opportunity.\",\r\n \"replaces\": {\r\n \"cost\": 3\r\n }\r\n - \ },\r\n {\r\n \"name\": \"Hexdrinker\",\r\n \"xp\": 3,\r\n \"text\": - \"After 1 or more damage or horror is assigned to Hunter\u2019s Armor from a treachery - effect, you may exhaust it to draw 1 card.\"\r\n },\r\n {\r\n \"name\": - \"Armor of Thorns\",\r\n \"xp\": 3,\r\n \"text\": \"After 1 or more damage - or horror is assigned to Hunter\u2019s Armor from an enemy attack, you may exhaust - it to deal 1 damage to that enemy.\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09021\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Armor.\",\n \"willpowerIcons\": 1,\n \"customizations\": [\n {\n \"name\": + \"Enchanted\",\n \"xp\": 1,\n \"text\": \"Hunter\u2019s Armor gains the + Relic trait and takes up an arcane slot instead of a body slot.\",\n \"replaces\": + {\n \"traits\": \"Item. Armor. Relic.\"\n }\n },\n {\n \"name\": + \"Protective Runes\",\n \"xp\": 2,\n \"text\": \"Hunter\u2019s Armor may + be assigned damage and/or horror dealt to other investigators at your location.\"\n + \ },\n {\n \"name\": \"Durable\",\n \"xp\": 2,\n \"text\": \"Hunter\u2019s + Armor gets +2 health.\"\n },\n {\n \"name\": \"Hallowed\",\n \"xp\": + 2,\n \"text\": \"Hunter\u2019s Armor gets +2 sanity.\"\n },\n {\n \"name\": + \"Lightweight\",\n \"xp\": 2,\n \"text\": \"Hunter\u2019s Armor gets \u20131 + cost and playing it does not provoke attacks of opportunity.\",\n \"replaces\": + {\n \"cost\": 3\n }\n },\n {\n \"name\": \"Hexdrinker\",\n + \ \"xp\": 3,\n \"text\": \"After 1 or more damage or horror is assigned + to Hunter\u2019s Armor from a treachery effect, you may exhaust it to draw 1 card.\"\n + \ },\n {\n \"name\": \"Armor of Thorns\",\n \"xp\": 3,\n \"text\": + \"After 1 or more damage or horror is assigned to Hunter\u2019s Armor from an enemy + attack, you may exhaust it to deal 1 damage to that enemy.\"\n }\n ],\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: a85f1d Grid: true GridProjection: false @@ -64,11 +63,11 @@ Transform: posX: 10.38 posY: 2.2 posZ: 45.51 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (2) 23c3e5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (2) 23c3e5.yaml index fb2c98aca..5e9448a9e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (2) 23c3e5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (2) 23c3e5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430644 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50003\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50003\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: 23c3e5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (4) 78adda.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (4) 78adda.yaml index 297c33f47..57003c43a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (4) 78adda.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness (4) 78adda.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449603 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07264\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n - \ \"replenish\": 2,\r\n \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07264\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 2,\n \"agilityIcons\": 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": + 2,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 78adda Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.0 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness e5dd39.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness e5dd39.yaml index 15ac726ff..9cff9de01 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness e5dd39.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hyperawareness e5dd39.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368424 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01034\",\r\n \"alternate_ids\": [\r\n \"01534\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01034\",\n \"alternate_ids\": [\n \"01534\"\n ],\n \"type\": + \"Asset\",\n \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Talent.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: e5dd39 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.99 posY: 3.38 posZ: -56.89 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hyperphysical Shotcaster 2a6e0d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hyperphysical Shotcaster 2a6e0d.yaml index 94fb7dc72..2c1320b9c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hyperphysical Shotcaster 2a6e0d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hyperphysical Shotcaster 2a6e0d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379143 ColorDiffuse: @@ -19,34 +19,33 @@ CustomDeck: UniqueBack: false Description: Theoretical Device DragSelectable: true -GMNotes: "{\r\n \"id\": \"09119\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Weapon. Firearm.\",\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Aether\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"customizations\": - [\r\n {\r\n \"name\": \"Railshooter\",\r\n \"xp\": 2,\r\n \"text\": - \"Hyperphysical Shotcaster has this form: \u201CManifest \u2013 Fight. Fight with - any skill. This attack deals +1 damage.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Telescanner\",\r\n \"xp\": 2,\r\n \"text\": \"Hyperphysical Shotcaster - has this form: \u201CManifest \u2013 Investigate. Investigate with any skill. If - you succeed, discover a clue at any revealed location instead of your location.\"\r\n - \ },\r\n {\r\n \"name\": \"Translocator\",\r\n \"xp\": 2,\r\n \"text\": - \"Hyperphysical Shotcaster has this form: \u201CManifest \u2013 Evade. Attempt to - evade with any skill. Before or after this attempt, you may move an investigator - or a non-Elite enemy at your location to a connecting location, or vice versa.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Realitycollapser\",\r\n \"xp\": 2,\r\n - \ \"text\": \"Hyperphysical Shotcaster has this form: \u201CManifest \u2013 - Test any skill (3). If you succeed, discard from play a non\u2011weakness treachery - that is not attached to an Elite enemy.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Matterweaver\",\r\n \"xp\": 2,\r\n \"text\": \"Hyperphysical Shotcaster - has this form: \u201CManifest \u2013 Choose an asset in your hand and test any skill - (X), where X is that asset\u2019s cost. If you succeed, play that asset at no cost.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Aetheric Link\",\r\n \"xp\": 4,\r\n \"text\": - \"Hyperphysical Shotcaster enters play with 2 additional aether.\",\r\n \"replaces\": - {\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": - \"Aether\",\r\n \"token\": \"resource\"\r\n }\r\n ]\r\n - \ }\r\n },\r\n {\r\n \"name\": \"Empowered Configuration\",\r\n \"xp\": - 4,\r\n \"text\": \"While using a Manifest ability, you get +2 skill value.\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09119\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Relic. Weapon. Firearm.\",\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Aether\",\n \"token\": \"resource\"\n }\n ],\n \"customizations\": + [\n {\n \"name\": \"Railshooter\",\n \"xp\": 2,\n \"text\": \"Hyperphysical + Shotcaster has this form: \u201CManifest \u2013 Fight. Fight with any skill. This + attack deals +1 damage.\u201D\"\n },\n {\n \"name\": \"Telescanner\",\n + \ \"xp\": 2,\n \"text\": \"Hyperphysical Shotcaster has this form: \u201CManifest + \u2013 Investigate. Investigate with any skill. If you succeed, discover a clue + at any revealed location instead of your location.\"\n },\n {\n \"name\": + \"Translocator\",\n \"xp\": 2,\n \"text\": \"Hyperphysical Shotcaster + has this form: \u201CManifest \u2013 Evade. Attempt to evade with any skill. Before + or after this attempt, you may move an investigator or a non-Elite enemy at your + location to a connecting location, or vice versa.\u201D\"\n },\n {\n \"name\": + \"Realitycollapser\",\n \"xp\": 2,\n \"text\": \"Hyperphysical Shotcaster + has this form: \u201CManifest \u2013 Test any skill (3). If you succeed, discard + from play a non\u2011weakness treachery that is not attached to an Elite enemy.\u201D\"\n + \ },\n {\n \"name\": \"Matterweaver\",\n \"xp\": 2,\n \"text\": + \"Hyperphysical Shotcaster has this form: \u201CManifest \u2013 Choose an asset + in your hand and test any skill (X), where X is that asset\u2019s cost. If you succeed, + play that asset at no cost.\u201D\"\n },\n {\n \"name\": \"Aetheric Link\",\n + \ \"xp\": 4,\n \"text\": \"Hyperphysical Shotcaster enters play with 2 + additional aether.\",\n \"replaces\": {\n \"uses\": [\n {\n + \ \"count\": 6,\n \"type\": \"Aether\",\n \"token\": + \"resource\"\n }\n ]\n }\n },\n {\n \"name\": \"Empowered + Configuration\",\n \"xp\": 4,\n \"text\": \"While using a Manifest ability, + you get +2 skill value.\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 2a6e0d Grid: true GridProjection: false @@ -71,11 +70,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze (2) e2bc49.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze (2) e2bc49.yaml index e5c328b91..b9e938790 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze (2) e2bc49.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze (2) e2bc49.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538721 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60423\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60423\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell.\",\n \"combatIcons\": 1,\n + \ \"agilityIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: e2bc49 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.8 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze (Taboo) 47d782.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze (Taboo) 47d782.yaml new file mode 100644 index 000000000..8f5db4eb8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze (Taboo) 47d782.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 351 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"02153-t\",\n \"alternate_ids\": [\n \"60414-t\"\n ],\n + \ \"type\": \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n + \ \"traits\": \"Spell.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" +GUID: 47d782 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Hypnotic Gaze (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -51.82 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze 8f3c8e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze 8f3c8e.yaml index c4f30d2f6..502fa76ce 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze 8f3c8e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Gaze 8f3c8e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230313 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02153\",\r\n \"alternate_ids\": [\r\n \"60414\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 3,\r\n - \ \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02153\",\n \"alternate_ids\": [\n \"60414\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": + \"Spell.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 8f3c8e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Therapy 7f1b48.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Therapy 7f1b48.yaml index 9d370a4c6..f08ddbc4c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Therapy 7f1b48.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hypnotic Therapy 7f1b48.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 591753 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05007\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05007\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 7f1b48 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.72 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Hypochondria 88ee43.yaml b/unpacked/Bag All Player Cards 15bb07/Card Hypochondria 88ee43.yaml index 92cc467b1..8df0049e6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Hypochondria 88ee43.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Hypochondria 88ee43.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527404 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"01100\",\r\n \"alternate_ids\": [\r\n \"01600\"\r\n - \ ],\r\n \"type\": \"Treachery\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01100\",\n \"alternate_ids\": [\n \"01600\"\n ],\n \"type\": + \"Treachery\",\n \"class\": \"Neutral\",\n \"traits\": \"Madness.\",\n \"weakness\": + true,\n \"basicWeaknessCount\": 1,\n \"cycle\": \"Core\"\n}" GUID: 88ee43 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 79.05 posY: 3.32 posZ: 27.23 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I'll see you in hell! 84ba9d.yaml b/unpacked/Bag All Player Cards 15bb07/Card I'll see you in hell! 84ba9d.yaml index fbd631595..81951e206 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I'll see you in hell! 84ba9d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I'll see you in hell! 84ba9d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226307 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03189\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03189\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"combatIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 84ba9d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.05 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I'll take that! 691652.yaml b/unpacked/Bag All Player Cards 15bb07/Card I'll take that! 691652.yaml index 123294227..66a7b8122 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I'll take that! 691652.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I'll take that! 691652.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379060 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09067\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Trick. Upgrade. Illicit.\",\r\n - \ \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09067\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Trick. Upgrade. Illicit.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: '691652' Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 357 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I'm done runnin'! d8a324.yaml b/unpacked/Bag All Player Cards 15bb07/Card I'm done runnin'! d8a324.yaml index 345b5931a..85557f271 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I'm done runnin'! d8a324.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I'm done runnin'! d8a324.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378762 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05016\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05016\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Spirit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: d8a324 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.11 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I'm outta here! 62cf25.yaml b/unpacked/Bag All Player Cards 15bb07/Card I'm outta here! 62cf25.yaml index cd1ba8140..960afc0b5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I'm outta here! 62cf25.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I'm outta here! 62cf25.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368707 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02151\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Trick. Spirit.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02151\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Trick. Spirit.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 62cf25 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.01 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! (2) 344e90.yaml b/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! (2) 344e90.yaml index 9af9292a9..d18f9b916 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! (2) 344e90.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! (2) 344e90.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538823 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60225\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60225\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Insight. Tactic.\",\n \"intellectIcons\": + 2,\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 344e90 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.09 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! acd0da.yaml b/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! acd0da.yaml index c7ea4fe5c..1bdbf1645 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! acd0da.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I've got a plan! acd0da.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368418 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02107\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02107\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Insight. Tactic.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: acd0da Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I've had worse (4) 3b6834.yaml b/unpacked/Bag All Player Cards 15bb07/Card I've had worse (4) 3b6834.yaml index 146aefdb5..f6589e14e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I've had worse (4) 3b6834.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I've had worse (4) 3b6834.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226355 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02261\",\r\n \"alternate_ids\": [\r\n \"01684\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 0,\r\n - \ \"level\": 4,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": 2,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02261\",\n \"alternate_ids\": [\n \"01684\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Guardian\",\n \"cost\": 0,\n \"level\": 4,\n \"traits\": + \"Spirit.\",\n \"willpowerIcons\": 2,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Dunwich Legacy\"\n}" GUID: 3b6834 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 19.1 posY: 3.37 posZ: -57.68 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card I've had worse... (2) 76147b.yaml b/unpacked/Bag All Player Cards 15bb07/Card I've had worse... (2) 76147b.yaml index ed266ae42..48ae6816d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card I've had worse... (2) 76147b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card I've had worse... (2) 76147b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378619 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05315\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05315\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 76147b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (1) 8b065c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (1) 8b065c.yaml index a218f1e0f..23e17d35d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (1) 8b065c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (1) 8b065c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378943 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08105\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Item. Tool. Melee.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08105\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker|Survivor\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": + \"Item. Tool. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 8b065c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.72 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (3) 70f9f7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (3) 70f9f7.yaml index aa48314ed..b878db798 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (3) 70f9f7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ice Pick (3) 70f9f7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378945 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08107\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tool. Melee.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08107\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker|Survivor\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": + \"Item. Tool. Melee.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 70f9f7 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.18 posY: 2.87 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ichtaca 29fc24.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ichtaca 29fc24.yaml index 10dc8ccf7..6aca83a28 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ichtaca 29fc24.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ichtaca 29fc24.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235648 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: The Forgotten Guardian DragSelectable: true -GMNotes: "{\r\n \"id\": \"04147\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Ally. Eztli. Wayfarer.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04147\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Ally. Eztli. Wayfarer.\",\n \"combatIcons\": 1,\n + \ \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 29fc24 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Idol of Xanatos 8f6f39.yaml b/unpacked/Bag All Player Cards 15bb07/Card Idol of Xanatos 8f6f39.yaml index 7862d3dbb..bc71cb632 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Idol of Xanatos 8f6f39.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Idol of Xanatos 8f6f39.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379126 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Watcher Beyond Time DragSelectable: true -GMNotes: "{\r\n \"id\": \"09102\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09102\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 8f6f39 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.72 posY: 3.38 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card If it bleeds... acf2b0.yaml b/unpacked/Bag All Player Cards 15bb07/Card If it bleeds... acf2b0.yaml index ddf2f2081..1dfa99783 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card If it bleeds... acf2b0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card If it bleeds... acf2b0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226312 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02225\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"willpowerIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02225\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: acf2b0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 96.32 posY: 1.99 posZ: 18.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ikiaq (3) 9d7d4a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ikiaq (3) 9d7d4a.yaml index 410d466d9..8f95a3242 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ikiaq (3) 9d7d4a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ikiaq (3) 9d7d4a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449606 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: The Council's Chosen DragSelectable: true -GMNotes: "{\r\n \"id\": \"07267\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Sorcerer.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07267\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Ally. + Sorcerer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The + Innsmouth Conspiracy\"\n}" GUID: 9d7d4a Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.13 posY: 3.88 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Impromptu Barrier 9591ac.yaml b/unpacked/Bag All Player Cards 15bb07/Card Impromptu Barrier 9591ac.yaml index 1fba7e917..990c0648c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Impromptu Barrier 9591ac.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Impromptu Barrier 9591ac.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430503 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04312\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Improvised.\",\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04312\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic. Improvised.\",\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 9591ac Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 4.03 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Improvisation 9aee7f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Improvisation 9aee7f.yaml index 953bf3acf..1df399eb3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Improvisation 9aee7f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Improvisation 9aee7f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374834 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03018\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Insight.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03018\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Insight.\",\n \"wildIcons\": 2,\n \"cycle\": \"The + Path to Carcosa\"\n}" GUID: 9aee7f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 1.99 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Improvised Shield 616c43.yaml b/unpacked/Bag All Player Cards 15bb07/Card Improvised Shield 616c43.yaml index e11ac7878..cc8f7ef19 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Improvised Shield 616c43.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Improvised Shield 616c43.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379127 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09103\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Armor. Improvised.\",\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09103\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Armor. Improvised.\",\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 616c43 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.72 posY: 3.38 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Improvised Weapon 30f90b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Improvised Weapon 30f90b.yaml index 75a759cba..7d5085fc4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Improvised Weapon 30f90b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Improvised Weapon 30f90b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368811 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04033\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Improvised.\",\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04033\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic. Improvised.\",\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 30f90b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card In the Know (1) 7b42b6.yaml b/unpacked/Bag All Player Cards 15bb07/Card In the Know (1) 7b42b6.yaml index ec23ed496..71040bbaf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card In the Know (1) 7b42b6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card In the Know (1) 7b42b6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430640 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03027\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03027\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 7b42b6 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 5.56 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card In the Shadows 2561b9.yaml b/unpacked/Bag All Player Cards 15bb07/Card In the Shadows 2561b9.yaml index 992650174..6f7cd2d3e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card In the Shadows 2561b9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card In the Shadows 2561b9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582904 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07010\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"agilityIcons\": 2,\r\n \"wildIcons\": - 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07010\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Tactic.\",\n \"agilityIcons\": 2,\n \"wildIcons\": + 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 2561b9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 4.01 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card In the Thick of It bdd102.yaml b/unpacked/Bag All Player Cards 15bb07/Card In the Thick of It bdd102.yaml index f3e99dbcf..25f803f70 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card In the Thick of It bdd102.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card In the Thick of It bdd102.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378912 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08125\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Curse.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08125\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Curse.\",\n \"permanent\": true,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: bdd102 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.94 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Indebted b2ef43.yaml b/unpacked/Bag All Player Cards 15bb07/Card Indebted b2ef43.yaml index 0de0c293d..0e55f6635 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Indebted b2ef43.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Indebted b2ef43.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431205 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"02037\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"permanent\": true,\r\n \"weakness\": - true,\r\n \"basicWeaknessCount\": 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02037\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"permanent\": true,\n \"weakness\": true,\n \"basicWeaknessCount\": + 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: b2ef43 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.09 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (3) 943332.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (3) 943332.yaml index d821ec687..a8da7b6bd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (3) 943332.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (3) 943332.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538725 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60427\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60427\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: '943332' Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.17 posY: 3.08 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (5) f00301.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (5) f00301.yaml index c936f96da..e27e17fb4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (5) f00301.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth (5) f00301.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538730 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60432\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60432\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 2,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: f00301 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.1 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth c6caf6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth c6caf6.yaml index f3f145cf6..2639f2286 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth c6caf6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ineffable Truth c6caf6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538707 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60409\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60409\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Investigator + Packs\"\n}" GUID: c6caf6 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Infighting (3) c803ba.yaml b/unpacked/Bag All Player Cards 15bb07/Card Infighting (3) c803ba.yaml index 4b45e5dbc..791de7148 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Infighting (3) c803ba.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Infighting (3) c803ba.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368854 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03314\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03314\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 2,\n \"agilityIcons\": 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: c803ba Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.9 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Inquiring Mind 5c3aea.yaml b/unpacked/Bag All Player Cards 15bb07/Card Inquiring Mind 5c3aea.yaml index 1b8cce3ec..c7027e203 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Inquiring Mind 5c3aea.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Inquiring Mind 5c3aea.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368401 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02227\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02227\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 3,\n \"cycle\": \"The + Dunwich Legacy\"\n}" GUID: 5c3aea Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.29 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Inspector Flint 8247a5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Inspector Flint 8247a5.yaml index 469d185a9..75f14f508 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Inspector Flint 8247a5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Inspector Flint 8247a5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588600 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: With Pride and Care DragSelectable: true -GMNotes: "{\r\n \"id\": \"09762\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Agency. Detective.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09762\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Agency. Detective.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: 8247a5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 79.04 posY: 3.3 posZ: 25.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Inspiring Presence 80628f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Inspiring Presence 80628f.yaml index e78e2ffa5..7106e5ab9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Inspiring Presence 80628f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Inspiring Presence 80628f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226301 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03228\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03228\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 80628f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.08 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Intel Report 5115d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Intel Report 5115d9.yaml index e30d2b3a7..e40999fe0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Intel Report 5115d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Intel Report 5115d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277710 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05111\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Favor. Service.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05111\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Favor. Service.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 5115d9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Internal Injury 4fb446.yaml b/unpacked/Bag All Player Cards 15bb07/Card Internal Injury 4fb446.yaml index 4f663e2fa..17a38a202 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Internal Injury 4fb446.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Internal Injury 4fb446.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431206 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"02038\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Injury.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02038\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Injury.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 2,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 4fb446 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.09 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Interrogate (Taboo) a6726e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Interrogate (Taboo) a6726e.yaml new file mode 100644 index 000000000..64846e734 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Interrogate (Taboo) a6726e.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 305 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"05020-t\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Tactic. Insight.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" +GUID: a6726e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Interrogate (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -17.97 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Interrogate c70ad8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Interrogate c70ad8.yaml index 16121e86e..e42ae36f3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Interrogate c70ad8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Interrogate c70ad8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431008 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05020\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05020\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Tactic. Insight.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: c70ad8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.86 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Intrepid 99d061.yaml b/unpacked/Bag All Player Cards 15bb07/Card Intrepid 99d061.yaml index abc571d2e..6a7166214 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Intrepid 99d061.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Intrepid 99d061.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226304 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04192\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 1,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04192\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"willpowerIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 99d061 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.77 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Investments b65011.yaml b/unpacked/Bag All Player Cards 15bb07/Card Investments b65011.yaml index cea78f7a0..b4f11f254 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Investments b65011.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Investments b65011.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292913 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05233\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Connection.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 0,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05233\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Connection.\",\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: b65011 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.03 posY: 3.67 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Isamara Ordoñez 860cd7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Isamara Ordoñez 860cd7.yaml index 8602dc798..c69e27113 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Isamara Ordoñez 860cd7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Isamara Ordoñez 860cd7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550927 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: The Torch Singer DragSelectable: true -GMNotes: "{\r\n \"id\": \"88044\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Performer.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"88044\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Performer.\",\n \"willpowerIcons\": 1,\n + \ \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 860cd7 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.39 posY: 3.24 posZ: 26.74 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jacob Morrison (3) aa38d0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jacob Morrison (3) aa38d0.yaml index 208aa9104..3f961b539 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jacob Morrison (3) aa38d0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jacob Morrison (3) aa38d0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589808 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Coast Guard Captain DragSelectable: true -GMNotes: "{\r\n \"id\": \"07309\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Blessed.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07309\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Ally. + Blessed.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: aa38d0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.98 posY: 3.32 posZ: 8.45 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine 9b0378.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine 9b0378.yaml index 6ae24443f..0faece784 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine 9b0378.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine 9b0378.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274219 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.06 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine a2cd75.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine a2cd75.yaml index 018f29ac3..92a568f75 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine a2cd75.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jacqueline Fine a2cd75.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 234903 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Psychic DragSelectable: true -GMNotes: "{\r\n \"id\": \"60401\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Clairvoyant.\",\r\n \"willpowerIcons\": 5,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60401\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Clairvoyant.\",\n \"willpowerIcons\": 5,\n \"intellectIcons\": + 3,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: a2cd75 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.74 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jake Williams 7c958e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jake Williams 7c958e.yaml index b4569057b..5e6298594 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jake Williams 7c958e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jake Williams 7c958e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 377343 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"intellectIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04008\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Ally. Wayfarer.\",\n + \ \"intellectIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 7c958e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.75 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 48b174.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 48b174.yaml index 1d0d33879..921cc1ac8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 48b174.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 48b174.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259007 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02003-m\",\r\n \"alternate_ids\": [\r\n \"98001-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"02003-m\",\n \"alternate_ids\": [\n \"98001-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: 48b174 Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273410 ColorDiffuse: @@ -85,10 +85,10 @@ States: posY: 1.49510384 posZ: 25.2808552 rotX: 2.695551e-07 - rotY: 270.0 + rotY: 270 rotZ: -3.71707358e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -9.61 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 9058d3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 9058d3.yaml index fdf2b861d..53ebb10b8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 9058d3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jenny Barnes 9058d3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450104 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Dilettante DragSelectable: true -GMNotes: "{\r\n \"id\": \"02003\",\r\n \"alternate_ids\": [\r\n \"98001\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Rogue\",\r\n \"traits\": - \"Drifter.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": - 3,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02003\",\n \"alternate_ids\": [\n \"98001\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Rogue\",\n \"traits\": \"Drifter.\",\n \"willpowerIcons\": + 3,\n \"intellectIcons\": 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 9058d3 Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273631 ColorDiffuse: @@ -90,10 +90,10 @@ States: posY: 1.49510384 posZ: 21.4800034 rotX: 5.375201e-08 - rotY: 180.0 + rotY: 180 rotZ: -3.88488473e-07 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -2.77 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jenny's Twin .45s d87128.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jenny's Twin .45s d87128.yaml index 511c626ad..6a58d1e0f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jenny's Twin .45s d87128.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jenny's Twin .45s d87128.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371308 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02010\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Item. Weapon. Firearm.\",\r\n \"agilityIcons\": 2,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02010\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Neutral\",\n \"traits\": \"Item. Weapon. Firearm.\",\n \"agilityIcons\": + 2,\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: d87128 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.86 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) 71e4a0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) 71e4a0.yaml deleted file mode 100644 index 9d4c7c49d..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) 71e4a0.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558203 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: Arctic Archaeologist -DragSelectable: true -GMNotes: "{\r\n \"id\": \"08032-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic. Wayfarer.\",\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" -GUID: 71e4a0 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Jeremiah Kirby (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.61 - posY: 4.32 - posZ: -55.3 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) a03cd7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) a03cd7.yaml new file mode 100644 index 000000000..eadbf59ba --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby (Taboo) a03cd7.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 316 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: Arctic Archaeologist +DragSelectable: true +GMNotes: "{\n \"id\": \"08032-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. Miskatonic. Wayfarer.\",\n + \ \"intellectIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" +GUID: a03cd7 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Jeremiah Kirby (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -54.08 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby 98e5f5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby 98e5f5.yaml index 49e2a8580..a0a1c30dc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby 98e5f5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jeremiah Kirby 98e5f5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379022 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Arctic Archaeologist DragSelectable: true -GMNotes: "{\r\n \"id\": \"08032\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic. Wayfarer.\",\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08032\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Miskatonic. Wayfarer.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 98e5f5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.18 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jerome Davids d99735.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jerome Davids d99735.yaml index 525694ca2..a1ce590a9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jerome Davids d99735.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jerome Davids d99735.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 312512 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: In Way Over His Head DragSelectable: true -GMNotes: "{\r\n \"id\": \"05259\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Assistant.\",\r\n \"intellectIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05259\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Assistant.\",\n \"intellectIcons\": 1,\n + \ \"wildIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: d99735 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.06 posY: 3.86 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jessica Hyde (1) b8380d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jessica Hyde (1) b8380d.yaml index a8f8b633a..476e48042 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jessica Hyde (1) b8380d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jessica Hyde (1) b8380d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380228 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Wrong Place, Wrong Time DragSelectable: true -GMNotes: "{\r\n \"id\": \"06118\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Wayfarer. Cursed.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": - \"Damage\",\r\n \"token\": \"damage\"\r\n }\r\n ],\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06118\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Ally. + Wayfarer. Cursed.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 2,\n \"type\": \"Damage\",\n \"token\": \"damage\"\n }\n ],\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: b8380d Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.04 posY: 3.94 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 213e21.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 5f4d1c.yaml similarity index 51% rename from unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 213e21.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 5f4d1c.yaml index 16def6c0e..599457256 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 213e21.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) (Taboo) 5f4d1c.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 558206 +CardID: 344 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '5582': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 Type: 0 UniqueBack: false Description: Gift of the Homunculi DragSelectable: true -GMNotes: "{\r\n \"id\": \"02269-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" -GUID: 213e21 +GMNotes: "{\n \"id\": \"02269-t\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: 5f4d1c Grid: true GridProjection: false Hands: true @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 21.83 - posY: 4.42 - posZ: -47.42 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -16.59 + posY: 3.45 + posZ: -22.49 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) 6bae15.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) 6bae15.yaml index 0fab6bd6d..77a05b0bb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) 6bae15.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jewel of Aureolus (3) 6bae15.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230352 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Gift of the Homunculi DragSelectable: true -GMNotes: "{\r\n \"id\": \"02269\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02269\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Relic.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 6bae15 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel Back) aba863.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel Back) aba863.yaml new file mode 100644 index 000000000..b6e0a1f5e --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel Back) aba863.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 846805 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8468': + BackIsHidden: false + BackURL: http://cloud-3.steamusercontent.com/ugc/2149964195987018702/54C63785F3AA474F635F58BC506C86A318432BD7/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/1656727981627737050/3CFF9E3825033909543AD1CF843361D9243538EE/ + NumHeight: 2 + NumWidth: 4 + Type: 0 + UniqueBack: true +Description: The Musician +DragSelectable: true +GMNotes: "{\n \"id\": \"02004-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Mystic\",\n \"traits\": \"Performer.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: aba863 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Jim Culver (Parallel Back) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 82.21 + posY: 3.19 + posZ: 18.46 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel Front) c5fc80.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel Front) c5fc80.yaml new file mode 100644 index 000000000..a403a3ee6 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel Front) c5fc80.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 846905 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8469': + BackIsHidden: false + BackURL: http://cloud-3.steamusercontent.com/ugc/1656727981627737648/F371339538812F68E38AAC0D520C525250DAC5C0/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2149964195987018793/0AED4BF62C4FF3206778AD36FDB9C8E482CD3F9E/ + NumHeight: 2 + NumWidth: 4 + Type: 0 + UniqueBack: true +Description: The Musician +DragSelectable: true +GMNotes: "{\n \"id\": \"02004-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Mystic\",\n \"traits\": \"Performer. Cursed.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: c5fc80 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Jim Culver (Parallel Front) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 82.09 + posY: 3.19 + posZ: 22.48 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel) 72bf31.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel) 72bf31.yaml new file mode 100644 index 000000000..2fb477150 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver (Parallel) 72bf31.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 846700 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8467': + BackIsHidden: false + BackURL: http://cloud-3.steamusercontent.com/ugc/2149964195987018702/54C63785F3AA474F635F58BC506C86A318432BD7/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2149964195987018793/0AED4BF62C4FF3206778AD36FDB9C8E482CD3F9E/ + NumHeight: 2 + NumWidth: 4 + Type: 0 + UniqueBack: true +Description: The Musician +DragSelectable: true +GMNotes: "{\n \"id\": \"02004-p\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Performer. Cursed.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: 72bf31 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Jim Culver (Parallel) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 82.18 + posY: 3.19 + posZ: 26.39 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jim Culver b7a676.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver b7a676.yaml index c89bcb9e1..2c9d83fe9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jim Culver b7a676.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver b7a676.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259308 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.97 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jim Culver ca079b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver ca079b.yaml index f3a1888db..1e0a3e782 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jim Culver ca079b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jim Culver ca079b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449705 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Musician DragSelectable: true -GMNotes: "{\r\n \"id\": \"02004\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Performer.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02004\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Performer.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": 3,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: ca079b Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.56 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jim's Trumpet 03c6a7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jim's Trumpet 03c6a7.yaml index 81393b2ef..1c833738b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jim's Trumpet 03c6a7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jim's Trumpet 03c6a7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 372110 ColorDiffuse: @@ -17,11 +17,11 @@ CustomDeck: NumWidth: 10 Type: 0 UniqueBack: false -Description: '' +Description: The Dead Listen DragSelectable: true -GMNotes: "{\r\n \"id\": \"02012\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Instrument. Relic.\",\r\n \"willpowerIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02012\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Instrument. Relic.\",\n + \ \"willpowerIcons\": 2,\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 03c6a7 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jim's Trumpet 7dfd5f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jim's Trumpet 7dfd5f.yaml new file mode 100644 index 000000000..bed1b465c --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Jim's Trumpet 7dfd5f.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 847000 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8470': + BackIsHidden: false + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2149964195986880793/517FBB4FF8F72900B9E123DB865BCAD625F6506C/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: false +Description: The Dead Speak (Advanced) +DragSelectable: true +GMNotes: "{\n \"id\": \"90050\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Instrument. Relic.\",\n + \ \"willpowerIcons\": 2,\n \"wildIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: 7dfd5f +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Jim's Trumpet +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 78.51 + posY: 3.23 + posZ: 27.01 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond 6dc626.yaml b/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond 6dc626.yaml index 7bc7de86c..12c1e9e62 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond 6dc626.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond 6dc626.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271822 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Private Investigator DragSelectable: true -GMNotes: "{\r\n \"id\": \"05002\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Detective.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05002\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Detective.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 6dc626 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.53 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond d55364.yaml b/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond d55364.yaml index 577c52d03..f0259d574 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond d55364.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Joe Diamond d55364.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272903 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.99 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil (3) 48c9ff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil (3) 48c9ff.yaml index eeef33290..3c5d274b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil (3) 48c9ff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil (3) 48c9ff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449036 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: 'Lookin'' Out For #1' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06326\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06326\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Ally. + Criminal.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: 48c9ff Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.15 posY: 4.06 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil b51688.yaml b/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil b51688.yaml index 8f2bec1d1..4882ba8cf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil b51688.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Joey The Rat Vigil b51688.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368629 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: 'Lookin'' Out For #1' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02265\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02265\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Criminal.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Dunwich Legacy\"\n}" GUID: b51688 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 3.83 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card John & Jessie Burke cfb393.yaml b/unpacked/Bag All Player Cards 15bb07/Card John & Jessie Burke cfb393.yaml index 6b6f727c5..fc3f3e046 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card John & Jessie Burke cfb393.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card John & Jessie Burke cfb393.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 454740 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: Ally. Government. DragSelectable: true -GMNotes: "{\r\n \"id\": \"83055\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Ally. Government.\",\r\n \"combatIcons\": 1,\r\n - \ \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"83055\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Ally. Government.\",\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: cfb393 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.11 posY: 3.67 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Join the Caravan (1) 6367dd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Join the Caravan (1) 6367dd.yaml index 095842f42..d7a4bb73e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Join the Caravan (1) 6367dd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Join the Caravan (1) 6367dd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379026 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08036\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 5,\r\n \"level\": 1,\r\n \"traits\": \"Insight. Synergy.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08036\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 5,\n \"level\": 1,\n \"traits\": \"Insight. Synergy.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 6367dd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.74 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Jury-Rig 29d06d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Jury-Rig 29d06d.yaml index 1a2fdcc5c..779ca2758 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Jury-Rig 29d06d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Jury-Rig 29d06d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378903 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08074\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Upgrade.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Durability\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08074\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Upgrade.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Durability\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge + of the Earth\"\n}" GUID: 29d06d Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.18 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Justify the Means (3) 025ed2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Justify the Means (3) 025ed2.yaml index c55558c18..4acc6af5f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Justify the Means (3) 025ed2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Justify the Means (3) 025ed2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589505 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07306\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Practiced. Cursed.\",\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07306\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 3,\n \"traits\": \"Practiced. Cursed.\",\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 025ed2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.8 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Katja Eastbank (2) 2f100c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Katja Eastbank (2) 2f100c.yaml index 46daab8cb..424b5cd40 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Katja Eastbank (2) 2f100c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Katja Eastbank (2) 2f100c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379138 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Keeper of Esoteric Lore DragSelectable: true -GMNotes: "{\r\n \"id\": \"09114\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Scholar.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09114\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ally. + Scholar.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The + Scarlet Keys\"\n}" GUID: 2f100c Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Keen Eye (3) 2f9de4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Keen Eye (3) 2f9de4.yaml index dbc0fe643..4f203bb9b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Keen Eye (3) 2f9de4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Keen Eye (3) 2f9de4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226351 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02185\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02185\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": + true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 2f9de4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 4.07 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Keen Eye 0dc75e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Keen Eye 0dc75e.yaml index e734beff5..1b3eb63fc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Keen Eye 0dc75e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Keen Eye 0dc75e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07152\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07152\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 0dc75e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.0 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Keep Faith 8b46b2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Keep Faith 8b46b2.yaml index 8faf26494..eb1ea0df5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Keep Faith 8b46b2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Keep Faith 8b46b2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 584328 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07034\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Fortune. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07034\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Fortune. Blessed.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 8b46b2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 2.96 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Kensler's Log 8d5c12.yaml b/unpacked/Bag All Player Cards 15bb07/Card Kensler's Log 8d5c12.yaml index 77e2712a5..5382fe427 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Kensler's Log 8d5c12.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Kensler's Log 8d5c12.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452305 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08735\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": - \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08735\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Tome.\",\n \"intellectIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 8d5c12 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 79.27 posY: 3.32 posZ: 7.38 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Kerosene (1) 25ad44.yaml b/unpacked/Bag All Player Cards 15bb07/Card Kerosene (1) 25ad44.yaml index 8c8825331..f556ab8ba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Kerosene (1) 25ad44.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Kerosene (1) 25ad44.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314003 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04304\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04304\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Item.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 25ad44 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 244d61.yaml b/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 244d61.yaml deleted file mode 100644 index 28a0fbb4e..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 244d61.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450619 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: Let the Storm Rage -DragSelectable: true -GMNotes: "{\r\n \"id\": \"03315-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" -GUID: 244d61 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Key of Ys (5) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.16 - posY: 3.68 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 9451ee.yaml b/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 9451ee.yaml new file mode 100644 index 000000000..27464f0f3 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) (Taboo) 9451ee.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 358 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: Let The Storm Rage +DragSelectable: true +GMNotes: "{\n \"id\": \"03315-t\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" +GUID: 9451ee +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Key of Ys (5) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.48 + posZ: -36.03 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) 1c98ff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) 1c98ff.yaml index ef5ec8ed8..a281be64a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) 1c98ff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Key of Ys (5) 1c98ff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368527 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Let the Storm Rage DragSelectable: true -GMNotes: "{\r\n \"id\": \"03315\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03315\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Path + to Carcosa\"\n}" GUID: 1c98ff Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.07 posY: 3.84 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Khopesh of the Abyss dc674e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Khopesh of the Abyss dc674e.yaml index 326765888..29c1b4972 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Khopesh of the Abyss dc674e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Khopesh of the Abyss dc674e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 546916 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: Item. Weapon. Relic. Melee. DragSelectable: true -GMNotes: "{\r\n \"id\": \"83057\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Item. Weapon. Relic. Melee.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"83057\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Item. Weapon. Relic. Melee.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: dc674e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.07 posY: 3.84 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Kicking the Hornet's Nest 4d6da5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Kicking the Hornet's Nest 4d6da5.yaml index 023e0dac3..72cba9d5b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Kicking the Hornet's Nest 4d6da5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Kicking the Hornet's Nest 4d6da5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379061 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09068\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Gambit. Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09068\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Gambit. Tactic.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 4d6da5 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.4 posZ: 65.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Kleptomania 447a08.yaml b/unpacked/Bag All Player Cards 15bb07/Card Kleptomania 447a08.yaml index 404673e74..81febde55 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Kleptomania 447a08.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Kleptomania 447a08.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 438126 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"06036\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Madness. Talent.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06036\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness. Talent.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 447a08 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.96 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Knife 0ab3f1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Knife 0ab3f1.yaml index d125b3ce0..31ab5ad62 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Knife 0ab3f1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Knife 0ab3f1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368512 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01086\",\r\n \"alternate_ids\": [\r\n \"01586\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01086\",\n \"alternate_ids\": [\n \"01586\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Neutral\",\n \"cost\": 1,\n \"level\": + 0,\n \"traits\": \"Item. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: 0ab3f1 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Knight of Swords (3) 159f82.yaml b/unpacked/Bag All Player Cards 15bb07/Card Knight of Swords (3) 159f82.yaml index 63fc96d15..e1272c7f6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Knight of Swords (3) 159f82.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Knight of Swords (3) 159f82.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449525 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Charge Ever Onward DragSelectable: true -GMNotes: "{\r\n \"id\": \"54005\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"Return - to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54005\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 159f82 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.83 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) eccb8a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) 0dd658.yaml similarity index 50% rename from unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) eccb8a.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) 0dd658.yaml index d7f178707..3de9f5b16 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) eccb8a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power (Taboo) 0dd658.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450611 +CardID: 318 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05231-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: eccb8a +GMNotes: "{\n \"id\": \"05231-t\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" +GUID: 0dd658 Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.07 - posY: 3.89 - posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -16.59 + posY: 3.45 + posZ: -47.31 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power 6de21b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power 6de21b.yaml index 3f39a223a..d5cce020a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power 6de21b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Knowledge is Power 6de21b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293215 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05231\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05231\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 6de21b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Knuckleduster 5690d1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Knuckleduster 5690d1.yaml index 65f94203c..243574d4a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Knuckleduster 5690d1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Knuckleduster 5690d1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368627 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03110\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03110\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee. Illicit.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 5690d1 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Kukri 756a35.yaml b/unpacked/Bag All Player Cards 15bb07/Card Kukri 756a35.yaml index f30294794..a5c32a345 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Kukri 756a35.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Kukri 756a35.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368516 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02036\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02036\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 756a35 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones 9a9830.yaml b/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones 9a9830.yaml index e4d564544..a9fb4dd12 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones 9a9830.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones 9a9830.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 843402 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Security Consultant DragSelectable: true -GMNotes: "{\r\n \"id\": \"09008\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Criminal.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 5,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09008\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Criminal.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 5,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 9a9830 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 17.83 posY: 2.21 posZ: 54.01 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones d3d7fb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones d3d7fb.yaml index 52fb8aa68..270b7912b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones d3d7fb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Kymani Jones d3d7fb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846102 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 14.2 posY: 2.21 posZ: 57.02 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lab Coat (1) a825ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lab Coat (1) a825ad.yaml index d4c5b25d0..4b813a1f7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lab Coat (1) a825ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lab Coat (1) a825ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379043 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09050\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Clothing. Science.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09050\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Clothing. Science.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: a825ad Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Laboratory Assistant 147cb2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Laboratory Assistant 147cb2.yaml index 201bc8426..294068ffd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Laboratory Assistant 147cb2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Laboratory Assistant 147cb2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586506 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02020\",\r\n \"alternate_ids\": [\r\n \"60212\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic. Science.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02020\",\n \"alternate_ids\": [\n \"60212\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": + 0,\n \"traits\": \"Ally. Miskatonic. Science.\",\n \"intellectIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 147cb2 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 4.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lady Esprit ab24a6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lady Esprit ab24a6.yaml index a90b83aed..75ba39e37 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lady Esprit ab24a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lady Esprit ab24a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449703 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Dangerous Bokor DragSelectable: true -GMNotes: "{\r\n \"id\": \"81019\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Ally. Sorcerer.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"81019\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Ally. Sorcerer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: ab24a6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.46 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lantern (2) bda4fd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lantern (2) bda4fd.yaml index 056ba79f1..1564901ef 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lantern (2) bda4fd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lantern (2) bda4fd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440621 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52009\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52009\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 2,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: bda4fd Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lantern e66002.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lantern e66002.yaml index 4cdefea62..d0ff7895d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lantern e66002.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lantern e66002.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368827 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03036\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03036\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: e66002 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 3.95 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Last Chance 1fe462.yaml b/unpacked/Bag All Player Cards 15bb07/Card Last Chance 1fe462.yaml index 9b9341cc4..f3f0f7750 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Last Chance 1fe462.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Last Chance 1fe462.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368804 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04036\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Gambit.\",\r\n \"wildIcons\": 5,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04036\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Gambit.\",\n \"wildIcons\": 5,\n \"cycle\": \"The + Forgotten Age\"\n}" GUID: 1fe462 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.75 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leadership (2) 80fafa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leadership (2) 80fafa.yaml index 2e0c517c9..3e835dca6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leadership (2) 80fafa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leadership (2) 80fafa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447935 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06235\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06235\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 2,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 80fafa Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leadership 83d8d7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leadership 83d8d7.yaml index 773b8394f..80ade8e15 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leadership 83d8d7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leadership 83d8d7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226303 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02260\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02260\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 83d8d7 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leather Coat (1) 5b1550.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leather Coat (1) 5b1550.yaml index d177b17c6..e121fafcb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leather Coat (1) 5b1550.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leather Coat (1) 5b1550.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550819 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60521\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Item. Armor.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60521\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Survivor\",\n \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Item. + Armor.\",\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 5b1550 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.09 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leather Coat 593deb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leather Coat 593deb.yaml index 02f3e10f7..8e0bf42bb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leather Coat 593deb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leather Coat 593deb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368820 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01072\",\r\n \"alternate_ids\": [\r\n \"01572\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 0,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Armor.\",\r\n \"combatIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01072\",\n \"alternate_ids\": [\n \"01572\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Body\",\n \"class\": \"Survivor\",\n \"cost\": 0,\n + \ \"level\": 0,\n \"traits\": \"Item. Armor.\",\n \"combatIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: 593deb Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leather Jacket dfbc13.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leather Jacket dfbc13.yaml index 23c3fe919..57cb08b7c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leather Jacket dfbc13.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leather Jacket dfbc13.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538608 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60310\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Armor.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60310\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Armor.\",\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: dfbc13 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leg Injury 46b4a0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leg Injury 46b4a0.yaml index 14c4e3abe..9ec3956ba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leg Injury 46b4a0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leg Injury 46b4a0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378918 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08131\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Injury.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08131\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Injury.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 46b4a0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.37 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 126932.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 126932.yaml index e4b6d7550..5a2b364a0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 126932.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 126932.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271316 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Expedition Leader DragSelectable: true -GMNotes: "{\r\n \"id\": \"04001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Veteran. Wayfarer.\",\r\n \"willpowerIcons\": - 4,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 1,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Veteran. Wayfarer.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 4,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: '126932' Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 1.76 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 8925b0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 8925b0.yaml index ad50fee66..b2c2b4e29 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 8925b0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leo Anderson 8925b0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 262016 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.77 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca (1) 27446e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca (1) 27446e.yaml index abe6c8958..d9fac3cc6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca (1) 27446e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca (1) 27446e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315240 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: The Louisiana Lion DragSelectable: true -GMNotes: "{\r\n \"id\": \"01054\",\r\n \"alternate_ids\": [\r\n \"01554\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 5,\r\n - \ \"level\": 1,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01054\",\n \"alternate_ids\": [\n \"01554\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Rogue\",\n \"cost\": 5,\n \"level\": + 1,\n \"traits\": \"Ally. Criminal.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 27446e Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca eaa415.yaml b/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca eaa415.yaml index 07ee02f4b..35b878969 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca eaa415.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Leo De Luca eaa415.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368631 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: The Louisiana Lion DragSelectable: true -GMNotes: "{\r\n \"id\": \"01048\",\r\n \"alternate_ids\": [\r\n \"01548\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 6,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01048\",\n \"alternate_ids\": [\n \"01548\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Rogue\",\n \"cost\": 6,\n \"level\": + 0,\n \"traits\": \"Ally. Criminal.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: eaa415 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lesson Learned (2) 037b2e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lesson Learned (2) 037b2e.yaml index 0ef7f9687..7ab7cd798 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lesson Learned (2) 037b2e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lesson Learned (2) 037b2e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545322 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60124\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Insight. Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60124\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Insight. Spirit.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 037b2e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.69 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Let God sort them out... d3dcf1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Let God sort them out... d3dcf1.yaml index e546791a9..f9331a4ad 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Let God sort them out... d3dcf1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Let God sort them out... d3dcf1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380027 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06160\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Fated.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06160\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Tactic. Fated.\",\n \"combatIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: d3dcf1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.9 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Let me handle this! 36c0cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Let me handle this! 36c0cb.yaml index 7860389da..e09d7e515 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Let me handle this! 36c0cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Let me handle this! 36c0cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226305 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03022\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03022\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 36c0cb Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Library Docent (1) fab3a9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Library Docent (1) fab3a9.yaml index 4bc6e6ba9..775e2e50b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Library Docent (1) fab3a9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Library Docent (1) fab3a9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538818 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60220\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60220\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Ally. + Miskatonic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: fab3a9 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.12 posY: 4.02 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lifeline (1) 895047.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lifeline (1) 895047.yaml index 522dd24ea..d0fa93f12 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lifeline (1) 895047.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lifeline (1) 895047.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379134 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09110\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Fortune.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09110\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Fortune.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: '895047' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lightning Gun (5) 2d362c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lightning Gun (5) 2d362c.yaml index 3061dc26c..8377e4d92 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lightning Gun (5) 2d362c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lightning Gun (5) 2d362c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226361 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02301\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 6,\r\n \"level\": 5,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02301\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 6,\n \"level\": 5,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 2d362c Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lily Chen 4d0128.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lily Chen 4d0128.yaml index fc593fc57..32ce9d12b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lily Chen 4d0128.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lily Chen 4d0128.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379202 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.13 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lily Chen cc21e0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lily Chen cc21e0.yaml index 8b70bf5d5..7e45483c1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lily Chen cc21e0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lily Chen cc21e0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379503 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Martial Artist DragSelectable: true -GMNotes: "{\r\n \"id\": \"08010\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Chosen. Warden.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 2,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08010\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Chosen. Warden.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 2,\n \"combatIcons\": 4,\n \"agilityIcons\": 3,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: cc21e0 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.87 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage (1) 5065a6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage (1) 5065a6.yaml index 3127df7b6..9948a109d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage (1) 5065a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage (1) 5065a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538618 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60320\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Item. Illicit.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60320\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Item. Illicit.\",\n \"willpowerIcons\": + 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Investigator Packs\"\n}" GUID: 5065a6 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage c33a10.yaml b/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage c33a10.yaml index 881a36f40..8c4893805 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage c33a10.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Liquid Courage c33a10.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368620 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02024\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Illicit.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02024\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Illicit.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: c33a10 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 5.32 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lita Chantler 3c1944.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lita Chantler 3c1944.yaml index 5403cf807..b27d466de 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lita Chantler 3c1944.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lita Chantler 3c1944.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 295128 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Ally DragSelectable: true -GMNotes: "{\r\n \"id\": \"01117\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Ally.\",\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01117\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Ally.\",\n \"cycle\": \"Core\"\n}" GUID: 3c1944 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.43 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Live and Learn 050ba1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Live and Learn 050ba1.yaml index a1b8e3367..b2ca0a845 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Live and Learn 050ba1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Live and Learn 050ba1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368807 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04200\",\r\n \"alternate_ids\": [\r\n \"60516\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 0,\r\n - \ \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04200\",\n \"alternate_ids\": [\n \"60516\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": + \"Spirit.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 050ba1 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.1 posY: 3.72 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Living Ink 42b36d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Living Ink 42b36d.yaml index 817262894..64ce920fc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Living Ink 42b36d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Living Ink 42b36d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379103 ColorDiffuse: @@ -19,28 +19,27 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09079\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Ritual.\",\r\n \"uses\": [\r\n - \ {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"customizations\": [\r\n {\r\n },\r\n - \ {\r\n \"name\": \"Shifting Ink\",\r\n \"xp\": 1,\r\n \"text\": - \"You may play Living Ink under the control of another investigator at your location.\"\r\n - \ },\r\n {\r\n \"name\": \"Subtle Depiction\",\r\n \"xp\": 1,\r\n - \ \"text\": \"At the start of your turn, you may choose not to remove 1 charge - from Living Ink and ignore its ability for the remainder of the round.\"\r\n },\r\n - \ {\r\n \"name\": \"Imbued Ink\",\r\n \"xp\": 2,\r\n \"text\": - \"Living Ink enters play with 2 additional charges and takes up an arcane slot instead - of a body slot.\",\r\n \"replaces\": {\r\n \"uses\": [\r\n {\r\n - \ \"count\": 5,\r\n \"type\": \"Charge\",\r\n \"token\": - \"resource\"\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n \"name\": - \"Eldritch Ink\",\r\n \"xp\": 3,\r\n \"text\": \"Circle another skill.\"\r\n - \ },\r\n {\r\n \"name\": \"Eldritch Ink\",\r\n \"xp\": 3,\r\n \"text\": - \"Circle another skill.\"\r\n },\r\n {\r\n \"name\": \"Macabre Depiction\",\r\n - \ \"xp\": 3,\r\n \"text\": \"Living Ink gains: \u201C\U0001F5F2 After you - reveal a chaos token with a symbol, exhaust Living Ink: Place 1 charge on it.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Vibrancy\",\r\n \"xp\": 3,\r\n \"text\": - \"Living Ink grants an additional +1 to the circled skill(s) and \u20131 to each - other skill.\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09079\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Mystic\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Ritual.\",\n + \ \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": + \"resource\"\n }\n ],\n \"customizations\": [\n {\n },\n {\n \"name\": + \"Shifting Ink\",\n \"xp\": 1,\n \"text\": \"You may play Living Ink under + the control of another investigator at your location.\"\n },\n {\n \"name\": + \"Subtle Depiction\",\n \"xp\": 1,\n \"text\": \"At the start of your + turn, you may choose not to remove 1 charge from Living Ink and ignore its ability + for the remainder of the round.\"\n },\n {\n \"name\": \"Imbued Ink\",\n + \ \"xp\": 2,\n \"text\": \"Living Ink enters play with 2 additional charges + and takes up an arcane slot instead of a body slot.\",\n \"replaces\": {\n + \ \"uses\": [\n {\n \"count\": 5,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ]\n }\n + \ },\n {\n \"name\": \"Eldritch Ink\",\n \"xp\": 3,\n \"text\": + \"Circle another skill.\"\n },\n {\n \"name\": \"Eldritch Ink\",\n \"xp\": + 3,\n \"text\": \"Circle another skill.\"\n },\n {\n \"name\": \"Macabre + Depiction\",\n \"xp\": 3,\n \"text\": \"Living Ink gains: \u201C\U0001F5F2 + After you reveal a chaos token with a symbol, exhaust Living Ink: Place 1 charge + on it.\u201D\"\n },\n {\n \"name\": \"Vibrancy\",\n \"xp\": 3,\n + \ \"text\": \"Living Ink grants an additional +1 to the circled skill(s) and + \u20131 to each other skill.\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 42b36d Grid: true GridProjection: false @@ -65,11 +64,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Livre d'Eibon 55001f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Livre d'Eibon 55001f.yaml index 6138bb2a5..a5c317b87 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Livre d'Eibon 55001f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Livre d'Eibon 55001f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379003 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Hyperborean Grimoire DragSelectable: true -GMNotes: "{\r\n \"id\": \"08005\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"willpowerIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08005\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Relic. Tome.\",\n + \ \"willpowerIcons\": 2,\n \"wildIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 55001f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lockpicks (1) edd6c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lockpicks (1) edd6c4.yaml index eec13be81..d8abc1ffd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lockpicks (1) edd6c4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lockpicks (1) edd6c4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315237 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03031\",\r\n \"alternate_ids\": [\r\n \"01687\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 3,\r\n - \ \"level\": 1,\r\n \"traits\": \"Item. Tool. Illicit.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03031\",\n \"alternate_ids\": [\n \"01687\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": + 1,\n \"traits\": \"Item. Tool. Illicit.\",\n \"intellectIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: edd6c4 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lockpicks cc11e4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lockpicks cc11e4.yaml index 4d701c94e..8eb5530ab 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lockpicks cc11e4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lockpicks cc11e4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538603 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60305\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool. Illicit.\",\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60305\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tool. Illicit.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: cc11e4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.9 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lodge Debts acce72.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lodge Debts acce72.yaml index 04f8c5aa7..3cfaaa6f3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lodge Debts acce72.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lodge Debts acce72.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 591858 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05012\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 10,\r\n \"traits\": \"Pact.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05012\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 10,\n \"traits\": \"Pact.\",\n \"weakness\": true,\n \"cycle\": \"The + Circle Undone\"\n}" GUID: acce72 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.02 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning (4) 1258c6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning (4) 1258c6.yaml index 2e7f447b1..2c11057b0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning (4) 1258c6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning (4) 1258c6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 441023 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52003\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 3,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52003\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 3,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: 1258c6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.48 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning 812175.yaml b/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning 812175.yaml index 056fd14bd..38e799653 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning 812175.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Logical Reasoning 812175.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368417 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03191\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03191\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: '812175' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 475460.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 475460.yaml deleted file mode 100644 index 3f2c8f278..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 475460.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558300 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5583': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/2053112076591067181/7B2A1D7E6E8E8ED36BD16FB7C81827DCD33CEB90/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591067324/8F90B8FDA7E5F0E7B2D9D548397D93A5102FD4BD/ - NumHeight: 2 - NumWidth: 2 - Type: 0 - UniqueBack: true -Description: The Actress -DragSelectable: true -GMNotes: "{\r\n \"id\": \"03006-t\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Performer.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" -GUID: '475460' -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Lola Hayes (Taboo) -SidewaysCard: true -Snap: true -Sticky: true -Tags: -- Investigator -- PlayerCard -Tooltip: true -Transform: - posX: 99.07 - posY: 1.9 - posZ: 4.6 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 1.15 - scaleY: 1.0 - scaleZ: 1.15 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 52956d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 52956d.yaml new file mode 100644 index 000000000..bd82e5ef1 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes (Taboo) 52956d.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 55102 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '551': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907490/4AAE686A793E66311FF78890309D20670A329D16/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907034/013ED775CA50C6FC71731E4FBAEBF1ECA8C68F1E/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: true +Description: The Actress +DragSelectable: true +GMNotes: "{\n \"id\": \"03006-t\",\n \"type\": \"Investigator\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Performer.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 3,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Path to Carcosa\"\n}" +GUID: 52956d +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Lola Hayes (Taboo) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 16.86 + posY: 3.21 + posZ: -16.2 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes b127ab.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes b127ab.yaml index 887ed36ca..f57b66eb8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes b127ab.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes b127ab.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259915 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.89 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes d37332.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes d37332.yaml index 3cbfa521c..76c44a81c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes d37332.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lola Hayes d37332.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271215 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Actress DragSelectable: true -GMNotes: "{\r\n \"id\": \"03006\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Performer.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03006\",\n \"type\": \"Investigator\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Performer.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 3,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: d37332 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.48 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lola Santiago (3) 8bec05.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lola Santiago (3) 8bec05.yaml index 44f74ab87..cf2a3eaf6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lola Santiago (3) 8bec05.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lola Santiago (3) 8bec05.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315256 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: No-Nonsense Archaeologist DragSelectable: true -GMNotes: "{\r\n \"id\": \"04196\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04196\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Ally. + Wayfarer.\",\n \"intellectIcons\": 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 8bec05 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lone Wolf dc3b07.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lone Wolf dc3b07.yaml index ed6b59ac0..6936af8d7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lone Wolf dc3b07.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lone Wolf dc3b07.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368619 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02188\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02188\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: dc3b07 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.1 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Long Shot dc8c4d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Long Shot dc8c4d.yaml similarity index 81% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Long Shot dc8c4d.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Long Shot dc8c4d.yaml index 8b3ae7afb..063385fcf 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Long Shot dc8c4d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Long Shot dc8c4d.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 106 +CardID: 12106 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -41.18 - posY: 3.23 - posZ: -105.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 79.31 + posY: 3.22 + posZ: 27.33 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lonnie Ritter ad0ef0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lonnie Ritter ad0ef0.yaml index c787490c7..24eb5c8ef 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lonnie Ritter ad0ef0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lonnie Ritter ad0ef0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538607 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Feisty Mechanic DragSelectable: true -GMNotes: "{\r\n \"id\": \"60309\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60309\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally.\",\n + \ \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: ad0ef0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.05 posY: 3.89 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Look what I found! (2) fd393b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Look what I found! (2) fd393b.yaml index 5a63a2344..74162c1b5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Look what I found! (2) fd393b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Look what I found! (2) fd393b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550822 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60524\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Fortune.\",\r\n \"intellectIcons\": - 2,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60524\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Fortune.\",\n \"intellectIcons\": + 2,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: fd393b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 26.1 posY: 3.54 posZ: -7.17 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Look what I found! 88d3c0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Look what I found! 88d3c0.yaml index 0abd62caa..5fd3da87e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Look what I found! 88d3c0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Look what I found! 88d3c0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368816 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01079\",\r\n \"alternate_ids\": [\r\n \"60517\",\r\n - \ \"01579\"\r\n ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01079\",\n \"alternate_ids\": [\n \"60517\",\n \"01579\"\n + \ ],\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": + 0,\n \"traits\": \"Fortune.\",\n \"intellectIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: 88d3c0 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lost Soul 4f903e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lost Soul 4f903e.yaml index e392a8c95..aa88d5b4e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lost Soul 4f903e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lost Soul 4f903e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232348 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Madness. Pact. DragSelectable: true -GMNotes: "{\r\n \"id\": \"03227\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness. Pact.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03227\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness. Pact.\",\n \"weakness\": true,\n \"cycle\": \"The Path + to Carcosa\"\n}" GUID: 4f903e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lt. Wilson Stewart 4120f3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lt. Wilson Stewart 4120f3.yaml index f8b3c5f77..85fbed303 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lt. Wilson Stewart 4120f3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lt. Wilson Stewart 4120f3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 233607 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Logistical Genius DragSelectable: true -GMNotes: "{\r\n \"id\": \"85032\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Agency. Veteran.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"85032\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Agency. Veteran.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 4120f3 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucid Dreaming (2) 122e98.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucid Dreaming (2) 122e98.yaml index 8a1996a64..09ec8a741 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucid Dreaming (2) 122e98.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucid Dreaming (2) 122e98.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527312 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06205\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06205\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Spell.\",\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 122e98 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.16 posY: 4.17 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case (3) 0feb74.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case (3) 0feb74.yaml index 7791a53e5..51d7cd5bd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case (3) 0feb74.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case (3) 0feb74.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538624 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60326\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60326\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 0feb74 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.0 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case c607c5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case c607c5.yaml index e76647962..3d2813b57 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case c607c5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky Cigarette Case c607c5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368624 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04107\",\r\n \"alternate_ids\": [\r\n \"60308\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04107\",\n \"alternate_ids\": [\n \"60308\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Accessory\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n + \ \"level\": 0,\n \"traits\": \"Item. Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: c607c5 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 5.39 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (2) 07b163.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (2) 07b163.yaml index 13f6b2039..5edb5c214 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (2) 07b163.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (2) 07b163.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580707 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '... Or Are They?' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02230\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02230\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Dunwich Legacy\"\n}" GUID: 07b163 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (3) c8bb2a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (3) c8bb2a.yaml index 1f9d09f3f..f2551a643 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (3) c8bb2a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky Dice (3) c8bb2a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589606 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '... Or Are They?' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07307\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07307\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Innsmouth Conspiracy\"\n}" GUID: c8bb2a Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.13 posY: 4.01 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky Penny (2) aae31c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky Penny (2) aae31c.yaml index 652d3c501..92352b775 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky Penny (2) aae31c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky Penny (2) aae31c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 579504 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Omen of Misfortune DragSelectable: true -GMNotes: "{\r\n \"id\": \"07224\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Charm. Cursed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07224\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Charm. Cursed.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: aae31c Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.99 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky! (2) 439af2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky! (2) 439af2.yaml index af09e8d28..a282cbc85 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky! (2) 439af2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky! (2) 439af2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368846 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01084\",\r\n \"alternate_ids\": [\r\n \"01584\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 1,\r\n - \ \"level\": 2,\r\n \"traits\": \"Fortune.\",\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01084\",\n \"alternate_ids\": [\n \"01584\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": + \"Fortune.\",\n \"cycle\": \"Core\"\n}" GUID: 439af2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky! (3) 04d33d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky! (3) 04d33d.yaml index 34ce5f3d2..32dbf27a9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky! (3) 04d33d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky! (3) 04d33d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550826 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60528\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Fortune.\",\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60528\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Fortune.\",\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 04d33d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.86 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lucky! ce0dd5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lucky! ce0dd5.yaml index 75fec2ce2..a1ebe7188 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lucky! ce0dd5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lucky! ce0dd5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368810 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01080\",\r\n \"alternate_ids\": [\r\n \"01580\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01080\",\n \"alternate_ids\": [\n \"01580\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": + \"Fortune.\",\n \"cycle\": \"Core\"\n}" GUID: ce0dd5 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson 88c4f4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson 88c4f4.yaml index 7eb05bfc1..719931f92 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson 88c4f4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson 88c4f4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274013 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.83 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson c59b75.yaml b/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson c59b75.yaml index b6508b39f..16a4279c4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson c59b75.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Luke Robinson c59b75.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536234 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Dreamer DragSelectable: true -GMNotes: "{\r\n \"id\": \"06004\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Mystic\",\r\n \"traits\": \"Dreamer. Drifter. Wayfarer.\",\r\n \"willpowerIcons\": - 4,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06004\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Dreamer. Drifter. Wayfarer.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: c59b75 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.94 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lupara (3) a6af13.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lupara (3) a6af13.yaml index 5325e6755..d5cba385f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lupara (3) a6af13.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lupara (3) a6af13.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315255 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03309\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03309\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 2,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: a6af13 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.15 posY: 4.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lure (1) d88407.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lure (1) d88407.yaml index 4b8e9bd77..3baea5a78 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lure (1) d88407.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lure (1) d88407.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368836 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02156\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02156\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: d88407 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.13 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lure (2) 1a90a4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lure (2) 1a90a4.yaml index 4f769cbd3..08151e08c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lure (2) 1a90a4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lure (2) 1a90a4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374420 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05323\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05323\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 1a90a4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Lurker in the Dark 79cc11.yaml b/unpacked/Bag All Player Cards 15bb07/Card Lurker in the Dark 79cc11.yaml index 7cc0cbaf4..0c11b8027 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Lurker in the Dark 79cc11.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Lurker in the Dark 79cc11.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379148 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"09124\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster. Shoggoth.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09124\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Shoggoth.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 79cc11 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.38 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card M1918 BAR (4) b1ad65.yaml b/unpacked/Bag All Player Cards 15bb07/Card M1918 BAR (4) b1ad65.yaml index ee9e0ac84..3081d8fa7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card M1918 BAR (4) b1ad65.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card M1918 BAR (4) b1ad65.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226358 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04229\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 5,\r\n \"level\": 4,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 8,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04229\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 5,\n \"level\": 4,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"combatIcons\": 2,\n \"uses\": [\n {\n \"count\": + 8,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: b1ad65 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Machete 86ee68.yaml b/unpacked/Bag All Player Cards 15bb07/Card Machete 86ee68.yaml index 653c4eed8..c93e36b87 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Machete 86ee68.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Machete 86ee68.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226327 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01020\",\r\n \"alternate_ids\": [\r\n \"01520\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 3,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01020\",\n \"alternate_ids\": [\n \"01520\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Guardian\",\n \"cost\": 3,\n + \ \"level\": 0,\n \"traits\": \"Item. Weapon. Melee.\",\n \"combatIcons\": 1,\n + \ \"cycle\": \"Core\"\n}" GUID: 86ee68 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 19.19 posY: 3.37 posZ: -56.85 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Madame Labranche 1ee492.yaml b/unpacked/Bag All Player Cards 15bb07/Card Madame Labranche 1ee492.yaml index e85c7a0dc..0f288cab9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Madame Labranche 1ee492.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Madame Labranche 1ee492.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368828 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Mysterious Benefactress DragSelectable: true -GMNotes: "{\r\n \"id\": \"03198\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Patron.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03198\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally. + Patron.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 1ee492 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.53 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass (1) 378e84.yaml b/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass (1) 378e84.yaml index fd6a1b2d5..2bf323bbb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass (1) 378e84.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass (1) 378e84.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430637 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01040\",\r\n \"alternate_ids\": [\r\n \"01540\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 0,\r\n - \ \"level\": 1,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01040\",\n \"alternate_ids\": [\n \"01540\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Seeker\",\n \"cost\": 0,\n \"level\": + 1,\n \"traits\": \"Item. Tool.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 378e84 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 19.32 posY: 3.37 posZ: -57.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass 8cc0a6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass 8cc0a6.yaml index 071b5a56a..44b0f3e71 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass 8cc0a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Magnifying Glass 8cc0a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368421 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01030\",\r\n \"alternate_ids\": [\r\n \"01530\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01030\",\n \"alternate_ids\": [\n \"01530\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": + 0,\n \"traits\": \"Item. Tool.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 8cc0a6 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 19.43 posY: 3.37 posZ: -57.03 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Makeshift Trap aa897f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Makeshift Trap aa897f.yaml index c033f97b1..b2d610d5d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Makeshift Trap aa897f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Makeshift Trap aa897f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379124 ColorDiffuse: @@ -19,27 +19,26 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09100\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Improvised. Trap.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n - \ \"type\": \"Time\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"customizations\": [\r\n {\r\n \"name\": \"Improved Timer\",\r\n \"xp\": - 1,\r\n \"text\": \"When you play Makeshift Trap, you may increase or decrease - its uses by 1.\"\r\n },\r\n {\r\n \"name\": \"Tripwire\",\r\n \"xp\": - 1,\r\n \"text\": \"Only trigger Makeshift Trap\u2019s forced ability if there - are 1 or more enemies at attached location.\"\r\n },\r\n {\r\n \"name\": - \"Simple\",\r\n \"xp\": 2,\r\n \"text\": \"Makeshift Trap gains fast and - \u201Cplay during any \U0001F5F2 window.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Poisonous\",\r\n \"xp\": 2,\r\n \"text\": \"When you remove 1 or more - time from Makeshift Trap, deal 1 damage to an enemy at attached location.\"\r\n - \ },\r\n {\r\n \"name\": \"Remote Configuration\",\r\n \"xp\": 2,\r\n - \ \"text\": \"When you play Makeshift Trap, you may attach it to a revealed - connecting location.\"\r\n },\r\n {\r\n \"name\": \"Net\",\r\n \"xp\": - 3,\r\n \"text\": \"Non-Elite enemies at attached location cannot move or make - attacks of opportunity.\"\r\n },\r\n {\r\n \"name\": \"Explosive Device\",\r\n - \ \"xp\": 4,\r\n \"text\": \"When Makeshift Trap has no time and is discarded, - deal 3 damage to each enemy and investigator at attached location.\"\r\n }\r\n - \ ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09100\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Improvised. Trap.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Time\",\n \"token\": \"resource\"\n }\n ],\n \"customizations\": [\n + \ {\n \"name\": \"Improved Timer\",\n \"xp\": 1,\n \"text\": \"When + you play Makeshift Trap, you may increase or decrease its uses by 1.\"\n },\n + \ {\n \"name\": \"Tripwire\",\n \"xp\": 1,\n \"text\": \"Only trigger + Makeshift Trap\u2019s forced ability if there are 1 or more enemies at attached + location.\"\n },\n {\n \"name\": \"Simple\",\n \"xp\": 2,\n \"text\": + \"Makeshift Trap gains fast and \u201Cplay during any \U0001F5F2 window.\u201D\"\n + \ },\n {\n \"name\": \"Poisonous\",\n \"xp\": 2,\n \"text\": + \"When you remove 1 or more time from Makeshift Trap, deal 1 damage to an enemy + at attached location.\"\n },\n {\n \"name\": \"Remote Configuration\",\n + \ \"xp\": 2,\n \"text\": \"When you play Makeshift Trap, you may attach + it to a revealed connecting location.\"\n },\n {\n \"name\": \"Net\",\n + \ \"xp\": 3,\n \"text\": \"Non-Elite enemies at attached location cannot + move or make attacks of opportunity.\"\n },\n {\n \"name\": \"Explosive + Device\",\n \"xp\": 4,\n \"text\": \"When Makeshift Trap has no time and + is discarded, deal 3 damage to each enemy and investigator at attached location.\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: aa897f Grid: true GridProjection: false @@ -63,11 +62,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Making Preparations 18247d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Making Preparations 18247d.yaml index cf0f3e38e..c82001b4a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Making Preparations 18247d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Making Preparations 18247d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379130 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09106\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Dilemma. Tactic.\",\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09106\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Dilemma. Tactic.\",\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 18247d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 4f3637.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 4f3637.yaml new file mode 100644 index 000000000..aeb23d711 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 4f3637.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 55101 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '551': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907490/4AAE686A793E66311FF78890309D20670A329D16/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907034/013ED775CA50C6FC71731E4FBAEBF1ECA8C68F1E/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: true +Description: The Researcher +DragSelectable: true +GMNotes: "{\n \"id\": \"06002-t\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Assistant. Scholar.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 5,\n \"combatIcons\": 1,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dream-Eaters\"\n}" +GUID: 4f3637 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Mandy Thompson (Taboo) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 16.86 + posY: 3.21 + posZ: -19.36 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 754b0a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 754b0a.yaml deleted file mode 100644 index c6f8fecc1..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson (Taboo) 754b0a.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558301 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5583': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/2053112076591067181/7B2A1D7E6E8E8ED36BD16FB7C81827DCD33CEB90/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591067324/8F90B8FDA7E5F0E7B2D9D548397D93A5102FD4BD/ - NumHeight: 2 - NumWidth: 2 - Type: 0 - UniqueBack: true -Description: The Researcher -DragSelectable: true -GMNotes: "{\r\n \"id\": \"06002-t\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Assistant. Scholar.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 5,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" -GUID: 754b0a -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Mandy Thompson (Taboo) -SidewaysCard: true -Snap: true -Sticky: true -Tags: -- Investigator -- PlayerCard -Tooltip: true -Transform: - posX: 98.64 - posY: 1.95 - posZ: 13.55 - rotX: 2.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 1.15 - scaleY: 1.0 - scaleZ: 1.15 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 12d3de.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 12d3de.yaml index 012181b9e..b65c2051f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 12d3de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 12d3de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274012 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.13 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 57d586.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 57d586.yaml index d57d58487..40948f2a6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 57d586.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mandy Thompson 57d586.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536333 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Researcher DragSelectable: true -GMNotes: "{\r\n \"id\": \"06002\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Assistant. Scholar.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 5,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06002\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Assistant. Scholar.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 5,\n \"combatIcons\": 1,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 57d586 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.84 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Manipulate Destiny (2) 5606b3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Manipulate Destiny (2) 5606b3.yaml index 456421ed0..aff2a1433 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Manipulate Destiny (2) 5606b3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Manipulate Destiny (2) 5606b3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232110 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07162\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07162\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Spell.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 5606b3 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 3.92 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (1) c55160.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (1) c55160.yaml index fe3dfd6a6..269fd8643 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (1) c55160.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (1) c55160.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226333 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03229\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Spirit. Bold.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03229\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Spirit. Bold.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: c55160 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.84 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (2) 14424c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (2) 14424c.yaml index 03fe1b9a0..351baffec 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (2) 14424c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mano a Mano (2) 14424c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545323 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60125\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spirit. Bold.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60125\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spirit. Bold.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 14424c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.08 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity (2) 982716.yaml b/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity (2) 982716.yaml index 7887d190b..f690ac2cc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity (2) 982716.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity (2) 982716.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538623 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60325\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Developed.\",\r\n \"agilityIcons\": - 3,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60325\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Developed.\",\n \"agilityIcons\": 3,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: '982716' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 3.97 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity 679b13.yaml b/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity 679b13.yaml index 467e4d0dc..e79df6608 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity 679b13.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Manual Dexterity 679b13.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368504 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01092\",\r\n \"alternate_ids\": [\r\n \"01592\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Innate.\",\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01092\",\n \"alternate_ids\": [\n \"01592\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Neutral\",\n \"level\": 0,\n \"traits\": \"Innate.\",\n + \ \"agilityIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: 679b13 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Map the Area 1760be.yaml b/unpacked/Bag All Player Cards 15bb07/Card Map the Area 1760be.yaml index 11ecdf052..7c6e848db 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Map the Area 1760be.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Map the Area 1760be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379041 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09048\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09048\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight. Tactic.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 1760be Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.4 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau 11122f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau 11122f.yaml index 3d72d5ddb..b6d47bf0c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau 11122f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau 11122f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272226 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Entertainer DragSelectable: true -GMNotes: "{\r\n \"id\": \"05006\",\r\n \"alternate_ids\": [\r\n \"99001\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Mystic\",\r\n \"traits\": - \"Performer. Sorcerer.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": 4,\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05006\",\n \"alternate_ids\": [\n \"99001\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Mystic\",\n \"traits\": \"Performer. Sorcerer.\",\n + \ \"willpowerIcons\": 4,\n \"intellectIcons\": 4,\n \"combatIcons\": 1,\n \"agilityIcons\": + 3,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 11122f Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 2.06 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau b05c03.yaml b/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau b05c03.yaml index 5f09b4f11..9f0e37802 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau b05c03.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Marie Lambeau b05c03.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272705 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05006-m\",\r\n \"alternate_ids\": [\r\n \"99001-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"05006-m\",\n \"alternate_ids\": [\n \"99001-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: b05c03 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 21.23 posY: 1.89 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mariner's Compass 4e2d75.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mariner's Compass 4e2d75.yaml index 23c7cfaef..de17860a9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mariner's Compass 4e2d75.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mariner's Compass 4e2d75.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553113 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07121\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07121\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 4e2d75 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.04 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan 01ac1b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan 01ac1b.yaml index 2fd9b4dbf..dd22c526a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan 01ac1b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan 01ac1b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270710 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Soldier DragSelectable: true -GMNotes: "{\r\n \"id\": \"03001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Veteran.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 5,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Veteran.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 5,\n \"agilityIcons\": 3,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 01ac1b Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.78 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan cc354d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan cc354d.yaml index 31299bd7f..78fb657e8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan cc354d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mark Harrigan cc354d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259610 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.85 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Marksmanship (1) 6a9021.yaml b/unpacked/Bag All Player Cards 15bb07/Card Marksmanship (1) 6a9021.yaml index 1df188543..ff12f7e5f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Marksmanship (1) 6a9021.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Marksmanship (1) 6a9021.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226339 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04104\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04104\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 6a9021 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.84 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Martyr's Vambrace (3) c795c8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Martyr's Vambrace (3) c795c8.yaml index cb8599bbe..885f9aeb7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Martyr's Vambrace (3) c795c8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Martyr's Vambrace (3) c795c8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379030 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Remnant of the Unknown DragSelectable: true -GMNotes: "{\r\n \"id\": \"09037\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Charm. Armor.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09037\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Charm. Armor.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The + Scarlet Keys\"\n}" GUID: c795c8 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 17.02 posY: 3.37 posZ: 66.02 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 (2) 725690.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 (2) 725690.yaml index bbade047e..c45087c10 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 (2) 725690.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 (2) 725690.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538619 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60321\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 5,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60321\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Investigator Packs\"\n}" GUID: '725690' Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 5.51 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 f32343.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 f32343.yaml index 61f46faca..1b9967d43 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 f32343.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mauser C96 f32343.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538604 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60306\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60306\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 5,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: f32343 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.08 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Meat Cleaver a57f19.yaml b/unpacked/Bag All Player Cards 15bb07/Card Meat Cleaver a57f19.yaml index 7b6071b73..bf1fc1dc6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Meat Cleaver a57f19.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Meat Cleaver a57f19.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277912 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05114\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05114\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: a57f19 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.0 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mechanic's Wrench 598ba0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mechanic's Wrench 598ba0.yaml index ef8d09cef..f98a694d2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mechanic's Wrench 598ba0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mechanic's Wrench 598ba0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379001 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08002\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Tool. Melee.\",\r\n \"combatIcons\": 2,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08002\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Tool. Melee.\",\n + \ \"combatIcons\": 2,\n \"wildIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 598ba0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.67 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Medical Student e419b4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Medical Student e419b4.yaml index 994d7f09c..95bbfe458 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Medical Student e419b4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Medical Student e419b4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378921 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08083\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic. Science.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08083\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian|Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Ally. Miskatonic. Science.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: e419b4 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.99 posY: 3.73 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Medical Texts (2) 0d3bfa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Medical Texts (2) 0d3bfa.yaml index cfdf21b17..9d8633299 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Medical Texts (2) 0d3bfa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Medical Texts (2) 0d3bfa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379028 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08038\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08038\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 0d3bfa Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.2 posY: 2.17 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Medical Texts 85822c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Medical Texts 85822c.yaml index e0303a1f3..8adad14d0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Medical Texts 85822c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Medical Texts 85822c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587202 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01535\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01535\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tome.\",\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 85822c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.81 posY: 3.32 posZ: 7.67 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Medical Texts ba16cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Medical Texts ba16cb.yaml index b669bd5f5..6d2e1e725 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Medical Texts ba16cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Medical Texts ba16cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368425 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01035\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01035\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tome.\",\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: ba16cb Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Medico Della Peste 6179d5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Medico Della Peste 6179d5.yaml index 0d31c7a40..941655bb2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Medico Della Peste 6179d5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Medico Della Peste 6179d5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 295602 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"82024\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Mask.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"82024\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Mask.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Standalone\"\n}" GUID: 6179d5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Meditative Trance ef46e9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Meditative Trance ef46e9.yaml index b55aa8c5a..04da9c4d2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Meditative Trance ef46e9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Meditative Trance ef46e9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379051 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08061\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08061\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Spirit.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: ef46e9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.08 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mi-Go Weapon 2fc31c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mi-Go Weapon 2fc31c.yaml index 9bf3a0756..41ea480a7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mi-Go Weapon 2fc31c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mi-Go Weapon 2fc31c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 233606 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"85031\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Weapon. Science.\",\r\n \"combatIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"85031\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Weapon. Science.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Standalone\"\n}" GUID: 2fc31c Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 3.72 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Miasmic Crystal bad631.yaml b/unpacked/Bag All Player Cards 15bb07/Card Miasmic Crystal bad631.yaml index e956203af..14cd8d71b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Miasmic Crystal bad631.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Miasmic Crystal bad631.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450309 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Strange Evidence DragSelectable: true -GMNotes: "{\r\n \"id\": \"08617\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Relic. Expedition.\",\r\n \"willpowerIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08617\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Relic. Expedition.\",\n \"willpowerIcons\": + 2,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: bad631 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 79.39 posY: 3.32 posZ: 7.89 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Michael Leigh (5) 573765.yaml b/unpacked/Bag All Player Cards 15bb07/Card Michael Leigh (5) 573765.yaml index 68422ba30..60cd54279 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Michael Leigh (5) 573765.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Michael Leigh (5) 573765.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378924 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Experienced Hunter DragSelectable: true -GMNotes: "{\r\n \"id\": \"08086\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Ally. Detective.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the - Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08086\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian|Seeker\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": + \"Ally. Detective.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Evidence\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: '573765' Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.99 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Microscope 48be49.yaml b/unpacked/Bag All Player Cards 15bb07/Card Microscope 48be49.yaml similarity index 61% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Microscope 48be49.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Microscope 48be49.yaml index 6685a49a8..b625dbecf 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Microscope 48be49.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Microscope 48be49.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 103 +CardID: 12103 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\n \"id\": \"10042\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n - \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. Tool. Science.\",\n \"intellectIcons\": - 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GMNotes: "{\n \"id\": \"10042\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool. Science.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" GUID: 48be49 Grid: true GridProjection: false @@ -43,14 +44,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -44.35 - posY: 3.23 - posZ: -105.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 82.47 + posY: 3.21 + posZ: 20.57 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (1) 5d6e57.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (1) 5d6e57.yaml index eb9846fc0..0d6a6d71d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (1) 5d6e57.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (1) 5d6e57.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230334 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01068\",\r\n \"alternate_ids\": [\r\n \"01568\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 1,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01068\",\n \"alternate_ids\": [\n \"01568\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": + \"Spell.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 5d6e57 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (3) e72762.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (3) e72762.yaml index d342e9f50..ba8f88001 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (3) e72762.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mind Wipe (3) e72762.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230351 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50008\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50008\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: e72762 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.97 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter (2) 9b1c5b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter (2) 9b1c5b.yaml index 1517a78e7..12e643376 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter (2) 9b1c5b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter (2) 9b1c5b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538824 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60226\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Insight.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60226\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Insight.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 9b1c5b Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.04 posY: 3.85 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter 8cf335.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter 8cf335.yaml index bc1dbd6cf..a6443efc2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter 8cf335.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mind over Matter 8cf335.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368408 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01036\",\r\n \"alternate_ids\": [\r\n \"01536\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01036\",\n \"alternate_ids\": [\n \"01536\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": + \"Insight.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 8cf335 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 19.07 posY: 3.37 posZ: -56.82 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mind's Eye (2) ad58aa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mind's Eye (2) ad58aa.yaml index b281b368b..3d8d5ca07 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mind's Eye (2) ad58aa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mind's Eye (2) ad58aa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527237 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06328\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06328\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane x2\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: ad58aa Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.17 posY: 3.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mineral Specimen 08dd86.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mineral Specimen 08dd86.yaml index 56bfa5463..6d668a185 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mineral Specimen 08dd86.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mineral Specimen 08dd86.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450310 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08618\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Relic. Expedition.\",\r\n \"intellectIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08618\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Relic. Expedition.\",\n \"intellectIcons\": + 2,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 08dd86 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 79.27 posY: 3.32 posZ: 8.26 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan 6c4c58.yaml b/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan 6c4c58.yaml index 555fa31d6..bcb5f0943 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan 6c4c58.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan 6c4c58.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270811 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Secretary DragSelectable: true -GMNotes: "{\r\n \"id\": \"03002\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Assistant.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03002\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Assistant.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 6c4c58 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.84 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan fe6430.yaml b/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan fe6430.yaml index 3167f44be..59557ed39 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan fe6430.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Minh Thi Phan fe6430.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259711 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.91 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Miskatonic Archaeology Funding (4) 1a1b58.yaml b/unpacked/Bag All Player Cards 15bb07/Card Miskatonic Archaeology Funding (4) 1a1b58.yaml index 2d4923f82..d3fc3fb06 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Miskatonic Archaeology Funding (4) 1a1b58.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Miskatonic Archaeology Funding (4) 1a1b58.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538830 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60232\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 4,\r\n \"traits\": \"Grant.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60232\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"level\": 4,\n \"traits\": \"Grant.\",\n \"permanent\": true,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 1a1b58 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Miss Doyle (1) e1aedf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Miss Doyle (1) e1aedf.yaml index 08803a15d..27d3a373b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Miss Doyle (1) e1aedf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Miss Doyle (1) e1aedf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440623 ColorDiffuse: @@ -19,12 +19,12 @@ CustomDeck: UniqueBack: false Description: Cat General of Ulthar DragSelectable: true -GMNotes: "{\r\n \"id\": \"06030\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Creature. Dreamlands.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06031\"\r\n },\r\n - \ {\r\n \"count\": 1,\r\n \"id\": \"06032\"\r\n },\r\n {\r\n \"count\": - 1,\r\n \"id\": \"06033\"\r\n }\r\n ],\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06030\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Ally. + Creature. Dreamlands.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": + \"06031\"\n },\n {\n \"count\": 1,\n \"id\": \"06032\"\n },\n + \ {\n \"count\": 1,\n \"id\": \"06033\"\n }\n ],\n \"wildIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: e1aedf Grid: true GridProjection: false @@ -49,11 +49,11 @@ Transform: posX: 8.97 posY: 4.72 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (2) 3d57b4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (2) 3d57b4.yaml index f2245189d..77b351509 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (2) 3d57b4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (2) 3d57b4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545206 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"53007\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return to the Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53007\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell.\",\n + \ \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 5,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Return to + the Forgotten Age\"\n}" GUID: 3d57b4 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.98 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (4) 68fce2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (4) 68fce2.yaml index 2236ea60d..c0c5d3e7b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (4) 68fce2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh (4) 68fce2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230357 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04271\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04271\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 5,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 68fce2 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.25 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh 5558f1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh 5558f1.yaml index bb17a8feb..d3a9b86f0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh 5558f1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mists of R'lyeh 5558f1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230326 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04029\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04029\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: 5558f1 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.01 posY: 3.85 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mitch Brown f91fd9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mitch Brown f91fd9.yaml index e00817b57..d59633d52 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mitch Brown f91fd9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mitch Brown f91fd9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 377042 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"wildIcons\": 2,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04006\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Ally. Wayfarer.\",\n + \ \"wildIcons\": 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: f91fd9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.06 posY: 3.84 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mk 1 Grenades (4) 0ab574.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mk 1 Grenades (4) 0ab574.yaml index 3907a71d7..9e508e1f2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mk 1 Grenades (4) 0ab574.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mk 1 Grenades (4) 0ab574.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378617 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05273\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Weapon. Ranged.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05273\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Item. Weapon. Ranged.\",\n \"combatIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: 0ab574 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 8.97 posY: 3.94 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mob Enforcer b239d7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mob Enforcer b239d7.yaml index 795dffd46..b81d05078 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mob Enforcer b239d7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mob Enforcer b239d7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527416 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Enemy DragSelectable: true -GMNotes: "{\r\n \"id\": \"01101\",\r\n \"alternate_ids\": [\r\n \"01601\"\r\n - \ ],\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n \"traits\": \"Humanoid. - Criminal.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01101\",\n \"alternate_ids\": [\n \"01601\"\n ],\n \"type\": + \"Enemy\",\n \"class\": \"Neutral\",\n \"traits\": \"Humanoid. Criminal.\",\n + \ \"weakness\": true,\n \"basicWeaknessCount\": 1,\n \"cycle\": \"Core\"\n}" GUID: b239d7 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 78.68 posY: 3.32 posZ: 26.53 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mob Goons fc1506.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mob Goons fc1506.yaml index 21235de6c..3dfaaf7da 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mob Goons fc1506.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mob Goons fc1506.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379002 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08003\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Criminal.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08003\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Criminal.\",\n \"weakness\": true,\n \"cycle\": \"Edge + of the Earth\"\n}" GUID: fc1506 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.79 posY: 3.33 posZ: 8.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Molly Maxwell 692ced.yaml b/unpacked/Bag All Player Cards 15bb07/Card Molly Maxwell 692ced.yaml index bb18b45e6..193594996 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Molly Maxwell 692ced.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Molly Maxwell 692ced.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 466112 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: The Exotic Morgana DragSelectable: true -GMNotes: "{\r\n \"id\": \"98017\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Assistant.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98017\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Ally. Assistant.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": + \"Promo\"\n}" GUID: 692ced Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.06 posY: 3.84 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Moment of Respite (3) 523b76.yaml b/unpacked/Bag All Player Cards 15bb07/Card Moment of Respite (3) 523b76.yaml index 0320447bd..d641a9a68 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Moment of Respite (3) 523b76.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Moment of Respite (3) 523b76.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368525 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02273\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02273\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 523b76 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Momentum (1) d753d7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Momentum (1) d753d7.yaml index 85e483fe4..c016632d2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Momentum (1) d753d7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Momentum (1) d753d7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380026 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06115\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06115\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 1,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: d753d7 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.91 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Money Talks (2) 67eb69.yaml b/unpacked/Bag All Player Cards 15bb07/Card Money Talks (2) 67eb69.yaml index 777436e30..0ee07d12c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Money Talks (2) 67eb69.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Money Talks (2) 67eb69.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379044 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08054\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Favor. Gambit.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08054\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Favor. Gambit.\",\n \"wildIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 67eb69 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.24 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Money Talks 276477.yaml b/unpacked/Bag All Player Cards 15bb07/Card Money Talks 276477.yaml index ff30c1a3d..17b01e6fb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Money Talks 276477.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Money Talks 276477.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527607 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05029\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Favor. Gambit.\",\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05029\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Favor. Gambit.\",\n \"cycle\": + \"The Circle Undone\"\n}" GUID: '276477' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.51 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer (5) e21854.yaml b/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer (5) e21854.yaml index 3e6cae468..6dc1a834a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer (5) e21854.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer (5) e21854.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226359 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02300\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 5,\r\n \"traits\": \"Spirit.\",\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02300\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 5,\n \"traits\": \"Spirit.\",\n \"combatIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: e21854 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.8 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer 63b3e5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer 63b3e5.yaml index 04e75949c..807d7feda 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer 63b3e5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Monster Slayer 63b3e5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545314 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60116\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60116\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 63b3e5 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.07 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Monstrous Transformation a49751.yaml b/unpacked/Bag All Player Cards 15bb07/Card Monstrous Transformation a49751.yaml index 7c3457bf3..483170e91 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Monstrous Transformation a49751.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Monstrous Transformation a49751.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 296804 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"81030\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Talent.\",\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"81030\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Talent.\",\n \"cycle\": \"Standalone\"\n}" GUID: a49751 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.03 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack 46b145.yaml b/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack 46b145.yaml index 61ef5d992..40e8e5eb3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack 46b145.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack 46b145.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379502 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Archeologist DragSelectable: true -GMNotes: "{\r\n \"id\": \"08007\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Wayfarer.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 5,\r\n \"cycle\": \"Edge of - the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08007\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Wayfarer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 5,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 46b145 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 53.27 posY: 3.14 posZ: 22.08 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack f74398.yaml b/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack f74398.yaml index 749da72b5..aad8641f1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack f74398.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Monterey Jack f74398.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379203 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.89 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Moon Pendant (2) 72deff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Moon Pendant (2) 72deff.yaml index 21d2f03fd..6d57b3da3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Moon Pendant (2) 72deff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Moon Pendant (2) 72deff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449531 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"54012\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Charm.\",\r\n \"cycle\": - \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54012\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Charm.\",\n \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 72deff Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.07 posY: 3.79 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual (2) ad3efc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual (2) ad3efc.yaml index 2b121636a..ca575aa43 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual (2) ad3efc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual (2) ad3efc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379117 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09093\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09093\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spell. Insight.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: ad3efc Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 16.74 posY: 3.34 posZ: 65.49 - rotX: 358.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 3 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual 1cd2bd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual 1cd2bd.yaml index 399e8a215..e4209160e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual 1cd2bd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Moonlight Ritual 1cd2bd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230306 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02267\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02267\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spell. Insight.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 1cd2bd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Moonstone 0d006f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Moonstone 0d006f.yaml index a0949cbcb..8a6dac020 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Moonstone 0d006f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Moonstone 0d006f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447731 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06203\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Dreamlands.\",\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06203\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Relic. Dreamlands.\",\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 0d006f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.05 posY: 3.83 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Motivational Speech 1b2331.yaml b/unpacked/Bag All Player Cards 15bb07/Card Motivational Speech 1b2331.yaml index 95527450f..c7604b633 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Motivational Speech 1b2331.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Motivational Speech 1b2331.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379600 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09028\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09028\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 1b2331 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.93 posY: 3.37 posZ: 65.89 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Moxie (1) 5fe780.yaml b/unpacked/Bag All Player Cards 15bb07/Card Moxie (1) 5fe780.yaml index 0e0bc2b6a..cd89d200a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Moxie (1) 5fe780.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Moxie (1) 5fe780.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315235 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03111\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Talent. Composure.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03111\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Talent. Composure.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 5fe780 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.94 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Moxie (3) 6b3a27.yaml b/unpacked/Bag All Player Cards 15bb07/Card Moxie (3) 6b3a27.yaml index 980b53511..da234f154 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Moxie (3) 6b3a27.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Moxie (3) 6b3a27.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379046 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08056\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Talent. Composure.\",\r\n \"willpowerIcons\": - 2,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08056\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Talent. Composure.\",\n \"willpowerIcons\": + 2,\n \"agilityIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 6b3a27 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.19 posY: 2.27 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 522279.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 522279.yaml new file mode 100644 index 000000000..3f147cc05 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 522279.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 313 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: Dealer in Secrets +DragSelectable: true +GMNotes: "{\n \"id\": \"05153-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Circle Undone\"\n}" +GUID: '522279' +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Mr. "Rook" (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -33.77 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 7fe728.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 7fe728.yaml deleted file mode 100644 index e292f21c0..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook (Taboo) 7fe728.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558212 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: Dealer in Secrets -DragSelectable: true -GMNotes: "{\r\n \"id\": \"05153-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: 7fe728 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Mr. "Rook" (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.62 - posY: 4.33 - posZ: -59.25 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook 1339b0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook 1339b0.yaml index 8df1e1179..640189ac2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook 1339b0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mr. Rook 1339b0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277811 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05153\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05153\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Circle + Undone\"\n}" GUID: 1339b0 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.0 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mysteries Remain 274daa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mysteries Remain 274daa.yaml index 4e9722dd3..5525e6672 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mysteries Remain 274daa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mysteries Remain 274daa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 370046 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98005\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98005\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": 1,\n \"combatIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Promo\"\n}" GUID: 274daa Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mysterious Raven 59e40d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mysterious Raven 59e40d.yaml index 8e9924391..135478134 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mysterious Raven 59e40d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mysterious Raven 59e40d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550807 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60509\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Creature.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60509\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Ally. + Creature.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 59e40d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Mystifying Song 3b8cb7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Mystifying Song 3b8cb7.yaml index c657bc4b8..52970c328 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Mystifying Song 3b8cb7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Mystifying Song 3b8cb7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444451 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05018\",\r\n \"alternate_ids\": [\r\n \"99002\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 3,\r\n - \ \"traits\": \"Spell. Song.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05018\",\n \"alternate_ids\": [\n \"99002\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Spell. Song.\",\n + \ \"wildIcons\": 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 3b8cb7 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.14 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Naomi O'Bannion 7f7ecc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Naomi O'Bannion 7f7ecc.yaml index 5c518b5ee..924973cf1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Naomi O'Bannion 7f7ecc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Naomi O'Bannion 7f7ecc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 233135 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Ruthless Tactician DragSelectable: true -GMNotes: "{\r\n \"id\": \"51052\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 5,\r\n \"traits\": \"Ally. Criminal. Syndicate.\",\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51052\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 5,\n \"traits\": \"Ally. Criminal. Syndicate.\",\n \"intellectIcons\": + 2,\n \"combatIcons\": 2,\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: 7f7ecc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.05 posY: 3.87 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Narcolepsy 57e648.yaml b/unpacked/Bag All Player Cards 15bb07/Card Narcolepsy 57e648.yaml index 8c98ec687..c7af3daca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Narcolepsy 57e648.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Narcolepsy 57e648.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 438127 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"06037\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06037\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: 57e648 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.74 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Narrow Escape f6ff32.yaml b/unpacked/Bag All Player Cards 15bb07/Card Narrow Escape f6ff32.yaml index b1a224925..dd18abbb7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Narrow Escape f6ff32.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Narrow Escape f6ff32.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368708 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03267\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03267\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Fortune.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: f6ff32 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.37 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 1806e5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 1806e5.yaml index a709b36d5..9590ef82d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 1806e5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 1806e5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274216 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.8 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 65588a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 65588a.yaml index 9fa351601..7570b8c71 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 65588a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nathaniel Cho 65588a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 234900 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Boxer DragSelectable: true -GMNotes: "{\r\n \"id\": \"60101\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Criminal. Warden.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 2,\r\n \"combatIcons\": 5,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60101\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Criminal. Warden.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 2,\n \"combatIcons\": 5,\n \"agilityIcons\": 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 65588a Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.61 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nature of the Beast (1) 9c4015.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nature of the Beast (1) 9c4015.yaml index 892752aef..c6fb7abcd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nature of the Beast (1) 9c4015.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nature of the Beast (1) 9c4015.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379135 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09111\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Dilemma. Insight.\",\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09111\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Dilemma. Insight.\",\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 9c4015 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nautical Prowess 9d6e9a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nautical Prowess 9d6e9a.yaml index d21101ad1..44719340d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nautical Prowess 9d6e9a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nautical Prowess 9d6e9a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444348 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98014\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Innate. Developed.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98014\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Innate. Developed.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Promo\"\n}" GUID: 9d6e9a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Neither Rain nor Snow 6da7c4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Neither Rain nor Snow 6da7c4.yaml index b1129c0a5..3354fb84d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Neither Rain nor Snow 6da7c4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Neither Rain nor Snow 6da7c4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550800 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60502\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"traits\": \"Innate. Developed.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60502\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Innate. Developed.\",\n \"wildIcons\": 3,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 6da7c4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.41 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.ttslua index 05bb7925b..92beb519a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.ttslua @@ -50,6 +50,7 @@ VALID_TOKENS = { } SHOW_MULTI_RELEASE = 3 +SHOW_MULTI_RETURN = 3 require("playercards/CardsThatSealTokens") end) @@ -78,6 +79,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -125,7 +131,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -134,7 +142,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -150,6 +158,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -185,7 +198,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -193,6 +206,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -204,8 +221,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -230,7 +247,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -253,7 +270,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -265,36 +282,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -315,11 +357,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -327,33 +373,163 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.yaml index c172ebf90..a12ba3a03 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nephthys (4) 5659d1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449601 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Huntress of Bast DragSelectable: true -GMNotes: "{\r\n \"id\": \"07262\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Ally. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07262\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Ally. + Blessed.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 2,\n \"cycle\": \"The + Innsmouth Conspiracy\"\n}" GUID: 5659d1 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.0 posY: 3.92 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Newspaper (2) 9bcdee.yaml b/unpacked/Bag All Player Cards 15bb07/Card Newspaper (2) 9bcdee.yaml index deeaa0ef3..6d84ecb97 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Newspaper (2) 9bcdee.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Newspaper (2) 9bcdee.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368847 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03313\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Item.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03313\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Item.\",\n + \ \"intellectIcons\": 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 9bcdee Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.95 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Newspaper ee20c9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Newspaper ee20c9.yaml index 974a16c7f..7d93ce489 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Newspaper ee20c9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Newspaper ee20c9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368826 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02155\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02155\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item.\",\n + \ \"intellectIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: ee20c9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.95 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nightmare Bauble (3) d6f6f1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nightmare Bauble (3) d6f6f1.yaml index 0946bde71..eaa5fc5ea 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nightmare Bauble (3) d6f6f1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nightmare Bauble (3) d6f6f1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448735 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06330\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Charm. Cursed.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 3,\r\n \"id\": \"06331\"\r\n }\r\n - \ ],\r\n \"willpowerIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06330\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. + Charm. Cursed.\",\n \"bonded\": [\n {\n \"count\": 3,\n \"id\": \"06331\"\n + \ }\n ],\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: d6f6f1 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.16 posY: 3.6 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nihilism fc4168.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nihilism fc4168.yaml index 6d62c0501..31632b394 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nihilism fc4168.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nihilism fc4168.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538702 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60404\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60404\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: fc4168 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.04 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nikola Tesla 03695f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nikola Tesla 03695f.yaml index 3fa0b743f..7b00c527b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nikola Tesla 03695f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nikola Tesla 03695f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 558002 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Renowned Inventor DragSelectable: true -GMNotes: "{\r\n \"id\": \"87014\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Scientist. Ally. Past.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"87014\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Scientist. Ally. Past.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 03695f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 79.06 posY: 3.33 posZ: 8.09 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nimble b8843c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nimble b8843c.yaml index 8a921a8cd..e794f2c33 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nimble b8843c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nimble b8843c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538615 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60317\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"agilityIcons\": 1,\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60317\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"agilityIcons\": 1,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: b8843c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.08 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nine of Rods (3) c7fe4a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nine of Rods (3) c7fe4a.yaml index 3551a8ccc..ba7aa7101 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nine of Rods (3) c7fe4a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nine of Rods (3) c7fe4a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449529 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Every Trial a Lesson DragSelectable: true -GMNotes: "{\r\n \"id\": \"54009\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"Return - to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54009\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"Return to the Circle Undone\"\n}" GUID: c7fe4a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.54 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nkosi Mabati (3) 6c5628.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nkosi Mabati (3) 6c5628.yaml index e6363927a..d4946f996 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nkosi Mabati (3) 6c5628.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nkosi Mabati (3) 6c5628.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378929 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Enigmatic Warlock DragSelectable: true -GMNotes: "{\r\n \"id\": \"08091\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Sorcerer.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08091\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian|Mystic\",\n \"cost\": 4,\n \"level\": 3,\n \"traits\": + \"Ally. Sorcerer.\",\n \"willpowerIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 6c5628 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.8 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned (5) 1f3f16.yaml b/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned (5) 1f3f16.yaml index c24634e4c..8bba5fbe8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned (5) 1f3f16.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned (5) 1f3f16.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430658 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03307\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 5,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03307\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 5,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 1f3f16 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.54 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned 44cf4a.yaml b/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned 44cf4a.yaml index 6610a33fa..c822e956a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned 44cf4a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card No Stone Unturned 44cf4a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368415 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03026\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03026\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Path to Carcosa\"\n}" GUID: 44cf4a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.03 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Norman Withers a5d9bb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Norman Withers a5d9bb.yaml index 5b5942048..29fef4a39 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Norman Withers a5d9bb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Norman Withers a5d9bb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379204 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08004-m\",\r\n \"alternate_ids\": [\r\n \"98007-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"08004-m\",\n \"alternate_ids\": [\n \"98007-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: a5d9bb Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272607 ColorDiffuse: @@ -85,10 +85,10 @@ States: posY: 1.49510384 posZ: 10.4751749 rotX: -1.76099633e-07 - rotY: 270.0 + rotY: 270 rotZ: -6.83984069e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 25.38 posY: 3.55 posZ: 2.79 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Norman Withers e0a155.yaml b/unpacked/Bag All Player Cards 15bb07/Card Norman Withers e0a155.yaml index 20cf186db..3bf428822 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Norman Withers e0a155.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Norman Withers e0a155.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379501 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Astronomer DragSelectable: true -GMNotes: "{\r\n \"id\": \"08004\",\r\n \"alternate_ids\": [\r\n \"98007\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Seeker\",\r\n \"traits\": - \"Miskatonic.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": 5,\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08004\",\n \"alternate_ids\": [\n \"98007\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Seeker\",\n \"traits\": \"Miskatonic.\",\n \"willpowerIcons\": + 4,\n \"intellectIcons\": 5,\n \"combatIcons\": 2,\n \"agilityIcons\": 1,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: e0a155 Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440900 ColorDiffuse: @@ -93,7 +93,7 @@ States: rotY: 179.994492 rotZ: -3.71937716e-07 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -15.85 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Not without a fight! d1d7fa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Not without a fight! d1d7fa.yaml index 72794a70c..dfa7d5fb6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Not without a fight! d1d7fa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Not without a fight! d1d7fa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368803 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03272\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03272\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: d1d7fa Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.81 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Nothing Left to Lose (3) f0389b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Nothing Left to Lose (3) f0389b.yaml index f3f53d033..70862be87 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Nothing Left to Lose (3) f0389b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Nothing Left to Lose (3) f0389b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448738 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06284\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06284\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: f0389b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.2 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Obfuscation 5ec6d0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Obfuscation 5ec6d0.yaml index 3343b71c0..00d681775 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Obfuscation 5ec6d0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Obfuscation 5ec6d0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587421 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07027\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07027\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 5ec6d0 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.04 posY: 3.95 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Obscure Studies c5d8a9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Obscure Studies c5d8a9.yaml index a9e636bbb..827a039d9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Obscure Studies c5d8a9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Obscure Studies c5d8a9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588202 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07008\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Insight.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07008\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Insight.\",\n \"wildIcons\": 3,\n \"cycle\": \"The + Innsmouth Conspiracy\"\n}" GUID: c5d8a9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Observed (4) cf5ac8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Observed (4) cf5ac8.yaml index 0a25f4c30..e0fe62e49 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Observed (4) cf5ac8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Observed (4) cf5ac8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449533 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"54013\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 4,\r\n \"traits\": \"Blessed.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54013\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"level\": 4,\n \"traits\": \"Blessed.\",\n \"permanent\": true,\n \"cycle\": + \"Return to the Circle Undone\"\n}" GUID: cf5ac8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.53 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Obsessive a2e7d7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Obsessive a2e7d7.yaml index 7cb596fbc..ccb69f9b2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Obsessive a2e7d7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Obsessive a2e7d7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538802 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60204\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60204\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: a2e7d7 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.08 posY: 3.76 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Obsidian Bracelet 972250.yaml b/unpacked/Bag All Player Cards 15bb07/Card Obsidian Bracelet 972250.yaml index 2f6dd3bc8..5dac8f300 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Obsidian Bracelet 972250.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Obsidian Bracelet 972250.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379017 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09024\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09024\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: '972250' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 13.24 posY: 2.21 posZ: 49.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Occult Evidence 3586e6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Occult Evidence 3586e6.yaml index a2e57802e..07d6f0b5b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Occult Evidence 3586e6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Occult Evidence 3586e6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582702 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06008\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Insight. Research.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06008\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Insight. Research.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 3586e6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.29 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Occult Invocation 010509.yaml b/unpacked/Bag All Player Cards 15bb07/Card Occult Invocation 010509.yaml index 1d93f3ca9..b8611da6e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Occult Invocation 010509.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Occult Invocation 010509.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538815 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60217\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60217\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 010509 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.56 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon (3) 71d99c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon (3) 71d99c.yaml index ca0987deb..6edf57e98 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon (3) 71d99c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon (3) 71d99c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449524 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"54004\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome. Occult.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 3,\r\n \"id\": \"05317\"\r\n }\r\n - \ ],\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54004\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Tome. Occult.\",\n \"bonded\": [\n {\n \"count\": 3,\n \"id\": \"05317\"\n + \ }\n ],\n \"intellectIcons\": 2,\n \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 71d99c Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon 5d6728.yaml b/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon 5d6728.yaml index c3c202fba..2953234a4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon 5d6728.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Occult Lexicon 5d6728.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 592120 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05316\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome. Occult.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 3,\r\n \"id\": \"05317\"\r\n }\r\n - \ ],\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05316\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tome. Occult.\",\n \"bonded\": [\n {\n \"count\": 3,\n \"id\": \"05317\"\n + \ }\n ],\n \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 5d6728 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.05 posY: 3.87 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Occult Scraps 6aea76.yaml b/unpacked/Bag All Player Cards 15bb07/Card Occult Scraps 6aea76.yaml index 08a140b74..5abe13e3c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Occult Scraps 6aea76.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Occult Scraps 6aea76.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587707 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07013\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07013\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item.\",\n \"weakness\": true,\n \"cycle\": \"The + Innsmouth Conspiracy\"\n}" GUID: 6aea76 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.17 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Occult Theory (1) 49a338.yaml b/unpacked/Bag All Player Cards 15bb07/Card Occult Theory (1) 49a338.yaml index b76afdb90..3847ca0da 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Occult Theory (1) 49a338.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Occult Theory (1) 49a338.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379055 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08065\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Practiced. Expert.\",\r\n \"dynamicIcons\": - true,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08065\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 1,\n \"traits\": \"Practiced. Expert.\",\n \"dynamicIcons\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 49a338 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.32 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Offer You Cannot Refuse e27c93.yaml b/unpacked/Bag All Player Cards 15bb07/Card Offer You Cannot Refuse e27c93.yaml index ea3ffeb06..fe99817ee 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Offer You Cannot Refuse e27c93.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Offer You Cannot Refuse e27c93.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545212 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"53013\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Pact.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53013\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Pact.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: e27c93 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.84 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore (3) 8a0060.yaml b/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore (3) 8a0060.yaml index b028c4755..c8e952c1b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore (3) 8a0060.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore (3) 8a0060.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448837 ColorDiffuse: @@ -19,12 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06279\",\r\n \"alternate_ids\": [\r\n \"01686\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 2,\r\n - \ \"level\": 3,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": - \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06279\",\n \"alternate_ids\": [\n \"01686\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": + 3,\n \"traits\": \"Item. Tome.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 8a0060 Grid: true GridProjection: false @@ -49,11 +48,11 @@ Transform: posX: 18.18 posY: 3.38 posZ: -57.02 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore 063fd8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore 063fd8.yaml index e87e8f804..b2ef57700 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore 063fd8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Old Book of Lore 063fd8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368431 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01031\",\r\n \"alternate_ids\": [\r\n \"01531\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 3,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01031\",\n \"alternate_ids\": [\n \"01531\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": + 0,\n \"traits\": \"Item. Tome.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 063fd8 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 19.69 posY: 3.37 posZ: -56.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Old Hunting Rifle (3) 44a37f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Old Hunting Rifle (3) 44a37f.yaml index 5318c051d..783f15d5e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Old Hunting Rifle (3) 44a37f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Old Hunting Rifle (3) 44a37f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314800 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04273\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 3,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04273\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 44a37f Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 3.8 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Old Keyring (3) e7d988.yaml b/unpacked/Bag All Player Cards 15bb07/Card Old Keyring (3) e7d988.yaml index fc47c2c68..e88d64a67 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Old Keyring (3) e7d988.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Old Keyring (3) e7d988.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379141 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09117\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Key\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09117\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Key\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: e7d988 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 16.72 posY: 3.38 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Old Keyring 5888da.yaml b/unpacked/Bag All Player Cards 15bb07/Card Old Keyring 5888da.yaml index 18475c6ce..28d9bacf3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Old Keyring 5888da.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Old Keyring 5888da.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550805 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60507\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": \"Key\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60507\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n + \ \"type\": \"Key\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 5888da Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.97 posY: 3.73 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Old Shotgun (2) 7eb1ec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Old Shotgun (2) 7eb1ec.yaml index 8740b85c6..ed84757a5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Old Shotgun (2) 7eb1ec.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Old Shotgun (2) 7eb1ec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378926 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08088\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 0,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08088\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian|Rogue\",\n \"cost\": 0,\n \"level\": 2,\n \"traits\": + \"Item. Weapon. Firearm.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 7eb1ec Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.19 posY: 2.42 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Olive McBride (2) 9683d2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Olive McBride (2) 9683d2.yaml new file mode 100644 index 000000000..ca578051c --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Olive McBride (2) 9683d2.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 91200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '912': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2195002645140651764/97A66D51D85628992E10826FF866E96E310FB177/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Tried Everything Once +DragSelectable: true +GMNotes: "{\n \"id\": \"10097\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Ally. + Witch.\",\n \"willpowerIcons\": 2,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 9683d2 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Olive McBride (2) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 9.13 + posY: 3.79 + posZ: -16.72 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Olive McBride 9683d0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Olive McBride 9683d0.yaml index f44514348..b5f4e1a9c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Olive McBride 9683d0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Olive McBride 9683d0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230321 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Will Try Anything Once DragSelectable: true -GMNotes: "{\r\n \"id\": \"04197\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Witch.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04197\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ally. + Witch.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 9683d0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) 2ebdf1.yaml b/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) 2ebdf1.yaml index 684dd6d48..c76017bbf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) 2ebdf1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) 2ebdf1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545209 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Permanent DragSelectable: true -GMNotes: "{\r\n \"id\": \"53010\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53010\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": + true,\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: 2ebdf1 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) b0c61c.yaml b/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) b0c61c.yaml index 81beebc5d..0e9e63e2e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) b0c61c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On Your Own (3) b0c61c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368858 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04236\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04236\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: b0c61c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.15 posY: 4.14 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On the Hunt (3) a336de.yaml b/unpacked/Bag All Player Cards 15bb07/Card On the Hunt (3) a336de.yaml index 6004f5fcc..7c4732c80 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On the Hunt (3) a336de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On the Hunt (3) a336de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379018 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08028\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Edge of - the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08028\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the + Earth\"\n}" GUID: a336de Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.13 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On the Hunt a13ca4.yaml b/unpacked/Bag All Player Cards 15bb07/Card On the Hunt a13ca4.yaml index 6f083ca28..9c46da1df 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On the Hunt a13ca4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On the Hunt a13ca4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226314 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03263\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03263\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: a13ca4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.03 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On the Lam ea6d44.yaml b/unpacked/Bag All Player Cards 15bb07/Card On the Lam ea6d44.yaml index 6ea53d115..970abf3c8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On the Lam ea6d44.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On the Lam ea6d44.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586823 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Signature DragSelectable: true -GMNotes: "{\r\n \"id\": \"01010\",\r\n \"alternate_ids\": [\r\n \"01510\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 1,\r\n - \ \"traits\": \"Tactic.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n - \ \"wildIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01010\",\n \"alternate_ids\": [\n \"01510\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Neutral\",\n \"cost\": 1,\n \"traits\": \"Tactic.\",\n + \ \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 2,\n \"cycle\": + \"Core\"\n}" GUID: ea6d44 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On the Mend ac3502.yaml b/unpacked/Bag All Player Cards 15bb07/Card On the Mend ac3502.yaml index cf175e957..0cad66734 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On the Mend ac3502.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On the Mend ac3502.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587703 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09006\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Innate.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09006\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Innate.\",\n \"wildIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: ac3502 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 15.8 posY: 2.21 posZ: 59.63 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On the Trail (1) 4e4179.yaml b/unpacked/Bag All Player Cards 15bb07/Card On the Trail (1) 4e4179.yaml index d7dcf9b92..209d723ad 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On the Trail (1) 4e4179.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On the Trail (1) 4e4179.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378922 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08084\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian|Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08084\",\n \"type\": \"Event\",\n \"class\": \"Guardian|Seeker\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Insight. Tactic.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 4e4179 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.41 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card On the Trail (3) b94090.yaml b/unpacked/Bag All Player Cards 15bb07/Card On the Trail (3) b94090.yaml index af49eaa14..635825ca6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card On the Trail (3) b94090.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card On the Trail (3) b94090.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378923 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08085\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian|Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of - the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08085\",\n \"type\": \"Event\",\n \"class\": \"Guardian|Seeker\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Insight. Tactic.\",\n \"intellectIcons\": + 2,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: b94090 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.19 posY: 2.6 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card One in the Chamber 919856.yaml b/unpacked/Bag All Player Cards 15bb07/Card One in the Chamber 919856.yaml index 9550e531c..4b0b0fe48 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card One in the Chamber 919856.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card One in the Chamber 919856.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379022 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09029\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Fortune. Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 1,\r\n - \ \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09029\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Fortune. Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 1,\n \"type\": + \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: '919856' Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 17.02 posY: 3.33 posZ: 65.98 - rotX: 356.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 356 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch (5) 8ffa44.yaml b/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch (5) 8ffa44.yaml index 599bec04c..3f76c5b37 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch (5) 8ffa44.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch (5) 8ffa44.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545330 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60132\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 5,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"combatIcons\": - 4,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60132\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 5,\n \"traits\": \"Spirit. Tactic.\",\n \"combatIcons\": + 4,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 8ffa44 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch 22bb1e.yaml b/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch 22bb1e.yaml index 4963eb620..daed897a6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch 22bb1e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card One-Two Punch 22bb1e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545315 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60117\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60117\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spirit. Tactic.\",\n \"combatIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 22bb1e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle (4) 647c62.yaml b/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle (4) 647c62.yaml index e91ce0d45..f6ff6b55c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle (4) 647c62.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle (4) 647c62.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379122 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09098\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Charm.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09098\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Item. + Charm.\",\n \"agilityIcons\": 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 647c62 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.74 posY: 3.35 posZ: 65.49 - rotX: 359.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle 95f4b0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle 95f4b0.yaml index ddd4f0651..f770ae6a2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle 95f4b0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Onyx Pentacle 95f4b0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379109 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09085\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09085\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 95f4b0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Oops! (2) 70772b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Oops! (2) 70772b.yaml index a67d558df..ccaf5f44f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Oops! (2) 70772b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Oops! (2) 70772b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314905 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51009\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Fortune.\",\r\n \"combatIcons\": - 2,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51009\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Fortune.\",\n \"combatIcons\": + 2,\n \"agilityIcons\": 1,\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: 70772b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.83 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Oops! 59d89b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Oops! 59d89b.yaml index c7878b771..a47e12f1a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Oops! 59d89b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Oops! 59d89b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368815 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02113\",\r\n \"alternate_ids\": [\r\n \"60518\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"combatIcons\": 2,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02113\",\n \"alternate_ids\": [\n \"60518\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Fortune.\",\n \"combatIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 59d89b Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.16 posY: 4.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Open Gate a33acd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Open Gate a33acd.yaml index 3aa0363a4..a01daf8fb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Open Gate a33acd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Open Gate a33acd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444024 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06029\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06029\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: a33acd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.79 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Opportunist (2) 63f145.yaml b/unpacked/Bag All Player Cards 15bb07/Card Opportunist (2) 63f145.yaml index 8d5a71dea..3d4ca42da 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Opportunist (2) 63f145.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Opportunist (2) 63f145.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315241 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02231\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Developed.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02231\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Developed.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 63f145 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Opportunist a88392.yaml b/unpacked/Bag All Player Cards 15bb07/Card Opportunist a88392.yaml index 7e85a2434..635818588 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Opportunist a88392.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Opportunist a88392.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261702 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01053\",\r\n \"alternate_ids\": [\r\n \"60319\",\r\n - \ \"01553\"\r\n ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n \"level\": - 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01053\",\n \"alternate_ids\": [\n \"60319\",\n \"01553\"\n + \ ],\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n \"level\": 0,\n \"traits\": + \"Innate.\",\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: a88392 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ornate Bow (3) 2acced.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ornate Bow (3) 2acced.yaml index f533b455d..5bab964ba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ornate Bow (3) 2acced.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ornate Bow (3) 2acced.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368528 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04204\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Weapon. Ranged.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 1,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04204\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Neutral\",\n \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Weapon. Ranged.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 1,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 2acced Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.59 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Orphic Theory (1) d084d7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Orphic Theory (1) d084d7.yaml index 3141af37f..0e7276aef 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Orphic Theory (1) d084d7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Orphic Theory (1) d084d7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379044 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09051\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09051\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: d084d7 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Otherworld Codex (2) df0e22.yaml b/unpacked/Bag All Player Cards 15bb07/Card Otherworld Codex (2) df0e22.yaml index 2b19ff71d..c667a983f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Otherworld Codex (2) df0e22.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Otherworld Codex (2) df0e22.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379930 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06158\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06158\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Item. + Tome.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: df0e22 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.11 posY: 3.67 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Otherworldly Compass (2) 19ab7c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Otherworldly Compass (2) 19ab7c.yaml index 0cdda2217..cb56772e2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Otherworldly Compass (2) 19ab7c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Otherworldly Compass (2) 19ab7c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430647 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04194\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04194\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Relic.\",\n \"intellectIcons\": 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 19ab7c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.84 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Out of Body Experience d64b8f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Out of Body Experience d64b8f.yaml index b24b7532e..d32b6c056 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Out of Body Experience d64b8f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Out of Body Experience d64b8f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235822 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Madness. Paradox. DragSelectable: true -GMNotes: "{\r\n \"id\": \"04264\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness. Paradox.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04264\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness. Paradox.\",\n \"weakness\": true,\n \"cycle\": \"The + Forgotten Age\"\n}" GUID: d64b8f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.04 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Overpower (2) 017e1f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Overpower (2) 017e1f.yaml index 2defaa83e..d12353168 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Overpower (2) 017e1f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Overpower (2) 017e1f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545324 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60126\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Practiced. Expert.\",\r\n \"combatIcons\": 3,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60126\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 2,\n \"traits\": \"Practiced. Expert.\",\n \"combatIcons\": 3,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 017e1f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Overpower 5ab9f4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Overpower 5ab9f4.yaml index c5d4dfc44..d870ec85b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Overpower 5ab9f4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Overpower 5ab9f4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368502 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01091\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"combatIcons\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01091\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"combatIcons\": 2,\n \"cycle\": + \"Core\"\n}" GUID: 5ab9f4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 4.01 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Overpower e0881e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Overpower e0881e.yaml index 7842538f1..95ff18430 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Overpower e0881e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Overpower e0881e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587208 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01591\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"combatIcons\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01591\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"combatIcons\": 2,\n \"cycle\": + \"Core\"\n}" GUID: e0881e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.81 posY: 3.32 posZ: 7.67 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Overzealous 88a9b3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Overzealous 88a9b3.yaml index 7ad0ccff6..2a4910172 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Overzealous 88a9b3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Overzealous 88a9b3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431110 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"03040\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03040\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 2,\n + \ \"cycle\": \"The Path to Carcosa\"\n}" GUID: 88a9b3 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.72 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Painkillers 0c859f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Painkillers 0c859f.yaml index 67d64902e..f68bcc400 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Painkillers 0c859f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Painkillers 0c859f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368513 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02117\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02117\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 0c859f Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.99 posY: 3.73 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Panic 93e52d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Panic 93e52d.yaml index dea3155d2..3604b8ae7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Panic 93e52d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Panic 93e52d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378919 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08132\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08132\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 93e52d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.41 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pantalone adf028.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pantalone adf028.yaml index 65673eb80..d6e6bc4d4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pantalone adf028.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pantalone adf028.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 295603 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"82025\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Mask.\",\r\n \"intellectIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"82025\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Mask.\",\n \"intellectIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Standalone\"\n}" GUID: adf028 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.88 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Paradimensional Understanding 3c3dfa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Paradimensional Understanding 3c3dfa.yaml index 4da755dab..d7cabb967 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Paradimensional Understanding 3c3dfa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Paradimensional Understanding 3c3dfa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588605 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09767\",\r\n \"type\": \"Treachery\",\r\n \"traits\": - \"Madness. Paradox.\",\r\n \"weakness\": true,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09767\",\n \"type\": \"Treachery\",\n \"traits\": \"Madness. + Paradox.\",\n \"weakness\": true,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 3c3dfa Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 82.2 posY: 3.3 posZ: 23.05 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Paradoxical Covenant (2) 541ee9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Paradoxical Covenant (2) 541ee9.yaml index 26a41a606..83c76e993 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Paradoxical Covenant (2) 541ee9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Paradoxical Covenant (2) 541ee9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553112 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07120\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Covenant. Blessed. Cursed.\",\r\n \"permanent\": - true,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07120\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"startsInPlay\": true,\n \"level\": 2,\n \"traits\": \"Covenant. Blessed. Cursed.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 541ee9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.07 posY: 3.86 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates (2) 583026.yaml b/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates (2) 583026.yaml index 50b96ebe9..49f45e8c9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates (2) 583026.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates (2) 583026.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379056 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08066\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Augury.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08066\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Augury.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: '583026' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.3 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates 47bdba.yaml b/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates 47bdba.yaml index 306879004..4591438cd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates 47bdba.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Parallel Fates 47bdba.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538713 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60415\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Augury.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60415\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Augury.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 47bdba Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.88 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Paranoia c17498.yaml b/unpacked/Bag All Player Cards 15bb07/Card Paranoia c17498.yaml index 2f7c27c83..e353b37c0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Paranoia c17498.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Paranoia c17498.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527401 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"01097\",\r\n \"alternate_ids\": [\r\n \"01597\"\r\n - \ ],\r\n \"type\": \"Treachery\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01097\",\n \"alternate_ids\": [\n \"01597\"\n ],\n \"type\": + \"Treachery\",\n \"class\": \"Neutral\",\n \"traits\": \"Madness.\",\n \"weakness\": + true,\n \"basicWeaknessCount\": 2,\n \"cycle\": \"Core\"\n}" GUID: c17498 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 78.88 posY: 3.29 posZ: 26.84 - rotX: 358.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) ecbea8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) 305e37.yaml similarity index 51% rename from unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) ecbea8.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) 305e37.yaml index 854dc76c1..0c8e61864 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) ecbea8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) (Taboo) 305e37.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450602 +CardID: 312 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02108-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Talent.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" -GUID: ecbea8 +GMNotes: "{\n \"id\": \"02108-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Talent.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: 305e37 Grid: true GridProjection: false Hands: true @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.03 - posY: 3.68 - posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -19.75 + posY: 3.45 + posZ: -22.49 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) 7f99cc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) 7f99cc.yaml index f0076528f..662987ea5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) 7f99cc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pathfinder (1) 7f99cc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430641 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02108\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Talent.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02108\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Talent.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 7f99cc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway 877f4d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway 877f4d.yaml index 7b25a388d..4a73d1ff3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway 877f4d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway 877f4d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274014 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.98 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway a7b79f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway a7b79f.yaml index b9f5945c8..c3bfb78e5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway a7b79f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Patrice Hathaway a7b79f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536635 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Violinist DragSelectable: true -GMNotes: "{\r\n \"id\": \"06005\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Performer. Cursed.\",\r\n \"willpowerIcons\": - 4,\r\n \"intellectIcons\": 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06005\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Performer. Cursed.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 2,\n \"combatIcons\": 2,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: a7b79f Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.91 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Patrice's Violin ea0007.yaml b/unpacked/Bag All Player Cards 15bb07/Card Patrice's Violin ea0007.yaml index 9fa8e25f1..47210c50b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Patrice's Violin ea0007.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Patrice's Violin ea0007.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586210 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: My Muse DragSelectable: true -GMNotes: "{\r\n \"id\": \"06016\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Instrument.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06016\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Instrument.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: ea0007 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.12 posY: 3.94 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pay Day (1) 9f0b34.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pay Day (1) 9f0b34.yaml index 184a18246..f033ea712 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pay Day (1) 9f0b34.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pay Day (1) 9f0b34.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315262 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04233\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Illicit. Fated.\",\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04233\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Illicit. Fated.\",\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 9f0b34 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.12 posY: 4.02 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pay Your Due 5b6c9f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pay Your Due 5b6c9f.yaml index 74500d980..04f5ab794 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pay Your Due 5b6c9f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pay Your Due 5b6c9f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379150 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"09126\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 10,\r\n \"traits\": \"Pact.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09126\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 10,\n \"traits\": \"Pact.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 5b6c9f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 02b9b9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 02b9b9.yaml new file mode 100644 index 000000000..52c5f98e7 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 02b9b9.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 308 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: of Nothing at All +DragSelectable: true +GMNotes: "{\n \"id\": \"06022-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Item. Relic.\",\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" +GUID: 02b9b9 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Pendant of the Queen (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -40.54 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 6047d6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 6047d6.yaml deleted file mode 100644 index 1aa006bee..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen (Taboo) 6047d6.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 584709 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5847': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 - Type: 0 - UniqueBack: false -Description: Of Nothing at All -DragSelectable: true -GMNotes: "{\r\n \"id\": \"06022-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"traits\": \"Item. Relic.\",\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" -GUID: 6047d6 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Pendant of the Queen (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 8.97 - posY: 4.11 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen 9b0dcf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen 9b0dcf.yaml index 0f4695b24..3c0e841aa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen 9b0dcf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pendant of the Queen 9b0dcf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 441027 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Of Nothing at All DragSelectable: true -GMNotes: "{\r\n \"id\": \"06022\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"traits\": \"Item. Relic.\",\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06022\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker\",\n \"traits\": \"Item. Relic.\",\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 9b0dcf Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.14 posY: 3.75 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Penny White 73bccf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Penny White 73bccf.yaml index 460c44509..397788ea7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Penny White 73bccf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Penny White 73bccf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 312513 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: The Nightmare is Over DragSelectable: true -GMNotes: "{\r\n \"id\": \"05260\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Assistant.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05260\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Assistant.\",\n \"willpowerIcons\": 1,\n + \ \"wildIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 73bccf Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.9 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Perception (2) 96b5ed.yaml b/unpacked/Bag All Player Cards 15bb07/Card Perception (2) 96b5ed.yaml index 786d3bb54..2a8c7d13f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Perception (2) 96b5ed.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Perception (2) 96b5ed.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538826 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60228\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Practiced. Expert.\",\r\n \"intellectIcons\": - 3,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60228\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 2,\n \"traits\": \"Practiced. Expert.\",\n \"intellectIcons\": 3,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 96b5ed Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.72 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Perception c6ac19.yaml b/unpacked/Bag All Player Cards 15bb07/Card Perception c6ac19.yaml index ddc5d5d71..06a633f0b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Perception c6ac19.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Perception c6ac19.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368506 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01090\",\r\n \"alternate_ids\": [\r\n \"01590\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Practiced.\",\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01090\",\n \"alternate_ids\": [\n \"01590\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Neutral\",\n \"level\": 0,\n \"traits\": \"Practiced.\",\n + \ \"intellectIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: c6ac19 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Perseverance 0a390e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Perseverance 0a390e.yaml index f08f6dec2..ca6af3839 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Perseverance 0a390e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Perseverance 0a390e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368817 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04111\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04111\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 0a390e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.24 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Persuasion (Taboo) 821d99.yaml b/unpacked/Bag All Player Cards 15bb07/Card Persuasion (Taboo) 821d99.yaml new file mode 100644 index 000000000..2a31b9aa5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Persuasion (Taboo) 821d99.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 319 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"04105-t\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Trick.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" +GUID: 821d99 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Persuasion (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -58.59 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Persuasion 1b0235.yaml b/unpacked/Bag All Player Cards 15bb07/Card Persuasion 1b0235.yaml index 2036cc64a..778cd3ecf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Persuasion 1b0235.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Persuasion 1b0235.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368414 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04105\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Trick.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04105\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Trick.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 1b0235 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pet Oozeling 26398a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pet Oozeling 26398a.yaml index d17789cef..770f634fd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pet Oozeling 26398a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pet Oozeling 26398a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 233605 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"85030\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Monster. Ooze.\",\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"85030\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Monster. Ooze.\",\n \"agilityIcons\": 1,\n + \ \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 26398a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 3.39 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pete's Guitar 876557.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pete's Guitar 876557.yaml index ca9291d68..0461be841 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pete's Guitar 876557.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pete's Guitar 876557.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 381100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"90047\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Instrument.\",\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"90047\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Instrument.\",\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: '876557' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.27 posY: 1.06 posZ: 26.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre (2) e1e098.yaml b/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre (2) e1e098.yaml index 78e647fd2..c54f6bce2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre (2) e1e098.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre (2) e1e098.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368852 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Big Man on Campus DragSelectable: true -GMNotes: "{\r\n \"id\": \"02035\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02035\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Ally. + Miskatonic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: e1e098 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre ffdeb5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre ffdeb5.yaml index 07b57da1f..be5e22fa4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre ffdeb5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Peter Sylvestre ffdeb5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368832 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Big Man on Campus DragSelectable: true -GMNotes: "{\r\n \"id\": \"02033\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02033\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Miskatonic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: ffdeb5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.52 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Physical Training (2) d708d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Physical Training (2) d708d9.yaml index d749e0e2c..70451cce1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Physical Training (2) d708d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Physical Training (2) d708d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226343 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50001\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50001\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"combatIcons\": 2,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: d708d9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.22 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Physical Training (4) ab51ce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Physical Training (4) ab51ce.yaml index 65edfdaf9..f42baf511 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Physical Training (4) ab51ce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Physical Training (4) ab51ce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545329 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60131\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n - \ \"replenish\": 2,\r\n \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60131\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"combatIcons\": 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": + 2,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: ab51ce Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.03 posY: 3.69 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Physical Training 1165db.yaml b/unpacked/Bag All Player Cards 15bb07/Card Physical Training 1165db.yaml index 3ce7af3cb..07ab6ab78 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Physical Training 1165db.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Physical Training 1165db.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226323 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01017\",\r\n \"alternate_ids\": [\r\n \"60108\",\r\n - \ \"01517\"\r\n ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01017\",\n \"alternate_ids\": [\n \"60108\",\n \"01517\"\n + \ ],\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": + 0,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n + \ \"cycle\": \"Core\"\n}" GUID: 1165db Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.91 posY: 3.37 posZ: -57.24 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing (2) 2f4db2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing (2) 2f4db2.yaml index 74009705a..e474bed94 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing (2) 2f4db2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing (2) 2f4db2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315246 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03195\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Talent. Illicit.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03195\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Talent. Illicit.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 2f4db2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.02 posY: 4.13 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing da7c01.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing da7c01.yaml index 8207dd8e6..cd594b80e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing da7c01.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pickpocketing da7c01.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368625 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01046\",\r\n \"alternate_ids\": [\r\n \"01546\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent. Illicit.\",\r\n \"agilityIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01046\",\n \"alternate_ids\": [\n \"01546\"\n ],\n \"type\": + \"Asset\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Talent. Illicit.\",\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: da7c01 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pilfer (3) e503ce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pilfer (3) e503ce.yaml index 64ec46566..a65d65737 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pilfer (3) e503ce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pilfer (3) e503ce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538626 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60328\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60328\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: e503ce Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.96 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pilfer cc9563.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pilfer cc9563.yaml index 03f1c60fc..d1e5d4479 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pilfer cc9563.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pilfer cc9563.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538613 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60315\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60315\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: cc9563 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.24 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Pitchfork 45a724.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pitchfork 45a724.yaml similarity index 59% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Pitchfork 45a724.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Pitchfork 45a724.yaml index 528cf5920..9387e2e9f 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Pitchfork 45a724.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pitchfork 45a724.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 111 +CardID: 12111 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\n \"id\": \"10110\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n - \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. Tool. Weapon. Melee.\",\n - \ \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Feast of Hemlock - Vale\"\n}" +GMNotes: "{\n \"id\": \"10110\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tool. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" GUID: 45a724 Grid: true GridProjection: false @@ -44,14 +44,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -41.18 - posY: 3.23 - posZ: -108.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 82.47 + posY: 3.21 + posZ: 25.08 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Plan of Action 96fd5d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Plan of Action 96fd5d.yaml index 64404afb7..0b45f8ccc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Plan of Action 96fd5d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Plan of Action 96fd5d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580418 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07024\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07024\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 96fd5d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.08 posY: 3.77 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Plucky (1) 86b9c5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Plucky (1) 86b9c5.yaml index 9ed32084e..9cc68d255 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Plucky (1) 86b9c5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Plucky (1) 86b9c5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368834 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03115\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Talent. Composure.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03115\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Talent. Composure.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 86b9c5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.76 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Plucky (3) 7a2fe9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Plucky (3) 7a2fe9.yaml index 43d40dee1..240ebdf6d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Plucky (3) 7a2fe9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Plucky (3) 7a2fe9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378910 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08081\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Talent. Composure.\",\r\n \"willpowerIcons\": - 2,\r\n \"intellectIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08081\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Talent. Composure.\",\n \"willpowerIcons\": + 2,\n \"intellectIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 7a2fe9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.96 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pnakotic Manuscripts (5) 344d98.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pnakotic Manuscripts (5) 344d98.yaml index d93dd4a43..15b566ac2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pnakotic Manuscripts (5) 344d98.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pnakotic Manuscripts (5) 344d98.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 262204 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Mind-Expanding Ideas DragSelectable: true -GMNotes: "{\r\n \"id\": \"04307\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 5,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04307\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 5,\n \"level\": 5,\n \"traits\": \"Item. + Relic. Tome.\",\n \"intellectIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n + \ {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 344d98 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.07 posY: 3.87 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pocket Multi Tool 7421ed.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pocket Multi Tool 7421ed.yaml index bdb43a656..5404379fe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pocket Multi Tool 7421ed.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pocket Multi Tool 7421ed.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379123 ColorDiffuse: @@ -19,25 +19,24 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09099\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"wildIcons\": - 1,\r\n \"customizations\": [\r\n {\r\n \"name\": \"Detachable\",\r\n \"xp\": - 1,\r\n \"text\": \"Other investigators at your location may use the ability - on Pocket Multi-Tool.\"\r\n },\r\n {\r\n \"name\": \"Pry Bar\",\r\n \"xp\": - 1,\r\n \"text\": \"You get an additional +1 skill value if this is during a - skill test on a treachery.\"\r\n },\r\n {\r\n \"name\": \"Sharpened Knife\",\r\n - \ \"xp\": 2,\r\n \"text\": \"You get an additional +1 skill value if this - is during an attack.\"\r\n },\r\n {\r\n \"name\": \"Signal Mirror\",\r\n - \ \"xp\": 2,\r\n \"text\": \"You get an additional +1 skill value if this - is during an evasion attempt.\"\r\n },\r\n {\r\n \"name\": \"Magnifying - Lens\",\r\n \"xp\": 2,\r\n \"text\": \"You get an additional +1 skill - value if this is during an investigation.\"\r\n },\r\n {\r\n \"name\": - \"Lucky Charm\",\r\n \"xp\": 3,\r\n \"text\": \"After you fail a skill - test, ready Pocket Multi Tool.\"\r\n },\r\n {\r\n \"name\": \"Spring-Loaded\",\r\n - \ \"xp\": 4,\r\n \"text\": \"Pocket Multi Tool\u2019s ability is now a - \U0001F5F2 ability with the trigger: \u201CWhen you would fail a skill test you - are performing, exhaust Pocket Multi Tool\u2026\u201D\"\r\n }\r\n ],\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09099\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"wildIcons\": 1,\n \"customizations\": [\n {\n \"name\": \"Detachable\",\n + \ \"xp\": 1,\n \"text\": \"Other investigators at your location may use + the ability on Pocket Multi-Tool.\"\n },\n {\n \"name\": \"Pry Bar\",\n + \ \"xp\": 1,\n \"text\": \"You get an additional +1 skill value if this + is during a skill test on a treachery.\"\n },\n {\n \"name\": \"Sharpened + Knife\",\n \"xp\": 2,\n \"text\": \"You get an additional +1 skill value + if this is during an attack.\"\n },\n {\n \"name\": \"Signal Mirror\",\n + \ \"xp\": 2,\n \"text\": \"You get an additional +1 skill value if this + is during an evasion attempt.\"\n },\n {\n \"name\": \"Magnifying Lens\",\n + \ \"xp\": 2,\n \"text\": \"You get an additional +1 skill value if this + is during an investigation.\"\n },\n {\n \"name\": \"Lucky Charm\",\n + \ \"xp\": 3,\n \"text\": \"After you fail a skill test, ready Pocket Multi + Tool.\"\n },\n {\n \"name\": \"Spring-Loaded\",\n \"xp\": 4,\n \"text\": + \"Pocket Multi Tool\u2019s ability is now a \U0001F5F2 ability with the trigger: + \u201CWhen you would fail a skill test you are performing, exhaust Pocket Multi + Tool\u2026\u201D\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 7421ed Grid: true GridProjection: false @@ -62,11 +61,11 @@ Transform: posX: 16.77 posY: 3.37 posZ: 65.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pocket Portal 35e8e2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pocket Portal 35e8e2.yaml index 04ce325ba..cbb4e81f5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pocket Portal 35e8e2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pocket Portal 35e8e2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 584027 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Doorway to Another World DragSelectable: true -GMNotes: "{\r\n \"id\": \"86052\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Spell.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"86052\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Spell.\",\n \"wildIcons\": 2,\n \"cycle\": \"Standalone\"\n}" GUID: 35e8e2 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Pocket Telescope 98eb87.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pocket Telescope 98eb87.yaml index 5ac451f69..8177d594f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Pocket Telescope 98eb87.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pocket Telescope 98eb87.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378935 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08097\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08097\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker|Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 98eb87 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.62 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Poisoned 819f52.yaml b/unpacked/Bag All Player Cards 15bb07/Card Poisoned 819f52.yaml index 829eef249..3c7bab84f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Poisoned 819f52.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Poisoned 819f52.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235644 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Poision. DragSelectable: true -GMNotes: "{\r\n \"id\": \"04102\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Poison.\",\r\n \"permanent\": true,\r\n \"weakness\": - true,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04102\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Poison.\",\n \"permanent\": true,\n \"weakness\": true,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 819f52 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.01 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Police Badge (2) da46e0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Police Badge (2) da46e0.yaml index 5feac6b1f..d98a01288 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Police Badge (2) da46e0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Police Badge (2) da46e0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226346 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01027\",\r\n \"alternate_ids\": [\r\n \"01527\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 3,\r\n - \ \"level\": 2,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": 1,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01027\",\n \"alternate_ids\": [\n \"01527\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Accessory\",\n \"class\": \"Guardian\",\n \"cost\": + 3,\n \"level\": 2,\n \"traits\": \"Item.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: da46e0 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 19.07 posY: 3.37 posZ: -56.79 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Possessed 04b3a9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Possessed 04b3a9.yaml index 32f81e392..cca53fff0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Possessed 04b3a9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Possessed 04b3a9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450319 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness. DragSelectable: true -GMNotes: "{\r\n \"id\": \"08647\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08647\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 04b3a9 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 79.42 posY: 3.32 posZ: 7.65 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Powder of Ibn Ghazi f96ed0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Powder of Ibn Ghazi f96ed0.yaml index 00a84f076..a61b5cfe4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Powder of Ibn Ghazi f96ed0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Powder of Ibn Ghazi f96ed0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232951 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Seeing Things Unseen DragSelectable: true -GMNotes: "{\r\n \"id\": \"02219\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item.\",\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02219\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item.\",\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: f96ed0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Power Word (Taboo) dc1962.yaml b/unpacked/Bag All Player Cards 15bb07/Card Power Word (Taboo) dc1962.yaml new file mode 100644 index 000000000..a2c603b51 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Power Word (Taboo) dc1962.yaml @@ -0,0 +1,76 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 352 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"09081-t\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"intellectIcons\": + 1,\n \"customizations\": [\n {\n \"name\": \"Betray\",\n \"xp\": 1,\n + \ \"text\": \"Add the command: \u201C\u27D0 \u2018Betray.\u2019 Deal 1 damage + to any enemy at this enemy\u2019s location with an equal or lower fight value than + this enemy.\u201D\"\n },\n {\n \"name\": \"Cower\",\n \"xp\": 1,\n + \ \"text\": \"Add the command: \u201C\u27D0 \u2018Cower.\u2019 This enemy exhausts.\u201D\"\n + \ },\n {\n \"name\": \"Confess\",\n \"xp\": 1,\n \"text\": \"Add + the command: \u201C\u27D0 \u2018Confess.\u2019 Discover 1 clue at this enemy\u2019s + location if its health is equal to or higher than its location\u2019s shroud.\u201D\"\n + \ },\n {\n \"name\": \"Distract\",\n \"xp\": 1,\n \"text\": + \"Add the command: \u201C\u27D0 \u2018Distract.\u2019 Automatically evade any enemy + at this enemy\u2019s location with an equal or lower evade value than this enemy.\u201D\"\n + \ },\n {\n \"name\": \"Greater Control\",\n \"xp\": 2,\n \"text\": + \"Power Word gains \u201C: Return Power Word to your hand.\u201D\"\n },\n {\n + \ \"name\": \"Bonded\",\n \"xp\": 3,\n \"text\": \"You may activate + the parley ability on Power Word from up to one location away from the attached + enemy.\"\n },\n {\n \"name\": \"Tonguetwister\",\n \"xp\": 3,\n + \ \"text\": \"When you parley with Power Word, you may give up to two different + commands.\"\n },\n {\n \"name\": \"Thrice Spoken\",\n \"xp\": 3,\n + \ \"text\": \"You may include three copies of Power Word in your deck. When + you give a command using one copy, also give that command to each other enemy with + one of your copies of Power Word attached.\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" +GUID: dc1962 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Power Word (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -56.34 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.ttslua new file mode 100644 index 000000000..f89933890 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.ttslua @@ -0,0 +1,945 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/PowerWordUpgradeSheetTaboo") +end) +__bundle_register("playercards/customizable/PowerWordUpgradeSheetTaboo", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Customizable Cards: Power Word (Taboo) + +-- Color information for buttons +boxSize = 38 + +-- static values +xInitial = -0.933 +xOffset = 0.069 + +customizations = { + [1] = { + checkboxes = { + posZ = -0.905, + count = 1, + } + }, + [2] = { + checkboxes = { + posZ = -0.6, + count = 1, + } + }, + [3] = { + checkboxes = { + posZ = -0.42, + count = 1, + } + }, + [4] = { + checkboxes = { + posZ = -0.12, + count = 1, + } + }, + [5] = { + checkboxes = { + posZ = 0.18, + count = 2, + }, + }, + [6] = { + checkboxes = { + posZ = 0.38, + count = 3, + } + }, + [7] = { + checkboxes = { + posZ = 0.675, + count = 3, + }, + }, + [8] = { + checkboxes = { + posZ = 0.875, + count = 3, + }, + }, +} + +require("playercards/customizable/UpgradeSheetLibrary") +end) +__bundle_register("playercards/customizable/UpgradeSheetLibrary", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Common code for handling customizable card upgrade sheets +-- Define UI elements in the base card file, then include this +-- UI element definition is an array of tables, each with this structure. A row may include +-- checkboxes (number defined by count), a text field, both, or neither (if the row has custom +-- handling, as Living Ink does) +-- { +-- checkboxes = { +-- posZ = -0.71, +-- count = 1, +-- }, +-- textField = { +-- position = { 0.005, 0.25, -0.58 }, +-- width = 875 +-- } +-- } +-- Fields should also be defined for xInitial (left edge of the checkboxes) and xOffset (amount to +-- shift X from one box to the next) as well as boxSize (checkboxes) and inputFontSize. +-- +-- selectedUpgrades holds the state of checkboxes and text input, each element being: +-- selectedUpgrades[row] = { xp = #, text = "" } + +local playmatApi = require("playermat/PlaymatApi") + +-- Y position for UI elements. Visibility of checkboxes moves the checkbox inside the card object +-- when not selected. +local Y_VISIBLE = 0.25 +local Y_INVISIBLE = -0.5 + +-- Used for Summoned Servitor and Living Ink +local VECTOR_COLOR = { + unselected = { 0.5, 0.5, 0.5, 0.75 }, + mystic = { 0.597, 0.195, 0.796 } +} + +-- These match with ArkhamDB's way of storing the data in the dropdown menu +local SUMMONED_SERVITOR_SLOT_INDICES = { arcane = "1", ally = "0", none = "" } + +local rowCheckboxFirstIndex = { } +local rowInputIndex = { } +local selectedUpgrades = { } + +-- save state when going into bags / decks +function onDestroy() self.script_state = onSave() end + +function onSave() + return JSON.encode({ + selections = selectedUpgrades + }) +end + +-- Startup procedure +function onLoad(savedData) + if savedData ~= "" then + local loadedData = JSON.decode(savedData) + if loadedData.selections ~= nil then + selectedUpgrades = loadedData.selections + end + end + + selfId = getSelfId() + + maybeLoadLivingInkSkills() + createUi() + maybeUpdateLivingInkSkillDisplay() + maybeUpdateServitorSlotDisplay() + + self.addContextMenuItem("Clear Selections", function() resetSelections() end) + self.addContextMenuItem("Scale: 1x", function() self.setScale({ 1, 1, 1 }) end) + self.addContextMenuItem("Scale: 2x", function() self.setScale({ 2, 1, 2 }) end) + self.addContextMenuItem("Scale: 3x", function() self.setScale({ 3, 1, 3 }) end) +end + +-- Grabs the ID from the metadata for special functions (Living Ink, Summoned Servitor) +function getSelfId() + local metadata = JSON.decode(self.getGMNotes()) + return metadata.id +end + +function isUpgradeActive(row) + return customizations[row] ~= nil + and customizations[row].checkboxes ~= nil + and customizations[row].checkboxes.count ~= nil + and customizations[row].checkboxes.count > 0 + and selectedUpgrades[row] ~= nil + and selectedUpgrades[row].xp ~= nil + and selectedUpgrades[row].xp >= customizations[row].checkboxes.count +end + +function resetSelections() + selectedUpgrades = { } + updateDisplay() +end + +function createUi() + if customizations == nil then + return + end + for i = 1, #customizations do + if customizations[i].checkboxes ~= nil then + createRowCheckboxes(i) + end + if customizations[i].textField ~= nil then + createRowTextField(i) + end + end + maybeMakeLivingInkSkillSelectionButtons() + maybeMakeServitorSlotSelectionButtons() + updateDisplay() +end + +function createRowCheckboxes(rowIndex) + local checkboxes = customizations[rowIndex].checkboxes + rowCheckboxFirstIndex[rowIndex] = 0 + local previousButtons = self.getButtons() + if previousButtons ~= nil then + rowCheckboxFirstIndex[rowIndex] = #previousButtons + end + for col = 1, checkboxes.count do + local funcName = "checkboxRow" .. rowIndex .. "Col" .. col + local func = function() clickCheckbox(rowIndex, col) end + self.setVar(funcName, func) + local checkboxPos = getCheckboxPosition(rowIndex, col) + + self.createButton({ + click_function = funcName, + function_owner = self, + position = checkboxPos, + height = boxSize * 10, + width = boxSize * 10, + font_size = 1000, + scale = { 0.1, 0.1, 0.1 }, + color = { 0, 0, 0 }, + font_color = { 0, 0, 0 } + }) + end +end + +function getCheckboxPosition(row, col) + return { + x = xInitial + col * xOffset, + y = Y_VISIBLE, + z = customizations[row].checkboxes.posZ + } +end + +function createRowTextField(rowIndex) + local textField = customizations[rowIndex].textField + + rowInputIndex[rowIndex] = 0 + local previousInputs = self.getInputs() + if previousInputs ~= nil then + rowInputIndex[rowIndex] = #previousInputs + end + local funcName = "textbox" .. rowIndex + local func = function(_, _, val, sel) clickTextbox(rowIndex, val, sel) end + self.setVar(funcName, func) + + self.createInput({ + input_function = funcName, + function_owner = self, + label = "Click to type", + alignment = 2, + position = textField.position, + scale = { 0.1, 0.1, 0.1 }, + width = textField.width * 10, + height = inputFontsize * 10 + 75, + font_size = inputFontsize * 10.5, + color = "White", + value = "" + }) +end + +function updateDisplay() + for i = 1, #customizations do + updateRowDisplay(i) + end + maybeUpdateLivingInkSkillDisplay() + maybeUpdateServitorSlotDisplay() +end + +function updateRowDisplay(rowIndex) + if customizations[rowIndex].checkboxes ~= nil then + updateCheckboxes(rowIndex) + end + if customizations[rowIndex].textField ~= nil then + updateTextField(rowIndex) + end +end + +function updateCheckboxes(rowIndex) + local checkboxCount = customizations[rowIndex].checkboxes.count + local selected = 0 + if selectedUpgrades[rowIndex] ~= nil and selectedUpgrades[rowIndex].xp ~= nil then + selected = selectedUpgrades[rowIndex].xp + end + local checkboxIndex = rowCheckboxFirstIndex[rowIndex] + for col = 1, checkboxCount do + local pos = getCheckboxPosition(rowIndex, col) + if col <= selected then + pos.y = Y_VISIBLE + else + pos.y = Y_INVISIBLE + end + self.editButton({ + index = checkboxIndex, + position = pos + }) + checkboxIndex = checkboxIndex + 1 + end +end + +function updateTextField(rowIndex) + local inputIndex = rowInputIndex[rowIndex] + if selectedUpgrades[rowIndex] ~= nil and selectedUpgrades[rowIndex].text ~= nil then + self.editInput({ + index = inputIndex, + value = " " .. selectedUpgrades[rowIndex].text + }) + end +end + +function clickCheckbox(row, col, buttonIndex) + if selectedUpgrades[row] == nil then + selectedUpgrades[row] = { } + selectedUpgrades[row].xp = 0 + end + if selectedUpgrades[row].xp == col then + selectedUpgrades[row].xp = col - 1 + else + selectedUpgrades[row].xp = col + end + updateCheckboxes(row) + playmatApi.syncAllCustomizableCards() +end + +-- Updates saved value for given text box when it loses focus +function clickTextbox(rowIndex, value, selected) + if selected == false then + if selectedUpgrades[rowIndex] == nil then + selectedUpgrades[rowIndex] = { } + end + selectedUpgrades[rowIndex].text = value:gsub("^%s*(.-)%s*$", "%1") + -- Editing isn't actually done yet, and will block the update. Wait a frame so it's finished + Wait.frames(function() updateRowDisplay(rowIndex) end, 1) + end +end + +--------------------------------------------------------- +-- Living Ink related functions +--------------------------------------------------------- + +-- Builds the list of boolean skill selections from the Row 1 text field +function maybeLoadLivingInkSkills() + if selfId ~= "09079-c" then return end + selectedSkills = { + willpower = false, + intellect = false, + combat = false, + agility = false + } + if selectedUpgrades[1] ~= nil and selectedUpgrades[1].text ~= nil then + for skill in string.gmatch(selectedUpgrades[1].text, "([^,]+)") do + selectedSkills[skill] = true + end + end +end + +function clickSkill(skillname) + selectedSkills[skillname] = not selectedSkills[skillname] + maybeUpdateLivingInkSkillDisplay() + updateSelectedLivingInkSkillText() +end + +-- Creates the invisible buttons overlaying the skill icons +function maybeMakeLivingInkSkillSelectionButtons() + if selfId ~= "09079-c" then return end + + local buttonData = { + function_owner = self, + position = { y = 0.2 }, + height = 130, + width = 130, + color = { 0, 0, 0, 0 }, + } + + for skillname, _ in pairs(selectedSkills) do + local funcName = "clickSkill" .. skillname + self.setVar(funcName, function() clickSkill(skillname) end) + + buttonData.click_function = funcName + buttonData.position.x = -1 * SKILL_ICON_POSITIONS[skillname].x + buttonData.position.z = SKILL_ICON_POSITIONS[skillname].z + self.createButton(buttonData) + end +end + +-- Builds a comma-delimited string of skills and places it in the Row 1 text field +function updateSelectedLivingInkSkillText() + local skillString = "" + if selectedSkills.willpower then + skillString = skillString .. "willpower" .. "," + end + if selectedSkills.intellect then + skillString = skillString .. "intellect" .. "," + end + if selectedSkills.combat then + skillString = skillString .. "combat" .. "," + end + if selectedSkills.agility then + skillString = skillString .. "agility" .. "," + end + if selectedUpgrades[1] == nil then + selectedUpgrades[1] = { } + end + selectedUpgrades[1].text = skillString +end + +-- Refresh the vector circles indicating a skill is selected. Since we can only have one table of +-- vectors set, have to refresh all 4 at once +function maybeUpdateLivingInkSkillDisplay() + if selfId ~= "09079-c" then return end + local circles = {} + for skill, isSelected in pairs(selectedSkills) do + if isSelected then + local circle = getCircleVector(SKILL_ICON_POSITIONS[skill]) + if circle ~= nil then + table.insert(circles, circle) + end + end + end + self.setVectorLines(circles) +end + +function getCircleVector(center) + local diameter = Vector(0, 0, 0.1) + local pointOfOrigin = Vector(center.x, Y_VISIBLE, center.z) + local vec + local vecList = {} + local arcStep = 5 + for i = 0, 360, arcStep do + diameter:rotateOver('y', arcStep) + vec = pointOfOrigin + diameter + vec.y = pointOfOrigin.y + table.insert(vecList, vec) + end + + return { + points = vecList, + color = VECTOR_COLOR.mystic, + thickness = 0.02, + } +end + +--------------------------------------------------------- +-- Summoned Servitor related functions +--------------------------------------------------------- + +-- Creates the invisible buttons overlaying the slot words +function maybeMakeServitorSlotSelectionButtons() + if selfId ~= "09080-c" then return end + + local buttonData = { + click_function = "clickArcane", + function_owner = self, + position = { x = -1 * SLOT_ICON_POSITIONS.arcane.x, y = 0.2, z = SLOT_ICON_POSITIONS.arcane.z }, + height = 130, + width = 130, + color = { 0, 0, 0, 0 }, + } + self.createButton(buttonData) + + buttonData.click_function = "clickAlly" + buttonData.position.x = -1 * SLOT_ICON_POSITIONS.ally.x + self.createButton(buttonData) +end + +-- toggles the clicked slot +function clickArcane() + if selectedUpgrades[6] == nil then + selectedUpgrades[6] = { } + end + if selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.arcane then + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.none + else + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.arcane + end + maybeUpdateServitorSlotDisplay() +end + +-- toggles the clicked slot +function clickAlly() + if selectedUpgrades[6] == nil then + selectedUpgrades[6] = { } + end + if selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.ally then + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.none + else + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.ally + end + maybeUpdateServitorSlotDisplay() +end + +-- Refresh the vector circles indicating a slot is selected. +function maybeUpdateServitorSlotDisplay() + if selfId ~= "09080-c" then return end + + local center = SLOT_ICON_POSITIONS["arcane"] + local arcaneVecList = { + Vector(center.x + 0.12, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.12, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.12, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.12, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.12, Y_VISIBLE, center.z + 0.05), + } + + center = SLOT_ICON_POSITIONS["ally"] + local allyVecList = { + Vector(center.x + 0.07, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.07, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.07, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.07, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.07, Y_VISIBLE, center.z + 0.05), + } + + local arcaneVecColor = VECTOR_COLOR.unselected + local allyVecColor = VECTOR_COLOR.unselected + + if selectedUpgrades[6] ~= nil and selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.arcane then + arcaneVecColor = VECTOR_COLOR.mystic + elseif selectedUpgrades[6] ~= nil and selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.ally then + allyVecColor = VECTOR_COLOR.mystic + end + + self.setVectorLines({ + { + points = arcaneVecList, + color = arcaneVecColor, + thickness = 0.02, + }, + { + points = allyVecList, + color = allyVecColor, + thickness = 0.02, + } + }) +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.yaml b/unpacked/Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.yaml new file mode 100644 index 000000000..29c6366bc --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Power Word Upgrade Sheet (Taboo) ebce85.yaml @@ -0,0 +1,53 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '2': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/1814412497119682452/BD224FCE1980DBA38E5A687FABFD146AA1A30D0E/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907736/26A4084EBB3F67E4F215DE15DAE2B7489F7D5FAD/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"09081-t-c\",\n \"type\": \"UpgradeSheet\"\n}" +GUID: ebce85 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Card Power Word Upgrade Sheet (Taboo) ebce85.ttslua' +LuaScriptState: '[[0,0,0,0,0,0,0,0,0,0],["","","","",""]]' +MeasureMovement: false +Name: Card +Nickname: Power Word Upgrade Sheet (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 17.61 + posY: 3.21 + posZ: -10.2 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Power Word c91c1d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Power Word c91c1d.yaml index 76696ec3b..edc25c385 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Power Word c91c1d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Power Word c91c1d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379105 ColorDiffuse: @@ -19,31 +19,31 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09081\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"customizations\": [\r\n {\r\n \"name\": \"Betray\",\r\n \"xp\": - 1,\r\n \"text\": \"Add the command: \u201C\u27D0 \u2018Betray.\u2019 Deal 1 - damage to any enemy at this enemy\u2019s location with an equal or lower fight value - than this enemy.\u201D\"\r\n },\r\n {\r\n \"name\": \"Mercy\",\r\n \"xp\": - 1,\r\n \"text\": \"Add the command: \u201C\u27D0 \u2018Mercy.\u2019 An investigator +GMNotes: "{\n \"id\": \"09081\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"intellectIcons\": + 1,\n \"customizations\": [\n {\n \"name\": \"Betray\",\n \"xp\": 1,\n + \ \"text\": \"Add the command: \u201C\u27D0 \u2018Betray.\u2019 Deal 1 damage + to any enemy at this enemy\u2019s location with an equal or lower fight value than + this enemy.\u201D\"\n },\n {\n \"name\": \"Mercy\",\n \"xp\": 1,\n + \ \"text\": \"Add the command: \u201C\u27D0 \u2018Mercy.\u2019 An investigator at this enemy\u2019s location heals damage or horror equal to this enemy\u2019s - respective damage/horror value.\u201D\"\r\n },\r\n {\r\n \"name\": \"Confess\",\r\n - \ \"xp\": 1,\r\n \"text\": \"Add the command: \u201C\u27D0 \u2018Confess.\u2019 + respective damage/horror value.\u201D\"\n },\n {\n \"name\": \"Confess\",\n + \ \"xp\": 1,\n \"text\": \"Add the command: \u201C\u27D0 \u2018Confess.\u2019 Discover 1 clue at this enemy\u2019s location if its health is equal to or higher - than its location\u2019s shroud.\u201D\"\r\n },\r\n {\r\n \"name\": \"Distract\",\r\n - \ \"xp\": 1,\r\n \"text\": \"Add the command: \u201C\u27D0 \u2018Distract.\u2019 + than its location\u2019s shroud.\u201D\"\n },\n {\n \"name\": \"Distract\",\n + \ \"xp\": 1,\n \"text\": \"Add the command: \u201C\u27D0 \u2018Distract.\u2019 Automatically evade any enemy at this enemy\u2019s location with an equal or lower - evade value than this enemy.\u201D\"\r\n },\r\n {\r\n \"name\": \"Greater - Control\",\r\n \"xp\": 2,\r\n \"text\": \"Power Word gains \u201C\U0001F5F2: - Return Power Word to your hand.\u201D\"\r\n },\r\n {\r\n \"name\": \"Bonded\",\r\n - \ \"xp\": 3,\r\n \"text\": \"You may activate the parley ability on Power - Word from up to one location away from the attached enemy.\"\r\n },\r\n {\r\n - \ \"name\": \"Tonguetwister\",\r\n \"xp\": 3,\r\n \"text\": \"When - you parley with Power Word, you may give up to two different commands.\"\r\n },\r\n - \ {\r\n \"name\": \"Thrice Spoken\",\r\n \"xp\": 3,\r\n \"text\": - \"You may include three copies of Power Word in your deck. When you give a command - using one copy, also give that command to each other enemy with one of your copies - of Power Word attached.\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" + evade value than this enemy.\u201D\"\n },\n {\n \"name\": \"Greater Control\",\n + \ \"xp\": 2,\n \"text\": \"Power Word gains \u201C\U0001F5F2: Return Power + Word to your hand.\u201D\"\n },\n {\n \"name\": \"Bonded\",\n \"xp\": + 3,\n \"text\": \"You may activate the parley ability on Power Word from up + to one location away from the attached enemy.\"\n },\n {\n \"name\": + \"Tonguetwister\",\n \"xp\": 3,\n \"text\": \"When you parley with Power + Word, you may give up to two different commands.\"\n },\n {\n \"name\": + \"Thrice Spoken\",\n \"xp\": 3,\n \"text\": \"You may include three copies + of Power Word in your deck. When you give a command using one copy, also give that + command to each other enemy with one of your copies of Power Word attached.\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: c91c1d Grid: true GridProjection: false @@ -67,11 +67,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Practice Makes Perfect 1ac667.yaml b/unpacked/Bag All Player Cards 15bb07/Card Practice Makes Perfect 1ac667.yaml index f06f15888..1b3a0d829 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Practice Makes Perfect 1ac667.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Practice Makes Perfect 1ac667.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447832 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06197\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Gambit. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06197\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Gambit. Tactic.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 1ac667 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) 358be4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) 358be4.yaml index 54e0a8cf2..fbc517ac8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) 358be4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) 358be4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378953 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: From a Future Life DragSelectable: true -GMNotes: "{\r\n \"id\": \"08115\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Charm. Cursed.\",\r\n - \ \"wildIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08115\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue|Survivor\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": + \"Item. Charm. Cursed.\",\n \"wildIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 358be4 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.86 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) f69d3f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) f69d3f.yaml index 34c07874d..830398124 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) f69d3f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Precious Memento (4) f69d3f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378952 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: From a Former Life DragSelectable: true -GMNotes: "{\r\n \"id\": \"08114\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Charm. Blessed.\",\r\n - \ \"wildIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08114\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue|Survivor\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": + \"Item. Charm. Blessed.\",\n \"wildIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: f69d3f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.78 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Predator or Prey 6c726b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Predator or Prey 6c726b.yaml index dadfac1db..6387c0258 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Predator or Prey 6c726b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Predator or Prey 6c726b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379131 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09107\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Dilemma. Tactic.\",\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09107\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Dilemma. Tactic.\",\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 6c726b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.37 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Predestined ec7702.yaml b/unpacked/Bag All Player Cards 15bb07/Card Predestined ec7702.yaml index 735f05d39..b06730dcd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Predestined ec7702.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Predestined ec7702.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586029 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07035\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Fortune. Blessed.\",\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07035\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Fortune. Blessed.\",\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: ec7702 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.0 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Premonition e470cd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Premonition e470cd.yaml index 17108f463..65e3e4f10 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Premonition e470cd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Premonition e470cd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 276300 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04199\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Augury.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04199\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Augury.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: e470cd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.88 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst (2) a4f62a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst (2) a4f62a.yaml index 425e25303..ee031f883 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst (2) a4f62a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst (2) a4f62a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379029 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09036\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09036\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: a4f62a Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 17.02 posY: 3.35 posZ: 65.98 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst 831b6b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst 831b6b.yaml index 344220d7d..c5c8c3d05 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst 831b6b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Prepared for the Worst 831b6b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226310 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02184\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02184\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 831b6b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.94 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches (2) 5e32a5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches (2) 5e32a5.yaml index 49c1bcd4a..69c6d4116 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches (2) 5e32a5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches (2) 5e32a5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 313906 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51003\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51003\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Insight.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: 5e32a5 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches 60b353.yaml b/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches 60b353.yaml index 963dd1a2c..abc5386b8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches 60b353.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Preposterous Sketches 60b353.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368416 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02186\",\r\n \"alternate_ids\": [\r\n \"60218\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02186\",\n \"alternate_ids\": [\n \"60218\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Insight.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 60b353 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.72 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Prescient 7e7873.yaml b/unpacked/Bag All Player Cards 15bb07/Card Prescient 7e7873.yaml index 279f9dc76..2400fe044 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Prescient 7e7873.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Prescient 7e7873.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538717 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60419\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced. Augury.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60419\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Practiced. Augury.\",\n \"willpowerIcons\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 7e7873 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.01 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Press Pass (2) a6c839.yaml b/unpacked/Bag All Player Cards 15bb07/Card Press Pass (2) a6c839.yaml index ae965469d..2886edb98 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Press Pass (2) a6c839.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Press Pass (2) a6c839.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379048 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09055\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09055\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 2,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Scarlet Keys\"\n}" GUID: a6c839 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 5e6298.yaml b/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 5e6298.yaml index 41ebae291..880d5f14b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 5e6298.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 5e6298.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271923 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Millionaire DragSelectable: true -GMNotes: "{\r\n \"id\": \"05003\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Silver Twilight. Socialite.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05003\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Silver Twilight. Socialite.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 5e6298 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.58 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 78c512.yaml b/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 78c512.yaml index 92657f158..a35bd5826 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 78c512.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Preston Fairmont 78c512.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272804 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.89 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Priest of Two Faiths (1) 48e4a3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Priest of Two Faiths (1) 48e4a3.yaml index 80d80e133..cc675d179 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Priest of Two Faiths (1) 48e4a3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Priest of Two Faiths (1) 48e4a3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232104 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07156\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Blessed. Cursed.\",\r\n - \ \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07156\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Ally. + Blessed. Cursed.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 48e4a3 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.43 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Professor Warren Rice 42806b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Professor Warren Rice 42806b.yaml index ceb551ac3..35d90c936 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Professor Warren Rice 42806b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Professor Warren Rice 42806b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232904 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Professor of Languages DragSelectable: true -GMNotes: "{\r\n \"id\": \"02061\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02061\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Miskatonic.\",\n \"intellectIcons\": 1,\n + \ \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 42806b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.66 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb (2) 1905cf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb (2) 1905cf.yaml index ed0b936f8..be2ac63c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb (2) 1905cf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb (2) 1905cf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378944 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Finder of Hidden Connections DragSelectable: true -GMNotes: "{\r\n \"id\": \"08106\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08106\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker|Survivor\",\n \"cost\": 3,\n \"level\": 2,\n \"traits\": + \"Ally. Miskatonic.\",\n \"intellectIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 1905cf Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.85 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb cc8571.yaml b/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb cc8571.yaml index 22bd056fb..5a64dc668 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb cc8571.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Professor William Webb cc8571.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378942 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Finder of Hidden Connections DragSelectable: true -GMNotes: "{\r\n \"id\": \"08104\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08104\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker|Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": + \"Ally. Miskatonic.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: cc8571 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.18 posY: 2.71 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Promise of Power d8b64b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Promise of Power d8b64b.yaml index bbf394a57..c93cf67b3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Promise of Power d8b64b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Promise of Power d8b64b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 584926 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07032\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced. Cursed.\",\r\n \"wildIcons\": 4,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07032\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Practiced. Cursed.\",\n \"wildIcons\": 4,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: d8b64b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.96 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 3c2561.yaml b/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 957c32.yaml similarity index 50% rename from unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 3c2561.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 957c32.yaml index 03d247295..aafe62942 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 3c2561.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) (Taboo) 957c32.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 558214 +CardID: 317 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '5582': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 Type: 0 UniqueBack: false Description: Atlas of the Unknowable DragSelectable: true -GMNotes: "{\r\n \"id\": \"08045-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"wildIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" -GUID: 3c2561 +GMNotes: "{\n \"id\": \"08045-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Item. Relic. Tome.\",\n \"wildIcons\": + 2,\n \"cycle\": \"Edge of the Earth\"\n}" +GUID: 957c32 Grid: true GridProjection: false Hands: true @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 21.63 - posY: 4.34 - posZ: -60.24 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -13.42 + posY: 3.45 + posZ: -20.23 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) 55999d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) 55999d.yaml index 0895f2dd8..16a0da4c2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) 55999d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Prophesiae Profana (5) 55999d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379035 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Atlas of the Unknowable DragSelectable: true -GMNotes: "{\r\n \"id\": \"08045\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"wildIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08045\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Item. + Relic. Tome.\",\n \"wildIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 55999d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.08 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Prophesy 493b03.yaml b/unpacked/Bag All Player Cards 15bb07/Card Prophesy 493b03.yaml index a77670701..510f8725e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Prophesy 493b03.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Prophesy 493b03.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430906 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05034\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05034\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 493b03 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.08 posY: 3.7 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Prophetic (3) 0e64cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Prophetic (3) 0e64cb.yaml index a517f1149..0a749b72b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Prophetic (3) 0e64cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Prophetic (3) 0e64cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378958 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08120\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Mystic|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"replenish\": 2,\r\n - \ \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08120\",\n \"type\": \"Asset\",\n \"class\": \"Guardian|Mystic|Survivor\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": 2,\n \"type\": + \"Resource\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 0e64cb Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Protecting the Anirniq (2) 91204c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Protecting the Anirniq (2) 91204c.yaml index 8cc9ca1f5..ac5e7699f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Protecting the Anirniq (2) 91204c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Protecting the Anirniq (2) 91204c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378940 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08102\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker|Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08102\",\n \"type\": \"Event\",\n \"class\": \"Seeker|Mystic\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Ritual.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 91204c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.63 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Protective Gear (2) 9a5cb1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Protective Gear (2) 9a5cb1.yaml index b83b638b5..c5a19169e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Protective Gear (2) 9a5cb1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Protective Gear (2) 9a5cb1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378933 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08095\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Survivor\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Item. Armor.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08095\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Guardian|Survivor\",\n \"cost\": 4,\n \"level\": 2,\n \"traits\": + \"Item. Armor.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 9a5cb1 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 4.65 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.ttslua index f5335117d..052912a05 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.ttslua @@ -41,81 +41,128 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenArrangerApi = {} + local ChaosBagApi = {} - -- local function to call the token arranger, if it is on the table - ---@param functionName String Name of the function to cal - ---@param argument Variant Parameter to pass - local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] - if tokenArranger ~= nil then - tokenArranger.call(functionName, argument) + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) end + return chaosBagContents end - -- updates the token modifiers with the provided data - ---@param tokenData Table Contains the chaos token metadata - TokenArrangerApi.onTokenDataChanged = function(fullData) - callIfExistent("onTokenDataChanged", fullData) + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") end - -- deletes already laid out tokens - TokenArrangerApi.deleteCopiedTokens = function() - callIfExistent("deleteCopiedTokens") + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") end - -- updates the laid out tokens - TokenArrangerApi.layout = function() - Wait.time(function() callIfExistent("layout") end, 0.1) + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) end - return TokenArrangerApi + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi end end) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + local GUIDReferenceApi = {} - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) + local function getGuidHandler() + return getObjectFromGUID("123456") end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type) + return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectsByType = function(type) + return getGuidHandler().call("getObjectsByType", type) 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", playerColor) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + GUIDReferenceApi.getObjectsByOwner = function(owner) + return getGuidHandler().call("getObjectsByOwner", owner) 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + -- 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 - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi + return GUIDReferenceApi end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) @@ -157,6 +204,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -204,7 +256,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -213,7 +267,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -229,6 +283,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -264,7 +323,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -272,6 +331,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -283,8 +346,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -309,7 +372,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -332,7 +395,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -344,18 +407,130 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end +end) +__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + -- local function to call the token arranger, if it is on the table + ---@param functionName String Name of the function to cal + ---@param argument Variant 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.yaml b/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.yaml index 406934104..2d48860cc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Protective Incantation (1) 0fd4ae.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230333 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04031\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Ritual. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04031\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Ritual. + Blessed.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 0fd4ae Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Psychosis d83baf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Psychosis d83baf.yaml index b78f58224..8b08c0bdc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Psychosis d83baf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Psychosis d83baf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527403 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"01099\",\r\n \"alternate_ids\": [\r\n \"01599\"\r\n - \ ],\r\n \"type\": \"Treachery\",\r\n \"class\": \"Neutral\",\r\n \"traits\": - \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01099\",\n \"alternate_ids\": [\n \"01599\"\n ],\n \"type\": + \"Treachery\",\n \"class\": \"Neutral\",\n \"traits\": \"Madness.\",\n \"weakness\": + true,\n \"basicWeaknessCount\": 1,\n \"cycle\": \"Core\"\n}" GUID: d83baf Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 79.24 posY: 3.32 posZ: 26.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Purifying Corruption (4) ac9763.yaml b/unpacked/Bag All Player Cards 15bb07/Card Purifying Corruption (4) ac9763.yaml index 5ea0d72d5..8e90a6bcc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Purifying Corruption (4) ac9763.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Purifying Corruption (4) ac9763.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449612 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07273\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Ritual. Blessed. Cursed.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07273\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Ritual. Blessed. Cursed.\",\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Corruption\",\n + \ \"token\": \"resource\"\n }\n ],\n \n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: ac9763 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 3.79 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Pushed to the Limit e0f396.yaml b/unpacked/Bag All Player Cards 15bb07/Card Pushed to the Limit e0f396.yaml similarity index 83% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Pushed to the Limit e0f396.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Pushed to the Limit e0f396.yaml index 0272660a2..b932913a9 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Pushed to the Limit e0f396.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Pushed to the Limit e0f396.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 109 +CardID: 12109 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -41.18 - posY: 3.23 - posZ: -112.68 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 82.47 + posY: 3.21 + posZ: 27.33 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Puzzle Box 44334c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Puzzle Box 44334c.yaml index 58e1ee00e..8d4f73441 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Puzzle Box 44334c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Puzzle Box 44334c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 312510 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Mysterious Device DragSelectable: true -GMNotes: "{\r\n \"id\": \"05228\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Relic.\",\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05228\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Relic.\",\n \"cycle\": \"The Circle Undone\"\n}" GUID: 44334c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.71 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quantum Flux edd34a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quantum Flux edd34a.yaml index 211c6d11e..1dca38cd0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quantum Flux edd34a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quantum Flux edd34a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230307 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03196\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03196\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Path to Carcosa\"\n}" GUID: edd34a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.79 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quantum Paradox 0e4c07.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quantum Paradox 0e4c07.yaml index 18bce788d..0db353543 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quantum Paradox 0e4c07.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quantum Paradox 0e4c07.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379149 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"09125\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Paradox.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09125\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Paradox.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 0e4c07 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.38 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quick Getaway 5cc3d2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quick Getaway 5cc3d2.yaml index befacba4f..c2f9fee48 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quick Getaway 5cc3d2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quick Getaway 5cc3d2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379062 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09069\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09069\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 5cc3d2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quick Learner (4) 3bbc0b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quick Learner (4) 3bbc0b.yaml index 29847a94e..bfb07bb53 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quick Learner (4) 3bbc0b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quick Learner (4) 3bbc0b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550828 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60530\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 4,\r\n \"traits\": \"Condition.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60530\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"level\": 4,\n \"traits\": \"Condition.\",\n \"permanent\": true,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 3bbc0b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.74 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quick Study (2) 092e92.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quick Study (2) 092e92.yaml index 2946d3df4..76d93f10a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quick Study (2) 092e92.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quick Study (2) 092e92.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430645 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04154\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04154\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 092e92 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.09 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 308967.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 4a49ea.yaml similarity index 52% rename from unpacked/Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 308967.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 4a49ea.yaml index 598dad10c..c217a8beb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 308967.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking (Taboo) 4a49ea.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450616 +CardID: 328 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02229-t\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" -GUID: '308967' +GMNotes: "{\n \"id\": \"02229-t\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 1,\n \"cycle\": \"The + Dunwich Legacy\"\n}" +GUID: 4a49ea Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.02 - posY: 4.01 - posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -13.42 + posY: 3.45 + posZ: -33.77 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking 99989c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking 99989c.yaml index 183f766e9..1a0b20caa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking 99989c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quick Thinking 99989c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261703 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02229\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02229\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 1,\n \"cycle\": \"The + Dunwich Legacy\"\n}" GUID: 99989c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.1 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Quickdraw Holster (4) 859736.yaml b/unpacked/Bag All Player Cards 15bb07/Card Quickdraw Holster (4) 859736.yaml index 3922e557c..7bdd5dcdb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Quickdraw Holster (4) 859736.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Quickdraw Holster (4) 859736.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378927 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08089\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Item. Tool. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08089\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Guardian|Rogue\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": + \"Item. Tool. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 2,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: '859736' Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.19 posY: 2.5 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot (3) 3f91af.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot (3) 3f91af.yaml index 45018f930..0cf654657 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot (3) 3f91af.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot (3) 3f91af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368855 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"50010\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Charm.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Return to the Night of the Zealot\"\r\n}\r" +GMNotes: "{\n \"id\": \"50010\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. + Charm.\",\n \"wildIcons\": 1,\n \"cycle\": \"Return to the Night of the Zealot\"\n}" GUID: 3f91af Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.35 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot f34090.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot f34090.yaml index 36f055900..c1ea551d3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot f34090.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rabbit's Foot f34090.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368823 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01075\",\r\n \"alternate_ids\": [\r\n \"60510\",\r\n - \ \"01575\"\r\n ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01075\",\n \"alternate_ids\": [\n \"60510\",\n \"01575\"\n + \ ],\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Charm.\",\n \"wildIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: f34090 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 34.73 posY: 3.38 posZ: -45.83 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.ttslua index 9cf4a6fd4..3acdb564c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.ttslua @@ -41,6 +41,184 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/cards/RadiantSmite1") end) @@ -78,6 +256,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -125,7 +308,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -134,7 +319,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -150,6 +335,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -185,7 +375,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -193,6 +383,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -204,8 +398,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -230,7 +424,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -253,7 +447,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -265,36 +459,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -312,48 +531,4 @@ do return TokenArrangerApi end end) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) - end - - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { 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) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi -end -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.yaml b/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.yaml index 642f68db1..b144b13e5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Radiant Smite (1) 92c295.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232101 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07153\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Spell. Spirit. Blessed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07153\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Spell. Spirit. Blessed.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 92c295 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.15 posY: 4.13 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Randall Cho 1f50e9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Randall Cho 1f50e9.yaml index 5ff927acb..3c4a2652b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Randall Cho 1f50e9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Randall Cho 1f50e9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 585024 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Concerned Brother DragSelectable: true -GMNotes: "{\r\n \"id\": \"60102\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Medic.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60102\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"traits\": \"Ally. Medic.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 1f50e9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.15 posY: 3.99 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter b04c8e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter b04c8e.yaml index bd142f36b..966f83760 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter b04c8e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter b04c8e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452300 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Expert Dreamer DragSelectable: true -GMNotes: "{\r\n \"id\": \"06059\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Dreamer.\",\r\n \"combatIcons\": 1,\r\n - \ \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06059\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Dreamer.\",\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: b04c8e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.51 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter d253a6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter d253a6.yaml index 98a5dd57e..ea34613a5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter d253a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Randolph Carter d253a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452504 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Chained to the Waking World DragSelectable: true -GMNotes: "{\r\n \"id\": \"06079\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Dreamer.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06079\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Dreamer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: d253a6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.83 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rational Thought 1c7a00.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rational Thought 1c7a00.yaml index 280c624fc..7435b1a42 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rational Thought 1c7a00.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rational Thought 1c7a00.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379154 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05008\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05008\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Horror\",\n \"token\": \"horror\"\n }\n ],\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 1c7a00 Grid: true GridProjection: false @@ -45,11 +46,11 @@ Transform: posX: 9.05 posY: 3.91 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ravenous 558b0a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ravenous 558b0a.yaml index e44f91451..bd438792e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ravenous 558b0a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ravenous 558b0a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 783402 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: (Un)-Controlled Hunger DragSelectable: true -GMNotes: "{\r\n \"id\": \"89002\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"startsInPlay\": true,\r\n \"traits\": \"Talent.\",\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"89002\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Talent.\",\n \"cycle\": \"Standalone\"\n}" GUID: 558b0a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 98.64 posY: 1.95 posZ: 13.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Ravenous Myconid 0aa967.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ravenous Myconid 0aa967.yaml similarity index 84% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Ravenous Myconid 0aa967.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Ravenous Myconid 0aa967.yaml index 804506804..09523bc4c 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Ravenous Myconid 0aa967.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ravenous Myconid 0aa967.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 104 +CardID: 12104 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -44,14 +44,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -44.35 - posY: 3.23 - posZ: -108.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 79.31 + posY: 3.21 + posZ: 22.83 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Read the Signs 75eca5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Read the Signs 75eca5.yaml index 35a65e4d2..b591dfada 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Read the Signs 75eca5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Read the Signs 75eca5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380126 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06117\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06117\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 75eca5 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 3.92 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Reality Acid 0a1b3a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Reality Acid 0a1b3a.yaml index 19ec19309..327bb7a2d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Reality Acid 0a1b3a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Reality Acid 0a1b3a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 399001 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"89004\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Power.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"89004\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Power.\",\n \"weakness\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 0a1b3a Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Reality Acid Reference 858b0a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Reality Acid Reference 858b0a.yaml index 78e9affd3..b3e35074b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Reality Acid Reference 858b0a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Reality Acid Reference 858b0a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 783403 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"89005\",\r\n \"type\": \"Story\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"89005\",\n \"type\": \"Story\",\n \"class\": \"Neutral\",\n + \ \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 858b0a Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 98.64 posY: 1.95 posZ: 13.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Recall the Future (2) a06aa7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Recall the Future (2) a06aa7.yaml index 98011ceb8..1ae1b2522 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Recall the Future (2) a06aa7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Recall the Future (2) a06aa7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230344 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04158\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Augury. Ritual.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04158\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Augury. Ritual.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: a06aa7 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.24 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Recharge (2) e27b3c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Recharge (2) e27b3c.yaml index c96747531..15c13d9b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Recharge (2) e27b3c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Recharge (2) e27b3c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230339 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03197\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03197\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: e27b3c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.17 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Recharge (4) 591789.yaml b/unpacked/Bag All Player Cards 15bb07/Card Recharge (4) 591789.yaml index 6eeed0a0e..52c5aac6d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Recharge (4) 591789.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Recharge (4) 591789.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538727 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60429\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 3,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60429\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 4,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 3,\n \"cycle\": \"Investigator Packs\"\n}" GUID: '591789' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.81 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Reckless Assault 3ff641.yaml b/unpacked/Bag All Player Cards 15bb07/Card Reckless Assault 3ff641.yaml index 43af18837..9f92ea152 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Reckless Assault 3ff641.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Reckless Assault 3ff641.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368503 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03118\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Desperate.\",\r\n \"combatIcons\": 4,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03118\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Desperate.\",\n \"combatIcons\": 4,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 3ff641 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Reckless c45e67.yaml b/unpacked/Bag All Player Cards 15bb07/Card Reckless c45e67.yaml index fd68eb7b1..de9f2f7a6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Reckless c45e67.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Reckless c45e67.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538602 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60304\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 1,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60304\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: c45e67 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Refine 482b10.yaml b/unpacked/Bag All Player Cards 15bb07/Card Refine 482b10.yaml index 43a7d3e30..d47b2fe9b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Refine 482b10.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Refine 482b10.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379145 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09121\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Supply. Double.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09121\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Supply. Double.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 482b10 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Regurgitation 0a1b3a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Regurgitation 0a1b3a.yaml index 21908c4fc..0cd863d2a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Regurgitation 0a1b3a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Regurgitation 0a1b3a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 399000 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"89003\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Power.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"89003\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Power.\",\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 0a1b3a Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Relentless af3efd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Relentless af3efd.yaml index 9b5724516..853af2a07 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Relentless af3efd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Relentless af3efd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545307 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60109\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60109\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: af3efd Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Reliable (1) 102fad.yaml b/unpacked/Bag All Player Cards 15bb07/Card Reliable (1) 102fad.yaml index 1faa2cd00..1ac5b1de9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Reliable (1) 102fad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Reliable (1) 102fad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226336 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04020\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Upgrade.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04020\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Upgrade.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 102fad Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 2.93 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Relic Hunter (3) 3c959c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Relic Hunter (3) 3c959c.yaml index f591783e3..f886cbf53 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Relic Hunter (3) 3c959c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Relic Hunter (3) 3c959c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368523 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02157\",\r\n \"alternate_ids\": [\r\n \"01695\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"level\": 3,\r\n - \ \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02157\",\n \"alternate_ids\": [\n \"01695\"\n ],\n \"type\": + \"Asset\",\n \"class\": \"Neutral\",\n \"level\": 3,\n \"traits\": \"Talent.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 3c959c Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 30.5 posY: 2.3 posZ: -81.43 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 35bc58.yaml b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 35bc58.yaml index f9680c968..29bb90a8e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 35bc58.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 35bc58.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235857 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Unleash the Timestream DragSelectable: true -GMNotes: "{\r\n \"id\": \"04343\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04343\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": 3,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 35bc58 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.21 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 7667ef.yaml b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 7667ef.yaml index 8691fbe62..820e01496 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 7667ef.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 7667ef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235667 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Forestalling the Future DragSelectable: true -GMNotes: "{\r\n \"id\": \"04191\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04191\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": 3,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 7667ef Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 3.95 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 87718c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 87718c.yaml index 7c88638e6..a67b8b818 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 87718c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages 87718c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235840 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Repossess the Past DragSelectable: true -GMNotes: "{\r\n \"id\": \"04303\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04303\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": 3,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 87718c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.08 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages e27a30.yaml b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages e27a30.yaml index 5763e2a6e..3e0b74f18 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages e27a30.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Relic of Ages e27a30.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 235603 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: "\uFFFD\uFFFD\u201A\uFFFD\uFFFDA Device, of Some Sort" DragSelectable: true -GMNotes: "{\r\n \"id\": \"04061\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04061\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": 3,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: e27a30 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 101.08 posY: 1.99 posZ: -13.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Research Librarian 8f91ce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Research Librarian 8f91ce.yaml index 444638fc3..68eab0c36 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Research Librarian 8f91ce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Research Librarian 8f91ce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368426 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01032\",\r\n \"alternate_ids\": [\r\n \"01532\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"agilityIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01032\",\n \"alternate_ids\": [\n \"01532\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": + 0,\n \"traits\": \"Ally. Miskatonic.\",\n \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 8f91ce Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 19.65 posY: 3.37 posZ: -56.91 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Research Notes (Taboo) 085c08.yaml b/unpacked/Bag All Player Cards 15bb07/Card Research Notes (Taboo) 085c08.yaml new file mode 100644 index 000000000..5e26dd4ec --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Research Notes (Taboo) 085c08.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 309 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"09045-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Tome. Science.\",\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": \"Evidence\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" +GUID: 085c08 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Research Notes (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -27 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Research Notes a37bd4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Research Notes a37bd4.yaml index 91022b903..b320b79a8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Research Notes a37bd4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Research Notes a37bd4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379038 ColorDiffuse: @@ -19,9 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09045\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome. Science.\",\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09045\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Tome. Science.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Evidence\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: a37bd4 Grid: true GridProjection: false @@ -46,11 +48,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 357 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Resourceful 334f03.yaml b/unpacked/Bag All Player Cards 15bb07/Card Resourceful 334f03.yaml index b7d05896d..a7d8049dd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Resourceful 334f03.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Resourceful 334f03.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368802 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03039\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"intellectIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03039\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"intellectIcons\": 1,\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 334f03 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.12 posY: 3.94 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 0a5491.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 0a5491.yaml new file mode 100644 index 000000000..600d99109 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 0a5491.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 55100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '551': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907490/4AAE686A793E66311FF78890309D20670A329D16/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907034/013ED775CA50C6FC71731E4FBAEBF1ECA8C68F1E/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: true +Description: The Reporter +DragSelectable: true +GMNotes: "{\n \"id\": \"02002-t\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Reporter.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: 0a5491 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Rex Murphy (Taboo) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 16.86 + posY: 3.21 + posZ: -13.03 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 9724b7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 9724b7.yaml deleted file mode 100644 index 48f581ad6..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy (Taboo) 9724b7.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 592900 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5929': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1656727981627733218/4FBA1E1F82086229D9475F640AD6FF969624BE79/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065907888685007/A30CCF98600F1E9FA0F3EE674FE35BCD86CB6ECB/ - NumHeight: 2 - NumWidth: 2 - Type: 0 - UniqueBack: true -Description: The Reporter -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02002-t\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Reporter.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" -GUID: 9724b7 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Rex Murphy (Taboo) -SidewaysCard: true -Snap: true -Sticky: true -Tags: -- Investigator -- PlayerCard -Tooltip: true -Transform: - posX: 78.51 - posY: 1.07 - posZ: 27.14 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 1.15 - scaleY: 1.0 - scaleZ: 1.15 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 4271cb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 4271cb.yaml index b22863c3b..53d1a5c03 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 4271cb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 4271cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450003 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Reporter DragSelectable: true -GMNotes: "{\r\n \"id\": \"02002\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Reporter.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02002\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Reporter.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 3,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 4271cb Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 78.51 posY: 1.06 posZ: 27.14 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 9ba3f0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 9ba3f0.yaml index af9be6c3f..0959fa1fb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 9ba3f0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rex Murphy 9ba3f0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259206 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 78.51 posY: 1.07 posZ: 27.14 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 359 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rex's Curse 033a35.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rex's Curse 033a35.yaml index 4be8ad3da..6a489703a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rex's Curse 033a35.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rex's Curse 033a35.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371907 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02009\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02009\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 033a35 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.13 posY: 5.51 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Righteous Hunt (1) 491c09.yaml b/unpacked/Bag All Player Cards 15bb07/Card Righteous Hunt (1) 491c09.yaml index 8e8d49ab7..8b625dff0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Righteous Hunt (1) 491c09.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Righteous Hunt (1) 491c09.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553101 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07109\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Tactic. Blessed.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07109\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Tactic. Blessed.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 491c09 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.1 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Riot Whistle 55fc3d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Riot Whistle 55fc3d.yaml index 6f7bd229b..19e8015b2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Riot Whistle 55fc3d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Riot Whistle 55fc3d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07108\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07108\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Tool.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 55fc3d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion (3) bb501b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion (3) bb501b.yaml index 21c90b7d8..23241481d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion (3) bb501b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion (3) bb501b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314904 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51010\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51010\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 3,\n \"traits\": \"Innate.\",\n \"wildIcons\": 2,\n \"cycle\": \"Return + to The Dunwich Legacy\"\n}" GUID: bb501b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.72 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion 358387.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion 358387.yaml index 4d0814fa0..3af266a3b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion 358387.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rise to the Occasion 358387.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368801 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02192\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 3,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02192\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 3,\n \"cycle\": \"The + Dunwich Legacy\"\n}" GUID: '358387' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.18 posY: 2.94 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rita Young bb8296.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rita Young bb8296.yaml index 0711fab80..75e8d15c7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rita Young bb8296.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rita Young bb8296.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272024 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Athlete DragSelectable: true -GMNotes: "{\r\n \"id\": \"05005\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Miskatonic.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 2,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 5,\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05005\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Miskatonic.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 2,\n \"combatIcons\": 3,\n \"agilityIcons\": 5,\n \"cycle\": \"The Circle Undone\"\n}" GUID: bb8296 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 2.14 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rita Young bdef4d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rita Young bdef4d.yaml index 1ce9ec1b2..4c750fe9f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rita Young bdef4d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rita Young bdef4d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 591100 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.05 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) 2286b4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) 2286b4.yaml new file mode 100644 index 000000000..018fd3bd8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) 2286b4.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 345 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"07308-t\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 5,\n \"traits\": \"Spell. Blessed. Cursed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" +GUID: 2286b4 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Rite of Equilibrium (5) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -45.05 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) d45a81.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) d45a81.yaml deleted file mode 100644 index 8aad5f4c8..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) (Taboo) d45a81.yaml +++ /dev/null @@ -1,55 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558202 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"07308-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 5,\r\n \"traits\": \"Spell. Blessed. Cursed.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" -GUID: d45a81 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Rite of Equilibrium (5) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 21.83 - posY: 4.37 - posZ: -46.43 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) 315b45.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) 315b45.yaml index c6c6cfd96..14a564c7d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) 315b45.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rite of Equilibrium (5) 315b45.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589707 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07308\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 5,\r\n \"traits\": \"Spell. Blessed. Cursed.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07308\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 5,\n \"traits\": \"Spell. Blessed. Cursed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 315b45 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.ttslua index b4b15656a..3f73aaab5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.ttslua @@ -44,19 +44,20 @@ end)(nil) __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 Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -77,11 +78,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -89,35 +94,165 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/cards/RiteofSanctification") end) @@ -155,6 +290,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -202,7 +342,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -211,7 +353,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -227,6 +369,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -262,7 +409,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -270,6 +417,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -281,8 +432,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -307,7 +458,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -330,7 +481,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -342,18 +493,42 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.yaml index 20f8b776f..baccc1335 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rite of Sanctification 974743.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 554413 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07019\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Ritual. Blessed.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07019\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Guardian\",\n \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Ritual. + Blessed.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: '974743' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (2) 4f2668.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (2) 4f2668.yaml index 42965131c..e8a844b8c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (2) 4f2668.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (2) 4f2668.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 313604 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51007\",\r\n \"alternate_ids\": [\r\n \"01689\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 4,\r\n - \ \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": 1,\r\n \"uses\": - [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51007\",\n \"alternate_ids\": [\n \"01689\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Arcane\",\n \"class\": \"Mystic\",\n \"cost\": 4,\n + \ \"level\": 2,\n \"traits\": \"Spell.\",\n \"intellectIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: 4f2668 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 34.32 posY: 3.38 posZ: -45.6 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (4) 194adb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (4) 194adb.yaml index 1232fd57a..9a937028e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (4) 194adb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking (4) 194adb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230358 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02233\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 5,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02233\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 5,\n \"level\": 4,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 194adb Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 26.02 posY: 3.53 posZ: -7.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking 29b842.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking 29b842.yaml index ed138d0aa..34508c094 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking 29b842.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rite of Seeking 29b842.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230329 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02028\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02028\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 29b842 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.15 posY: 3.83 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) 7dc746.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) 7dc746.yaml new file mode 100644 index 000000000..1e3c9ceeb --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) 7dc746.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 341 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"02029-t\",\n \"alternate_ids\": [\n \"60405-t\"\n ],\n + \ \"type\": \"Asset\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 0,\n + \ \"traits\": \"Item.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: 7dc746 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Ritual Candles (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -36.03 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) e99e75.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) e99e75.yaml deleted file mode 100644 index 63b20f60d..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles (Taboo) e99e75.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558205 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02029-t\",\r\n \"alternate_ids\": [\r\n \"60405-t\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": 1,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" -GUID: e99e75 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Ritual Candles (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.63 - posY: 4.34 - posZ: -61.23 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles 0a4db3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles 0a4db3.yaml index d0d51273d..7ad5a9ad5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles 0a4db3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ritual Candles 0a4db3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230317 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02029\",\r\n \"alternate_ids\": [\r\n \"60405\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": 1,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02029\",\n \"alternate_ids\": [\n \"60405\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": + 0,\n \"traits\": \"Item.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 0a4db3 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.98 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night (2) ef43db.yaml b/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night (2) ef43db.yaml index 906a8c227..60b079d04 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night (2) ef43db.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night (2) ef43db.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538720 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60422\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Clothing.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60422\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Clothing.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: ef43db Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 4.93 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night d9292f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night d9292f.yaml index fa15e494a..232a81d65 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night d9292f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Robes of Endless Night d9292f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538710 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60412\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Clothing.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60412\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Clothing.\",\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: d9292f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 4.1 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rod of Animalism (1) 0fc42c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rod of Animalism (1) 0fc42c.yaml index 5888a768e..af816cbce 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rod of Animalism (1) 0fc42c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rod of Animalism (1) 0fc42c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378915 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08128\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08128\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 0fc42c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.94 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Back) 560cef.yaml b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Back) 560cef.yaml index f4542d470..841aaa17d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Back) 560cef.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Back) 560cef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536100 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Fed DragSelectable: true -GMNotes: "{\r\n \"id\": \"01001-pb\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Agency. Detective.\",\r\n \"willpowerIcons\": - 3,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01001-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Guardian\",\n \"traits\": \"Agency. Detective.\",\n \"willpowerIcons\": 3,\n + \ \"intellectIcons\": 3,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": + \"Core\"\n}" GUID: 560cef Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 1.66 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Front) f7361e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Front) f7361e.yaml index 6c589b246..8fa8c6b00 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Front) f7361e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel Front) f7361e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536101 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Fed DragSelectable: true -GMNotes: "{\r\n \"id\": \"01001-pf\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Agency. Detective.\",\r\n \"willpowerIcons\": - 3,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01001-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Guardian\",\n \"traits\": \"Agency. Detective.\",\n \"willpowerIcons\": 3,\n + \ \"intellectIcons\": 3,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": + \"Core\"\n}" GUID: f7361e Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 1.67 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel) 502768.yaml b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel) 502768.yaml index 79c19813c..e42cb42e4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel) 502768.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks (Parallel) 502768.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536102 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Fed DragSelectable: true -GMNotes: "{\r\n \"id\": \"01001-p\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Agency. Detective.\",\r\n \"willpowerIcons\": - 3,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01001-p\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Agency. Detective.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 3,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: '502768' Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 2.08 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 5bde90.yaml b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 5bde90.yaml index aed3ee15b..b5463023b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 5bde90.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 5bde90.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 258600 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01001-m\",\r\n \"alternate_ids\": [\r\n \"98004-m\",\r\n - \ \"01501-m\"\r\n ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"01001-m\",\n \"alternate_ids\": [\n \"98004-m\",\n \"01501-m\"\n + \ ],\n \"type\": \"Minicard\"\n}" GUID: 5bde90 Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587100 ColorDiffuse: @@ -85,18 +85,18 @@ States: posY: 1.29860592 posZ: 67.153 rotX: -9.60612141e-08 - rotY: 270.0 + rotY: 270 rotZ: -2.07587263e-08 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535809 ColorDiffuse: @@ -140,10 +140,10 @@ States: posY: 1.29860592 posZ: 67.153 rotX: -2.02330909e-07 - rotY: 270.0 + rotY: 270 rotZ: -1.38793665e-09 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -155,11 +155,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -7.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 9e9e98.yaml b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 9e9e98.yaml index 9b1bed3dd..3f0428a3f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 9e9e98.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Roland Banks 9e9e98.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273800 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Fed DragSelectable: true -GMNotes: "{\r\n \"id\": \"01001\",\r\n \"alternate_ids\": [\r\n \"98004\",\r\n - \ \"01501\"\r\n ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Guardian\",\r\n - \ \"traits\": \"Agency. Detective.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01001\",\n \"alternate_ids\": [\n \"98004\",\n \"01501\"\n + \ ],\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n \"traits\": \"Agency. + Detective.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 3,\n \"combatIcons\": + 4,\n \"agilityIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: 9e9e98 Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587400 ColorDiffuse: @@ -90,18 +90,18 @@ States: posY: 1.29860592 posZ: 62.553 rotX: 2.400226e-08 - rotY: 180.0 + rotY: 180 rotZ: -3.06262358e-08 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273830 ColorDiffuse: @@ -148,10 +148,10 @@ States: posY: 1.29860592 posZ: 62.553 rotX: 7.42376072e-09 - rotY: 180.0 + rotY: 180 rotZ: -3.84156351e-08 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -164,11 +164,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -5.39 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special 4edb91.yaml b/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special 4edb91.yaml index 23835275b..84c29fbfd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special 4edb91.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special 4edb91.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586125 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01006\",\r\n \"alternate_ids\": [\r\n \"01506\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"cost\": 3,\r\n - \ \"traits\": \"Item. Weapon. Firearm.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01006\",\n \"alternate_ids\": [\n \"01506\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": + \"Item. Weapon. Firearm.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: 4edb91 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 28.5 posY: 2.3 posZ: -68.83 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special dbdaff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special dbdaff.yaml index 632a304d0..adba261b1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special dbdaff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Roland's .38 Special dbdaff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536205 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90030\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n - \ \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Ammo\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90030\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Item. Weapon. Firearm.\",\n + \ \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Ammo\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Standalone\"\n}" GUID: dbdaff Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.15 posY: 3.67 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Rookie Mistake e567ff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Rookie Mistake e567ff.yaml index ad515c2b1..d6cd1d354 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Rookie Mistake e567ff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Rookie Mistake e567ff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583901 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06007\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Blunder. Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06007\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Blunder. Flaw.\",\n \"weakness\": true,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: e567ff Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.06 posY: 3.92 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ruined Film 6d2eae.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ruined Film 6d2eae.yaml index e7ff47f15..24e00ee3b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ruined Film 6d2eae.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ruined Film 6d2eae.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379011 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09017\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Blunder.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09017\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Blunder.\",\n \"weakness\": true,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 6d2eae Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 10.44 posY: 2.2 posZ: 46.33 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Run For Your Life 0f32e8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Run For Your Life 0f32e8.yaml index 74daea06f..1623f7015 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Run For Your Life 0f32e8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Run For Your Life 0f32e8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368505 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03119\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Desperate.\",\r\n \"agilityIcons\": 4,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03119\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Desperate.\",\n \"agilityIcons\": 4,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 0f32e8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 4.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Runic Axe (Taboo) 3e3b99.yaml b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe (Taboo) 3e3b99.yaml new file mode 100644 index 000000000..dc6f2f1c4 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe (Taboo) 3e3b99.yaml @@ -0,0 +1,81 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 303 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"09022-t\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. Weapon. Melee.\",\n \"combatIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"replenish\": 1,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"customizations\": [\n + \ {\n \"name\": \"Heirloom\",\n \"xp\": 1,\n \"text\": \"This asset + gets -1 cost and gains the Relic trait.\",\n \"replaces\": {\n \"cost\": + 3,\n \"traits\": \"Item. Relic. Weapon. Melee.\"\n }\n },\n {\n + \ \"name\": \"Inscription of Glory\",\n \"xp\": 1,\n \"text\": \"Add + this inscription: \u201C\u27D0 Glory - If this attack defeats an enemy, choose one: + draw 1 card, heal 1 damage, or heal 1 horror.\u201D\"\n },\n {\n \"name\": + \"Inscription of the Elders\",\n \"xp\": 1,\n \"text\": \"Add this inscription: + \u201C\u27D0 Elders - If this attack succeeds by an amount equal to or grather than + your location's shroud, discover 1 clue at your location.\u201D\"\n },\n {\n + \ \"name\": \"Inscription of the Hunt\",\n \"xp\": 2,\n \"text\": + \"Add this inscription: \u201C\u27D0 Hunt - Immediately move to a connecting location + or engage an enemy at your location.\u201D\"\n },\n {\n \"name\": \"Inscription + of Fury\",\n \"xp\": 1,\n \"text\": \"Add this inscription: \u201C\u27D0 + Fury - If this attack is successful, in addition to its standard damage, deal 1 + damage to each other enemy engaged with you.\u201D\"\n },\n {\n \"name\": + \"Ancient Power\",\n \"xp\": 3,\n \"text\": \"You may imbue the same inscription + up to three times.\"\n },\n {\n \"name\": \"Saga\",\n \"xp\": 3,\n + \ \"text\": \"Replenish 2 of Runic Axe's charges at the start of each round, + instead of only one\",\n \"replaces\": {\n \"uses\": [\n {\n + \ \"count\": 4,\n \"replenish\": 2,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ]\n }\n + \ },\n {\n \"name\": \"Scriptweaver\",\n \"xp\": 4,\n \"text\": + \"For every charge spent, you may imbue the axe with up to two different inscriptions.\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" +GUID: 3e3b99 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Runic Axe (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.48 + posZ: -38.28 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Runic Axe 7cdb0a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe 7cdb0a.yaml index 7dec7ccd3..f344019bd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Runic Axe 7cdb0a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe 7cdb0a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379015 ColorDiffuse: @@ -19,36 +19,34 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09022\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"replenish\": - 1,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n - \ ],\r\n \"customizations\": [\r\n {\r\n \"name\": \"Heirloom\",\r\n \"xp\": - 1,\r\n \"text\": \"This asset gets -1 cost and gains the Relic trait.\",\r\n - \ \"replaces\": {\r\n \"cost\": 3,\r\n \"traits\": \"Item. Relic. - Weapon. Melee.\"\r\n }\r\n },\r\n {\r\n \"name\": \"Inscription - of Glory\",\r\n \"xp\": 1,\r\n \"text\": \"Add this inscription: \u201C\u27D0 - Glory - If this attack defeats an enemy, choose one: draw 1 card, heal 1 damage, - or heal 1 horror.\u201D\"\r\n },\r\n {\r\n \"name\": \"Inscription of - the Elders\",\r\n \"xp\": 1,\r\n \"text\": \"Add this inscription: \u201C\u27D0 - Elders - If this attack succeeds by an amount equal to or grather than your location\\u0027s - shroud, discover 1 clue at your location.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Inscription of the Hunt\",\r\n \"xp\": 1,\r\n \"text\": \"Add this inscription: - \u201C\u27D0 Hunt - Immediately move to a connecting location or engage an enemy - at your location.\u201D\"\r\n },\r\n {\r\n \"name\": \"Inscription of - Fury\",\r\n \"xp\": 1,\r\n \"text\": \"Add this inscription: \u201C\u27D0 +GMNotes: "{\n \"id\": \"09022\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"replenish\": 1,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"customizations\": [\n {\n \"name\": \"Heirloom\",\n \"xp\": + 1,\n \"text\": \"This asset gets -1 cost and gains the Relic trait.\",\n \"replaces\": + {\n \"cost\": 3,\n \"traits\": \"Item. Relic. Weapon. Melee.\"\n }\n + \ },\n {\n \"name\": \"Inscription of Glory\",\n \"xp\": 1,\n \"text\": + \"Add this inscription: \u201C\u27D0 Glory - If this attack defeats an enemy, choose + one: draw 1 card, heal 1 damage, or heal 1 horror.\u201D\"\n },\n {\n \"name\": + \"Inscription of the Elders\",\n \"xp\": 1,\n \"text\": \"Add this inscription: + \u201C\u27D0 Elders - If this attack succeeds by an amount equal to or grather than + your location\\u0027s shroud, discover 1 clue at your location.\u201D\"\n },\n + \ {\n \"name\": \"Inscription of the Hunt\",\n \"xp\": 1,\n \"text\": + \"Add this inscription: \u201C\u27D0 Hunt - Immediately move to a connecting location + or engage an enemy at your location.\u201D\"\n },\n {\n \"name\": \"Inscription + of Fury\",\n \"xp\": 1,\n \"text\": \"Add this inscription: \u201C\u27D0 Fury - If this attack is successful, in addition to its standard damage, deal 1 - damage to each other enemy engaged with you.\u201D\"\r\n },\r\n {\r\n \"name\": - \"Ancient Power\",\r\n \"xp\": 3,\r\n \"text\": \"You may imbue the same - inscription up to three times.\"\r\n },\r\n {\r\n \"name\": \"Saga\",\r\n - \ \"xp\": 3,\r\n \"text\": \"Replenish 2 of Runic Axe\\u0027s charges at - the start of each round, instead of only one\",\r\n \"replaces\": {\r\n \"uses\": - [\r\n {\r\n \"count\": 4,\r\n \"replenish\": 2,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n - \ ]\r\n }\r\n },\r\n {\r\n \"name\": \"Scriptweaver\",\r\n - \ \"xp\": 4,\r\n \"text\": \"For every charge spent, you may imbue the - axe with up to two different inscriptions.\"\r\n }\r\n ],\r\n \"cycle\": \"The - Scarlet Keys\"\r\n}\r" + damage to each other enemy engaged with you.\u201D\"\n },\n {\n \"name\": + \"Ancient Power\",\n \"xp\": 3,\n \"text\": \"You may imbue the same inscription + up to three times.\"\n },\n {\n \"name\": \"Saga\",\n \"xp\": 3,\n + \ \"text\": \"Replenish 2 of Runic Axe\\u0027s charges at the start of each + round, instead of only one\",\n \"replaces\": {\n \"uses\": [\n {\n + \ \"count\": 4,\n \"replenish\": 2,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ]\n }\n + \ },\n {\n \"name\": \"Scriptweaver\",\n \"xp\": 4,\n \"text\": + \"For every charge spent, you may imbue the axe with up to two different inscriptions.\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 7cdb0a Grid: true GridProjection: false @@ -73,11 +71,11 @@ Transform: posX: 9.92 posY: 2.2 posZ: 47.49 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.ttslua new file mode 100644 index 000000000..745767d84 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.ttslua @@ -0,0 +1,945 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/customizable/RunicAxeUpgradeSheetTaboo") +end) +__bundle_register("playercards/customizable/RunicAxeUpgradeSheetTaboo", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Customizable Cards: Runic Axe (Taboo) + +-- Color information for buttons +boxSize = 38 + +-- static values +xInitial = -0.935 +xOffset = 0.0705 + +customizations = { + [1] = { + checkboxes = { + posZ = -0.92, + count = 1, + } + }, + [2] = { + checkboxes = { + posZ = -0.715, + count = 1, + } + }, + [3] = { + checkboxes = { + posZ = -0.415, + count = 1, + } + }, + [4] = { + checkboxes = { + posZ = -0.018, + count = 2, + } + }, + [5] = { + checkboxes = { + posZ = 0.265, + count = 1, + }, + }, + [6] = { + checkboxes = { + posZ = 0.66, + count = 3, + } + }, + [7] = { + checkboxes = { + posZ = 0.86, + count = 3, + }, + }, + [8] = { + checkboxes = { + posZ = 1.065, + count = 4, + }, + }, +} + +require("playercards/customizable/UpgradeSheetLibrary") +end) +__bundle_register("playercards/customizable/UpgradeSheetLibrary", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Common code for handling customizable card upgrade sheets +-- Define UI elements in the base card file, then include this +-- UI element definition is an array of tables, each with this structure. A row may include +-- checkboxes (number defined by count), a text field, both, or neither (if the row has custom +-- handling, as Living Ink does) +-- { +-- checkboxes = { +-- posZ = -0.71, +-- count = 1, +-- }, +-- textField = { +-- position = { 0.005, 0.25, -0.58 }, +-- width = 875 +-- } +-- } +-- Fields should also be defined for xInitial (left edge of the checkboxes) and xOffset (amount to +-- shift X from one box to the next) as well as boxSize (checkboxes) and inputFontSize. +-- +-- selectedUpgrades holds the state of checkboxes and text input, each element being: +-- selectedUpgrades[row] = { xp = #, text = "" } + +local playmatApi = require("playermat/PlaymatApi") + +-- Y position for UI elements. Visibility of checkboxes moves the checkbox inside the card object +-- when not selected. +local Y_VISIBLE = 0.25 +local Y_INVISIBLE = -0.5 + +-- Used for Summoned Servitor and Living Ink +local VECTOR_COLOR = { + unselected = { 0.5, 0.5, 0.5, 0.75 }, + mystic = { 0.597, 0.195, 0.796 } +} + +-- These match with ArkhamDB's way of storing the data in the dropdown menu +local SUMMONED_SERVITOR_SLOT_INDICES = { arcane = "1", ally = "0", none = "" } + +local rowCheckboxFirstIndex = { } +local rowInputIndex = { } +local selectedUpgrades = { } + +-- save state when going into bags / decks +function onDestroy() self.script_state = onSave() end + +function onSave() + return JSON.encode({ + selections = selectedUpgrades + }) +end + +-- Startup procedure +function onLoad(savedData) + if savedData ~= "" then + local loadedData = JSON.decode(savedData) + if loadedData.selections ~= nil then + selectedUpgrades = loadedData.selections + end + end + + selfId = getSelfId() + + maybeLoadLivingInkSkills() + createUi() + maybeUpdateLivingInkSkillDisplay() + maybeUpdateServitorSlotDisplay() + + self.addContextMenuItem("Clear Selections", function() resetSelections() end) + self.addContextMenuItem("Scale: 1x", function() self.setScale({ 1, 1, 1 }) end) + self.addContextMenuItem("Scale: 2x", function() self.setScale({ 2, 1, 2 }) end) + self.addContextMenuItem("Scale: 3x", function() self.setScale({ 3, 1, 3 }) end) +end + +-- Grabs the ID from the metadata for special functions (Living Ink, Summoned Servitor) +function getSelfId() + local metadata = JSON.decode(self.getGMNotes()) + return metadata.id +end + +function isUpgradeActive(row) + return customizations[row] ~= nil + and customizations[row].checkboxes ~= nil + and customizations[row].checkboxes.count ~= nil + and customizations[row].checkboxes.count > 0 + and selectedUpgrades[row] ~= nil + and selectedUpgrades[row].xp ~= nil + and selectedUpgrades[row].xp >= customizations[row].checkboxes.count +end + +function resetSelections() + selectedUpgrades = { } + updateDisplay() +end + +function createUi() + if customizations == nil then + return + end + for i = 1, #customizations do + if customizations[i].checkboxes ~= nil then + createRowCheckboxes(i) + end + if customizations[i].textField ~= nil then + createRowTextField(i) + end + end + maybeMakeLivingInkSkillSelectionButtons() + maybeMakeServitorSlotSelectionButtons() + updateDisplay() +end + +function createRowCheckboxes(rowIndex) + local checkboxes = customizations[rowIndex].checkboxes + rowCheckboxFirstIndex[rowIndex] = 0 + local previousButtons = self.getButtons() + if previousButtons ~= nil then + rowCheckboxFirstIndex[rowIndex] = #previousButtons + end + for col = 1, checkboxes.count do + local funcName = "checkboxRow" .. rowIndex .. "Col" .. col + local func = function() clickCheckbox(rowIndex, col) end + self.setVar(funcName, func) + local checkboxPos = getCheckboxPosition(rowIndex, col) + + self.createButton({ + click_function = funcName, + function_owner = self, + position = checkboxPos, + height = boxSize * 10, + width = boxSize * 10, + font_size = 1000, + scale = { 0.1, 0.1, 0.1 }, + color = { 0, 0, 0 }, + font_color = { 0, 0, 0 } + }) + end +end + +function getCheckboxPosition(row, col) + return { + x = xInitial + col * xOffset, + y = Y_VISIBLE, + z = customizations[row].checkboxes.posZ + } +end + +function createRowTextField(rowIndex) + local textField = customizations[rowIndex].textField + + rowInputIndex[rowIndex] = 0 + local previousInputs = self.getInputs() + if previousInputs ~= nil then + rowInputIndex[rowIndex] = #previousInputs + end + local funcName = "textbox" .. rowIndex + local func = function(_, _, val, sel) clickTextbox(rowIndex, val, sel) end + self.setVar(funcName, func) + + self.createInput({ + input_function = funcName, + function_owner = self, + label = "Click to type", + alignment = 2, + position = textField.position, + scale = { 0.1, 0.1, 0.1 }, + width = textField.width * 10, + height = inputFontsize * 10 + 75, + font_size = inputFontsize * 10.5, + color = "White", + value = "" + }) +end + +function updateDisplay() + for i = 1, #customizations do + updateRowDisplay(i) + end + maybeUpdateLivingInkSkillDisplay() + maybeUpdateServitorSlotDisplay() +end + +function updateRowDisplay(rowIndex) + if customizations[rowIndex].checkboxes ~= nil then + updateCheckboxes(rowIndex) + end + if customizations[rowIndex].textField ~= nil then + updateTextField(rowIndex) + end +end + +function updateCheckboxes(rowIndex) + local checkboxCount = customizations[rowIndex].checkboxes.count + local selected = 0 + if selectedUpgrades[rowIndex] ~= nil and selectedUpgrades[rowIndex].xp ~= nil then + selected = selectedUpgrades[rowIndex].xp + end + local checkboxIndex = rowCheckboxFirstIndex[rowIndex] + for col = 1, checkboxCount do + local pos = getCheckboxPosition(rowIndex, col) + if col <= selected then + pos.y = Y_VISIBLE + else + pos.y = Y_INVISIBLE + end + self.editButton({ + index = checkboxIndex, + position = pos + }) + checkboxIndex = checkboxIndex + 1 + end +end + +function updateTextField(rowIndex) + local inputIndex = rowInputIndex[rowIndex] + if selectedUpgrades[rowIndex] ~= nil and selectedUpgrades[rowIndex].text ~= nil then + self.editInput({ + index = inputIndex, + value = " " .. selectedUpgrades[rowIndex].text + }) + end +end + +function clickCheckbox(row, col, buttonIndex) + if selectedUpgrades[row] == nil then + selectedUpgrades[row] = { } + selectedUpgrades[row].xp = 0 + end + if selectedUpgrades[row].xp == col then + selectedUpgrades[row].xp = col - 1 + else + selectedUpgrades[row].xp = col + end + updateCheckboxes(row) + playmatApi.syncAllCustomizableCards() +end + +-- Updates saved value for given text box when it loses focus +function clickTextbox(rowIndex, value, selected) + if selected == false then + if selectedUpgrades[rowIndex] == nil then + selectedUpgrades[rowIndex] = { } + end + selectedUpgrades[rowIndex].text = value:gsub("^%s*(.-)%s*$", "%1") + -- Editing isn't actually done yet, and will block the update. Wait a frame so it's finished + Wait.frames(function() updateRowDisplay(rowIndex) end, 1) + end +end + +--------------------------------------------------------- +-- Living Ink related functions +--------------------------------------------------------- + +-- Builds the list of boolean skill selections from the Row 1 text field +function maybeLoadLivingInkSkills() + if selfId ~= "09079-c" then return end + selectedSkills = { + willpower = false, + intellect = false, + combat = false, + agility = false + } + if selectedUpgrades[1] ~= nil and selectedUpgrades[1].text ~= nil then + for skill in string.gmatch(selectedUpgrades[1].text, "([^,]+)") do + selectedSkills[skill] = true + end + end +end + +function clickSkill(skillname) + selectedSkills[skillname] = not selectedSkills[skillname] + maybeUpdateLivingInkSkillDisplay() + updateSelectedLivingInkSkillText() +end + +-- Creates the invisible buttons overlaying the skill icons +function maybeMakeLivingInkSkillSelectionButtons() + if selfId ~= "09079-c" then return end + + local buttonData = { + function_owner = self, + position = { y = 0.2 }, + height = 130, + width = 130, + color = { 0, 0, 0, 0 }, + } + + for skillname, _ in pairs(selectedSkills) do + local funcName = "clickSkill" .. skillname + self.setVar(funcName, function() clickSkill(skillname) end) + + buttonData.click_function = funcName + buttonData.position.x = -1 * SKILL_ICON_POSITIONS[skillname].x + buttonData.position.z = SKILL_ICON_POSITIONS[skillname].z + self.createButton(buttonData) + end +end + +-- Builds a comma-delimited string of skills and places it in the Row 1 text field +function updateSelectedLivingInkSkillText() + local skillString = "" + if selectedSkills.willpower then + skillString = skillString .. "willpower" .. "," + end + if selectedSkills.intellect then + skillString = skillString .. "intellect" .. "," + end + if selectedSkills.combat then + skillString = skillString .. "combat" .. "," + end + if selectedSkills.agility then + skillString = skillString .. "agility" .. "," + end + if selectedUpgrades[1] == nil then + selectedUpgrades[1] = { } + end + selectedUpgrades[1].text = skillString +end + +-- Refresh the vector circles indicating a skill is selected. Since we can only have one table of +-- vectors set, have to refresh all 4 at once +function maybeUpdateLivingInkSkillDisplay() + if selfId ~= "09079-c" then return end + local circles = {} + for skill, isSelected in pairs(selectedSkills) do + if isSelected then + local circle = getCircleVector(SKILL_ICON_POSITIONS[skill]) + if circle ~= nil then + table.insert(circles, circle) + end + end + end + self.setVectorLines(circles) +end + +function getCircleVector(center) + local diameter = Vector(0, 0, 0.1) + local pointOfOrigin = Vector(center.x, Y_VISIBLE, center.z) + local vec + local vecList = {} + local arcStep = 5 + for i = 0, 360, arcStep do + diameter:rotateOver('y', arcStep) + vec = pointOfOrigin + diameter + vec.y = pointOfOrigin.y + table.insert(vecList, vec) + end + + return { + points = vecList, + color = VECTOR_COLOR.mystic, + thickness = 0.02, + } +end + +--------------------------------------------------------- +-- Summoned Servitor related functions +--------------------------------------------------------- + +-- Creates the invisible buttons overlaying the slot words +function maybeMakeServitorSlotSelectionButtons() + if selfId ~= "09080-c" then return end + + local buttonData = { + click_function = "clickArcane", + function_owner = self, + position = { x = -1 * SLOT_ICON_POSITIONS.arcane.x, y = 0.2, z = SLOT_ICON_POSITIONS.arcane.z }, + height = 130, + width = 130, + color = { 0, 0, 0, 0 }, + } + self.createButton(buttonData) + + buttonData.click_function = "clickAlly" + buttonData.position.x = -1 * SLOT_ICON_POSITIONS.ally.x + self.createButton(buttonData) +end + +-- toggles the clicked slot +function clickArcane() + if selectedUpgrades[6] == nil then + selectedUpgrades[6] = { } + end + if selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.arcane then + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.none + else + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.arcane + end + maybeUpdateServitorSlotDisplay() +end + +-- toggles the clicked slot +function clickAlly() + if selectedUpgrades[6] == nil then + selectedUpgrades[6] = { } + end + if selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.ally then + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.none + else + selectedUpgrades[6].text = SUMMONED_SERVITOR_SLOT_INDICES.ally + end + maybeUpdateServitorSlotDisplay() +end + +-- Refresh the vector circles indicating a slot is selected. +function maybeUpdateServitorSlotDisplay() + if selfId ~= "09080-c" then return end + + local center = SLOT_ICON_POSITIONS["arcane"] + local arcaneVecList = { + Vector(center.x + 0.12, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.12, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.12, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.12, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.12, Y_VISIBLE, center.z + 0.05), + } + + center = SLOT_ICON_POSITIONS["ally"] + local allyVecList = { + Vector(center.x + 0.07, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.07, Y_VISIBLE, center.z + 0.05), + Vector(center.x - 0.07, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.07, Y_VISIBLE, center.z - 0.05), + Vector(center.x + 0.07, Y_VISIBLE, center.z + 0.05), + } + + local arcaneVecColor = VECTOR_COLOR.unselected + local allyVecColor = VECTOR_COLOR.unselected + + if selectedUpgrades[6] ~= nil and selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.arcane then + arcaneVecColor = VECTOR_COLOR.mystic + elseif selectedUpgrades[6] ~= nil and selectedUpgrades[6].text == SUMMONED_SERVITOR_SLOT_INDICES.ally then + allyVecColor = VECTOR_COLOR.mystic + end + + self.setVectorLines({ + { + points = arcaneVecList, + color = arcaneVecColor, + thickness = 0.02, + }, + { + points = allyVecList, + color = allyVecColor, + thickness = 0.02, + } + }) +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.yaml new file mode 100644 index 000000000..03dd29a20 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Runic Axe Upgrade Sheet (Taboo) 4d729b.yaml @@ -0,0 +1,53 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 201 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '2': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/1814412497119682452/BD224FCE1980DBA38E5A687FABFD146AA1A30D0E/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907736/26A4084EBB3F67E4F215DE15DAE2B7489F7D5FAD/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"09022-t-c\",\n \"type\": \"UpgradeSheet\"\n}" +GUID: 4d729b +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Card Runic Axe Upgrade Sheet (Taboo) 4d729b.ttslua' +LuaScriptState: '[[0,0,0,0,0,0,0,0,0,0],["","","","",""]]' +MeasureMovement: false +Name: Card +Nickname: Runic Axe Upgrade Sheet (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 17.61 + posY: 3.21 + posZ: -12.46 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ríastrad (1) f1f24e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ríastrad (1) f1f24e.yaml index 40cee96f3..4ca1cf86c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ríastrad (1) f1f24e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ríastrad (1) f1f24e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588604 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07193\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Spell. Spirit. Cursed.\",\r\n - \ \"combatIcons\": 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07193\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Spell. Spirit. Cursed.\",\n \"combatIcons\": + 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: f1f24e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sacred Covenant (2) 87226d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sacred Covenant (2) 87226d.yaml index 90a47ed6b..cd5d7d8b4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sacred Covenant (2) 87226d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sacred Covenant (2) 87226d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553102 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07110\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Covenant. Blessed.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07110\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"startsInPlay\": true,\n \"level\": 2,\n \"traits\": \"Covenant. Blessed.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 87226d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.7 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sacrifice (1) f2877e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sacrifice (1) f2877e.yaml index c6327bcd6..92b75aeea 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sacrifice (1) f2877e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sacrifice (1) f2877e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230362 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04234\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04234\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Ritual.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: f2877e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.12 posY: 3.88 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sacrificial Beast 46812e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sacrificial Beast 46812e.yaml index 73d5edb45..61f85cb7e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sacrificial Beast 46812e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sacrificial Beast 46812e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371466 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98003\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster. Dark Young.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98003\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Dark Young.\",\n \"weakness\": true,\n \"cycle\": \"Promo\"\n}" GUID: 46812e Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 8.97 posY: 3.79 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Safeguard (2) 7dc42a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Safeguard (2) 7dc42a.yaml index 977e7c74c..0880a4c03 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Safeguard (2) 7dc42a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Safeguard (2) 7dc42a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447933 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06196\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06196\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 7dc42a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 25.86 posY: 3.53 posZ: -7.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Safeguard 8d6ae6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Safeguard 8d6ae6.yaml index 5678c5729..5f3c54a30 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Safeguard 8d6ae6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Safeguard 8d6ae6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545308 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60110\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60110\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 8d6ae6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.73 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Salvage (2) f2e87d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Salvage (2) f2e87d.yaml index 9df489dff..dbda4d8ba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Salvage (2) f2e87d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Salvage (2) f2e87d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379140 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09116\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09116\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: f2e87d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.36 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Savant (1) 5e3aac.yaml b/unpacked/Bag All Player Cards 15bb07/Card Savant (1) 5e3aac.yaml index d144897a4..a089516ac 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Savant (1) 5e3aac.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Savant (1) 5e3aac.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379042 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08052\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Developed.\",\r\n \"wildIcons\": 1,\r\n - \ \"dynamicIcons\": true,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08052\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Developed.\",\n \"wildIcons\": 1,\n \"dynamicIcons\": + true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 5e3aac Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.25 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sawed-Off Shotgun (5) 4f5f0f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sawed-Off Shotgun (5) 4f5f0f.yaml index ffe2c6dd9..fe3eb8dbb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sawed-Off Shotgun (5) 4f5f0f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sawed-Off Shotgun (5) 4f5f0f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449037 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06327\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Item. Weapon. Firearm. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 2,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06327\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Item. + Weapon. Firearm. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 2,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 4f5f0f Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.02 posY: 4.09 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Say Your Prayers 5c3dd0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Say Your Prayers 5c3dd0.yaml index da22fe930..e7c3ed78b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Say Your Prayers 5c3dd0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Say Your Prayers 5c3dd0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368501 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03116\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Desperate.\",\r\n \"willpowerIcons\": 4,\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03116\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Desperate.\",\n \"willpowerIcons\": 4,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 5c3dd0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scavenging (2) ff4aea.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scavenging (2) ff4aea.yaml index 537a3c23f..40f74d26d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scavenging (2) ff4aea.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scavenging (2) ff4aea.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448737 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06332\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06332\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: ff4aea Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.89 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scavenging 1b76c9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scavenging 1b76c9.yaml index c0436113b..5076f9b0c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scavenging 1b76c9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scavenging 1b76c9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368822 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01073\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01073\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: 1b76c9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 3.87 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scavenging b9e532.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scavenging b9e532.yaml index d59ed40bf..547f96f61 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scavenging b9e532.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scavenging b9e532.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587210 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01573\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01573\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: b9e532 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.92 posY: 3.32 posZ: 7.6 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scene of the Crime ab37af.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scene of the Crime ab37af.yaml index bed9a3840..9c00d4dc1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scene of the Crime ab37af.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scene of the Crime ab37af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226318 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04103\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Bold.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04103\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Bold.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: ab37af Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.99 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Schoffner's Catalogue 699a99.yaml b/unpacked/Bag All Player Cards 15bb07/Card Schoffner's Catalogue 699a99.yaml index f98c495c7..3d4df8a30 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Schoffner's Catalogue 699a99.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Schoffner's Catalogue 699a99.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378901 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08072\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08072\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. Tome.\",\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 5,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 699a99 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.18 posY: 2.9 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (1) 3a0df6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (1) 3a0df6.yaml index 6eccdd941..ee3f0d6ef 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (1) 3a0df6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (1) 3a0df6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430638 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03109\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Talent. Composure.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03109\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Talent. Composure.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 3a0df6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 4.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (3) 158450.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (3) 158450.yaml index 567ca2d52..cfaac7b76 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (3) 158450.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scientific Theory (3) 158450.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379030 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08040\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Talent. Composure.\",\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08040\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Talent. Composure.\",\n \"intellectIcons\": + 2,\n \"combatIcons\": 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: '158450' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 3.05 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scout Ahead 927d34.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scout Ahead 927d34.yaml index 269d22003..d3c815d90 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scout Ahead 927d34.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scout Ahead 927d34.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379037 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08047\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08047\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight. Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 927d34 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.34 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scrapper (3) (Taboo) fcffa3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scrapper (3) (Taboo) fcffa3.yaml deleted file mode 100644 index edf355be0..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Scrapper (3) (Taboo) fcffa3.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450606 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02193-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" -GUID: fcffa3 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Scrapper (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.13 - posY: 3.8 - posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scrapper (3) dffe4a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scrapper (3) dffe4a.yaml index 2f4e5cdef..f43cdd24b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scrapper (3) dffe4a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scrapper (3) dffe4a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368853 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02193\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02193\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": + true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: dffe4a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.66 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scrapper c8505c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scrapper c8505c.yaml index be1f5b2ca..fa3af6fbf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scrapper c8505c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scrapper c8505c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550809 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60511\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60511\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: c8505c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.05 posY: 3.75 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Prophecies 0d926f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Prophecies 0d926f.yaml index 1fd4d3f97..dba8db27f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Prophecies 0d926f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Prophecies 0d926f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380125 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06116\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06116\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tome.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 0d926f Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.07 posY: 3.76 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 5839e4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 5839e4.yaml deleted file mode 100644 index 8a0bde27e..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 5839e4.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450623 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: Mystic -DragSelectable: true -GMNotes: "{\r\n \"id\": \"05189-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: 5839e4 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Scroll of Secrets (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.16 - posY: 3.85 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 84a7df.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 84a7df.ttslua new file mode 100644 index 000000000..536b5234f --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 84a7df.ttslua @@ -0,0 +1,558 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/ScrollofSecrets") +end) +__bundle_register("playercards/cards/ScrollofSecrets", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between the lvl 0 and lvl 3 versions of Scroll of Secrets +local mythosAreaApi = require("core/MythosAreaApi") +local playmatApi = require("playermat/PlaymatApi") + +-- get class via metadata and create context menu accordingly +function onLoad() + local notes = JSON.decode(self.getGMNotes()) + if notes then + createContextMenu(notes.id) + else + print("Missing metadata for Scroll of Secrets!") + end +end + +function createContextMenu(id) + if id == "05116" or id == "05116-t" then + -- lvl 0: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + elseif id == "05188" or id == "05188-t" then + -- seeker lvl 3: draw 3 cards from the bottom + self.addContextMenuItem("Draw bottom card(s)", function(playerColor) contextFunc(playerColor, 3) end) + elseif id == "05189" or id == "05189-t" then + -- mystic lvl 3: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + end +end + +function contextFunc(playerColor, amount) + local options = { "Encounter Deck" } + + -- check for players with a deck and only display them as option + for _, color in ipairs(Player.getAvailableColors()) do + local matColor = playmatApi.getMatColor(color) + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + + if deckAreaObjects.draw or deckAreaObjects.topCard then + table.insert(options, color) + end + end + + -- show the target selection dialog + Player[playerColor].showOptionsDialog("Select target deck", options, _, function(owner) drawCardsFromBottom(playerColor, owner, amount) end) +end + +function drawCardsFromBottom(playerColor, owner, amount) + -- variable initialization + local deck = nil + local deckSize = 1 + local deckAreaObjects = {} + + -- get the respective deck + if owner == "Encounter Deck" then + deck = mythosAreaApi.getEncounterDeck() + else + local matColor = playmatApi.getMatColor(owner) + deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + deck = deckAreaObjects.draw + end + + -- error handling + if not deck then + printToColor("Couldn't find deck!", playerColor) + return + end + + -- set deck size if there is actually a deck and not just a card + if deck.type == "Deck" then + deckSize = #deck.getObjects() + end + + -- proceed according to deck size + if deckSize > amount then + for i = 1, amount do + local card = deck.takeObject({ top = false, flip = true }) + card.deal(1, playerColor) + end + else + -- deal the whole deck + deck.deal(amount, playerColor) + + if deckSize < amount then + -- Norman Withers handling + if deckAreaObjects.topCard then + deckAreaObjects.topCard.deal(1, playerColor) + deckSize = deckSize + 1 + end + + -- warning message for player + if deckSize < amount then + printToColor("Deck didn't contain enough cards.", playerColor) + end + end + end + printToColor("Handle the drawn cards according to the ability text on 'Scroll of Secrets'.", playerColor) +end +end) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 84a7df.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 84a7df.yaml new file mode 100644 index 000000000..83b81a1b4 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) 84a7df.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 310 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"05188-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. Tome.\",\n \"intellectIcons\": + 2,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Circle Undone\"\n}" +GUID: 84a7df +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Card Scroll of Secrets (3) (Taboo) 84a7df.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Scroll of Secrets (3) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -24.74 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) a2136a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) a2136a.yaml deleted file mode 100644 index 80c3300a1..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) a2136a.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450622 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: Seeker -DragSelectable: true -GMNotes: "{\r\n \"id\": \"05188-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: a2136a -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Scroll of Secrets (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.16 - posY: 4.16 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) c127f1.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) c127f1.ttslua new file mode 100644 index 000000000..c8b306f4e --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) c127f1.ttslua @@ -0,0 +1,558 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/ScrollofSecrets") +end) +__bundle_register("playercards/cards/ScrollofSecrets", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between the lvl 0 and lvl 3 versions of Scroll of Secrets +local mythosAreaApi = require("core/MythosAreaApi") +local playmatApi = require("playermat/PlaymatApi") + +-- get class via metadata and create context menu accordingly +function onLoad() + local notes = JSON.decode(self.getGMNotes()) + if notes then + createContextMenu(notes.id) + else + print("Missing metadata for Scroll of Secrets!") + end +end + +function createContextMenu(id) + if id == "05116" or id == "05116-t" then + -- lvl 0: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + elseif id == "05188" or id == "05188-t" then + -- seeker lvl 3: draw 3 cards from the bottom + self.addContextMenuItem("Draw bottom card(s)", function(playerColor) contextFunc(playerColor, 3) end) + elseif id == "05189" or id == "05189-t" then + -- mystic lvl 3: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + end +end + +function contextFunc(playerColor, amount) + local options = { "Encounter Deck" } + + -- check for players with a deck and only display them as option + for _, color in ipairs(Player.getAvailableColors()) do + local matColor = playmatApi.getMatColor(color) + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + + if deckAreaObjects.draw or deckAreaObjects.topCard then + table.insert(options, color) + end + end + + -- show the target selection dialog + Player[playerColor].showOptionsDialog("Select target deck", options, _, function(owner) drawCardsFromBottom(playerColor, owner, amount) end) +end + +function drawCardsFromBottom(playerColor, owner, amount) + -- variable initialization + local deck = nil + local deckSize = 1 + local deckAreaObjects = {} + + -- get the respective deck + if owner == "Encounter Deck" then + deck = mythosAreaApi.getEncounterDeck() + else + local matColor = playmatApi.getMatColor(owner) + deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + deck = deckAreaObjects.draw + end + + -- error handling + if not deck then + printToColor("Couldn't find deck!", playerColor) + return + end + + -- set deck size if there is actually a deck and not just a card + if deck.type == "Deck" then + deckSize = #deck.getObjects() + end + + -- proceed according to deck size + if deckSize > amount then + for i = 1, amount do + local card = deck.takeObject({ top = false, flip = true }) + card.deal(1, playerColor) + end + else + -- deal the whole deck + deck.deal(amount, playerColor) + + if deckSize < amount then + -- Norman Withers handling + if deckAreaObjects.topCard then + deckAreaObjects.topCard.deal(1, playerColor) + deckSize = deckSize + 1 + end + + -- warning message for player + if deckSize < amount then + printToColor("Deck didn't contain enough cards.", playerColor) + end + end + end + printToColor("Handle the drawn cards according to the ability text on 'Scroll of Secrets'.", playerColor) +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) c127f1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) c127f1.yaml new file mode 100644 index 000000000..dee95f2fa --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) (Taboo) c127f1.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 342 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"05189-t\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. Tome.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Circle + Undone\"\n}" +GUID: c127f1 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Card Scroll of Secrets (3) (Taboo) c127f1.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Scroll of Secrets (3) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -56.34 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 0b12ac.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 0b12ac.ttslua new file mode 100644 index 000000000..2c2ff4ee7 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 0b12ac.ttslua @@ -0,0 +1,558 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("playercards/cards/ScrollofSecrets", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between the lvl 0 and lvl 3 versions of Scroll of Secrets +local mythosAreaApi = require("core/MythosAreaApi") +local playmatApi = require("playermat/PlaymatApi") + +-- get class via metadata and create context menu accordingly +function onLoad() + local notes = JSON.decode(self.getGMNotes()) + if notes then + createContextMenu(notes.id) + else + print("Missing metadata for Scroll of Secrets!") + end +end + +function createContextMenu(id) + if id == "05116" or id == "05116-t" then + -- lvl 0: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + elseif id == "05188" or id == "05188-t" then + -- seeker lvl 3: draw 3 cards from the bottom + self.addContextMenuItem("Draw bottom card(s)", function(playerColor) contextFunc(playerColor, 3) end) + elseif id == "05189" or id == "05189-t" then + -- mystic lvl 3: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + end +end + +function contextFunc(playerColor, amount) + local options = { "Encounter Deck" } + + -- check for players with a deck and only display them as option + for _, color in ipairs(Player.getAvailableColors()) do + local matColor = playmatApi.getMatColor(color) + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + + if deckAreaObjects.draw or deckAreaObjects.topCard then + table.insert(options, color) + end + end + + -- show the target selection dialog + Player[playerColor].showOptionsDialog("Select target deck", options, _, function(owner) drawCardsFromBottom(playerColor, owner, amount) end) +end + +function drawCardsFromBottom(playerColor, owner, amount) + -- variable initialization + local deck = nil + local deckSize = 1 + local deckAreaObjects = {} + + -- get the respective deck + if owner == "Encounter Deck" then + deck = mythosAreaApi.getEncounterDeck() + else + local matColor = playmatApi.getMatColor(owner) + deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + deck = deckAreaObjects.draw + end + + -- error handling + if not deck then + printToColor("Couldn't find deck!", playerColor) + return + end + + -- set deck size if there is actually a deck and not just a card + if deck.type == "Deck" then + deckSize = #deck.getObjects() + end + + -- proceed according to deck size + if deckSize > amount then + for i = 1, amount do + local card = deck.takeObject({ top = false, flip = true }) + card.deal(1, playerColor) + end + else + -- deal the whole deck + deck.deal(amount, playerColor) + + if deckSize < amount then + -- Norman Withers handling + if deckAreaObjects.topCard then + deckAreaObjects.topCard.deal(1, playerColor) + deckSize = deckSize + 1 + end + + -- warning message for player + if deckSize < amount then + printToColor("Deck didn't contain enough cards.", playerColor) + end + end + end + printToColor("Handle the drawn cards according to the ability text on 'Scroll of Secrets'.", playerColor) +end +end) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/ScrollofSecrets") +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 0b12ac.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 0b12ac.yaml index 8b9815cd0..1e39877f1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 0b12ac.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 0b12ac.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293214 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Seeker DragSelectable: true -GMNotes: "{\r\n \"id\": \"05188\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05188\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 2,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 0b12ac Grid: true GridProjection: false @@ -31,7 +32,7 @@ HideWhenFaceDown: true IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Card Scroll of Secrets (3) 0b12ac.ttslua' LuaScriptState: '' MeasureMovement: false Name: Card @@ -47,11 +48,11 @@ Transform: posX: 8.98 posY: 3.99 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 194d88.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 194d88.ttslua new file mode 100644 index 000000000..2c2ff4ee7 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 194d88.ttslua @@ -0,0 +1,558 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("playercards/cards/ScrollofSecrets", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between the lvl 0 and lvl 3 versions of Scroll of Secrets +local mythosAreaApi = require("core/MythosAreaApi") +local playmatApi = require("playermat/PlaymatApi") + +-- get class via metadata and create context menu accordingly +function onLoad() + local notes = JSON.decode(self.getGMNotes()) + if notes then + createContextMenu(notes.id) + else + print("Missing metadata for Scroll of Secrets!") + end +end + +function createContextMenu(id) + if id == "05116" or id == "05116-t" then + -- lvl 0: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + elseif id == "05188" or id == "05188-t" then + -- seeker lvl 3: draw 3 cards from the bottom + self.addContextMenuItem("Draw bottom card(s)", function(playerColor) contextFunc(playerColor, 3) end) + elseif id == "05189" or id == "05189-t" then + -- mystic lvl 3: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + end +end + +function contextFunc(playerColor, amount) + local options = { "Encounter Deck" } + + -- check for players with a deck and only display them as option + for _, color in ipairs(Player.getAvailableColors()) do + local matColor = playmatApi.getMatColor(color) + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + + if deckAreaObjects.draw or deckAreaObjects.topCard then + table.insert(options, color) + end + end + + -- show the target selection dialog + Player[playerColor].showOptionsDialog("Select target deck", options, _, function(owner) drawCardsFromBottom(playerColor, owner, amount) end) +end + +function drawCardsFromBottom(playerColor, owner, amount) + -- variable initialization + local deck = nil + local deckSize = 1 + local deckAreaObjects = {} + + -- get the respective deck + if owner == "Encounter Deck" then + deck = mythosAreaApi.getEncounterDeck() + else + local matColor = playmatApi.getMatColor(owner) + deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + deck = deckAreaObjects.draw + end + + -- error handling + if not deck then + printToColor("Couldn't find deck!", playerColor) + return + end + + -- set deck size if there is actually a deck and not just a card + if deck.type == "Deck" then + deckSize = #deck.getObjects() + end + + -- proceed according to deck size + if deckSize > amount then + for i = 1, amount do + local card = deck.takeObject({ top = false, flip = true }) + card.deal(1, playerColor) + end + else + -- deal the whole deck + deck.deal(amount, playerColor) + + if deckSize < amount then + -- Norman Withers handling + if deckAreaObjects.topCard then + deckAreaObjects.topCard.deal(1, playerColor) + deckSize = deckSize + 1 + end + + -- warning message for player + if deckSize < amount then + printToColor("Deck didn't contain enough cards.", playerColor) + end + end + end + printToColor("Handle the drawn cards according to the ability text on 'Scroll of Secrets'.", playerColor) +end +end) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/ScrollofSecrets") +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 194d88.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 194d88.yaml index 38441c192..12c790140 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 194d88.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (3) 194d88.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293315 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Mystic DragSelectable: true -GMNotes: "{\r\n \"id\": \"05189\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tome.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Secret\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05189\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. + Tome.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 4,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: 194d88 Grid: true GridProjection: false @@ -32,7 +32,7 @@ HideWhenFaceDown: true IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Card Scroll of Secrets (3) 194d88.ttslua' LuaScriptState: '' MeasureMovement: false Name: Card @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.59 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) 19b705.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) 19b705.yaml deleted file mode 100644 index 2ef544ab7..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) 19b705.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450621 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"05116-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: 19b705 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Scroll of Secrets (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 8.97 - posY: 3.8 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) a2136a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) a2136a.yaml deleted file mode 100644 index 3b9c37127..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) a2136a.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450621 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: Seeker -DragSelectable: true -GMNotes: "{\r\n \"id\": \"05116-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" -GUID: a2136a -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Scroll of Secrets (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.16 - posY: 4.16 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) b383b8.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) b383b8.ttslua new file mode 100644 index 000000000..65187b79b --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) b383b8.ttslua @@ -0,0 +1,558 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/ScrollofSecrets") +end) +__bundle_register("playercards/cards/ScrollofSecrets", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between the lvl 0 and lvl 3 versions of Scroll of Secrets +local mythosAreaApi = require("core/MythosAreaApi") +local playmatApi = require("playermat/PlaymatApi") + +-- get class via metadata and create context menu accordingly +function onLoad() + local notes = JSON.decode(self.getGMNotes()) + if notes then + createContextMenu(notes.id) + else + print("Missing metadata for Scroll of Secrets!") + end +end + +function createContextMenu(id) + if id == "05116" or id == "05116-t" then + -- lvl 0: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + elseif id == "05188" or id == "05188-t" then + -- seeker lvl 3: draw 3 cards from the bottom + self.addContextMenuItem("Draw bottom card(s)", function(playerColor) contextFunc(playerColor, 3) end) + elseif id == "05189" or id == "05189-t" then + -- mystic lvl 3: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + end +end + +function contextFunc(playerColor, amount) + local options = { "Encounter Deck" } + + -- check for players with a deck and only display them as option + for _, color in ipairs(Player.getAvailableColors()) do + local matColor = playmatApi.getMatColor(color) + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + + if deckAreaObjects.draw or deckAreaObjects.topCard then + table.insert(options, color) + end + end + + -- show the target selection dialog + Player[playerColor].showOptionsDialog("Select target deck", options, _, function(owner) drawCardsFromBottom(playerColor, owner, amount) end) +end + +function drawCardsFromBottom(playerColor, owner, amount) + -- variable initialization + local deck = nil + local deckSize = 1 + local deckAreaObjects = {} + + -- get the respective deck + if owner == "Encounter Deck" then + deck = mythosAreaApi.getEncounterDeck() + else + local matColor = playmatApi.getMatColor(owner) + deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + deck = deckAreaObjects.draw + end + + -- error handling + if not deck then + printToColor("Couldn't find deck!", playerColor) + return + end + + -- set deck size if there is actually a deck and not just a card + if deck.type == "Deck" then + deckSize = #deck.getObjects() + end + + -- proceed according to deck size + if deckSize > amount then + for i = 1, amount do + local card = deck.takeObject({ top = false, flip = true }) + card.deal(1, playerColor) + end + else + -- deal the whole deck + deck.deal(amount, playerColor) + + if deckSize < amount then + -- Norman Withers handling + if deckAreaObjects.topCard then + deckAreaObjects.topCard.deal(1, playerColor) + deckSize = deckSize + 1 + end + + -- warning message for player + if deckSize < amount then + printToColor("Deck didn't contain enough cards.", playerColor) + end + end + end + printToColor("Handle the drawn cards according to the ability text on 'Scroll of Secrets'.", playerColor) +end +end) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) b383b8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) b383b8.yaml new file mode 100644 index 000000000..a7882ee4c --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets (Taboo) b383b8.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 353 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"05116-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker|Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Tome.\",\n \"intellectIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Circle Undone\"\n}" +GUID: b383b8 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Card Scroll of Secrets (Taboo) b383b8.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Scroll of Secrets (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -56.34 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets 230835.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets 230835.ttslua new file mode 100644 index 000000000..42ea72d22 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets 230835.ttslua @@ -0,0 +1,558 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/ScrollofSecrets") +end) +__bundle_register("playercards/cards/ScrollofSecrets", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between the lvl 0 and lvl 3 versions of Scroll of Secrets +local mythosAreaApi = require("core/MythosAreaApi") +local playmatApi = require("playermat/PlaymatApi") + +-- get class via metadata and create context menu accordingly +function onLoad() + local notes = JSON.decode(self.getGMNotes()) + if notes then + createContextMenu(notes.id) + else + print("Missing metadata for Scroll of Secrets!") + end +end + +function createContextMenu(id) + if id == "05116" or id == "05116-t" then + -- lvl 0: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + elseif id == "05188" or id == "05188-t" then + -- seeker lvl 3: draw 3 cards from the bottom + self.addContextMenuItem("Draw bottom card(s)", function(playerColor) contextFunc(playerColor, 3) end) + elseif id == "05189" or id == "05189-t" then + -- mystic lvl 3: draw 1 card from the bottom + self.addContextMenuItem("Draw bottom card", function(playerColor) contextFunc(playerColor, 1) end) + end +end + +function contextFunc(playerColor, amount) + local options = { "Encounter Deck" } + + -- check for players with a deck and only display them as option + for _, color in ipairs(Player.getAvailableColors()) do + local matColor = playmatApi.getMatColor(color) + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + + if deckAreaObjects.draw or deckAreaObjects.topCard then + table.insert(options, color) + end + end + + -- show the target selection dialog + Player[playerColor].showOptionsDialog("Select target deck", options, _, function(owner) drawCardsFromBottom(playerColor, owner, amount) end) +end + +function drawCardsFromBottom(playerColor, owner, amount) + -- variable initialization + local deck = nil + local deckSize = 1 + local deckAreaObjects = {} + + -- get the respective deck + if owner == "Encounter Deck" then + deck = mythosAreaApi.getEncounterDeck() + else + local matColor = playmatApi.getMatColor(owner) + deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + deck = deckAreaObjects.draw + end + + -- error handling + if not deck then + printToColor("Couldn't find deck!", playerColor) + return + end + + -- set deck size if there is actually a deck and not just a card + if deck.type == "Deck" then + deckSize = #deck.getObjects() + end + + -- proceed according to deck size + if deckSize > amount then + for i = 1, amount do + local card = deck.takeObject({ top = false, flip = true }) + card.deal(1, playerColor) + end + else + -- deal the whole deck + deck.deal(amount, playerColor) + + if deckSize < amount then + -- Norman Withers handling + if deckAreaObjects.topCard then + deckAreaObjects.topCard.deal(1, playerColor) + deckSize = deckSize + 1 + end + + -- warning message for player + if deckSize < amount then + printToColor("Deck didn't contain enough cards.", playerColor) + end + end + end + printToColor("Handle the drawn cards according to the ability text on 'Scroll of Secrets'.", playerColor) +end +end) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets 230835.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets 230835.yaml index 7576cb436..6745936b4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets 230835.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scroll of Secrets 230835.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277604 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05116\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker|Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05116\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker|Mystic\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": + \"Item. Tome.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Circle Undone\"\n}" GUID: '230835' Grid: true GridProjection: false @@ -31,7 +32,7 @@ HideWhenFaceDown: true IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Card Scroll of Secrets 230835.ttslua' LuaScriptState: '' MeasureMovement: false Name: Card @@ -47,11 +48,11 @@ Transform: posX: 9.0 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scrounge for Supplies 7651f3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scrounge for Supplies 7651f3.yaml index d64d37dba..0951316b8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scrounge for Supplies 7651f3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scrounge for Supplies 7651f3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380229 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06165\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Fortune.\",\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06165\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Fortune.\",\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: 7651f3 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.84 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scrying (3) e58d2a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scrying (3) e58d2a.yaml index c3084db2c..3a82882ad 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scrying (3) e58d2a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scrying (3) e58d2a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230350 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03236\",\r\n \"alternate_ids\": [\r\n \"01690\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": 2,\r\n \"uses\": - [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03236\",\n \"alternate_ids\": [\n \"01690\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Arcane\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n + \ \"level\": 3,\n \"traits\": \"Spell.\",\n \"intellectIcons\": 2,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: e58d2a Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scrying 8a927c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scrying 8a927c.yaml index f4350b143..ef2bac4a1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scrying 8a927c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scrying 8a927c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230319 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01061\",\r\n \"alternate_ids\": [\r\n \"01561\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": 1,\r\n \"uses\": - [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01061\",\n \"alternate_ids\": [\n \"01561\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Arcane\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n + \ \"level\": 0,\n \"traits\": \"Spell.\",\n \"intellectIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Core\"\n}" GUID: 8a927c Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Scrying Mirror 6446d1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Scrying Mirror 6446d1.yaml index 94b784022..72bad0926 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Scrying Mirror 6446d1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Scrying Mirror 6446d1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538704 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60406\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60406\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 6446d1 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sea Change Harpoon 4e405d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sea Change Harpoon 4e405d.yaml index e09bd603f..13b3af483 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sea Change Harpoon 4e405d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sea Change Harpoon 4e405d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587308 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07014\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07014\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Item. Weapon. Melee.\",\n + \ \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 4e405d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.79 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Seal of the Elder Sign (5) 91e890.yaml b/unpacked/Bag All Player Cards 15bb07/Card Seal of the Elder Sign (5) 91e890.yaml index 776d38627..d8342f1a4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Seal of the Elder Sign (5) 91e890.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Seal of the Elder Sign (5) 91e890.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230359 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03312\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 5,\r\n \"traits\": \"Spell. Expert.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03312\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 5,\n \"traits\": \"Spell. Expert.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 91e890 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.ttslua index caf019f7a..d8be67b08 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.ttslua @@ -41,6 +41,48 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/cards/SealoftheSeventhSign5") end) @@ -76,6 +118,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -123,7 +170,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -132,7 +181,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -148,6 +197,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -183,7 +237,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -191,6 +245,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -202,8 +260,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -228,7 +286,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -251,7 +309,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -263,36 +321,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -313,11 +396,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -325,33 +412,121 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.yaml index 172abbb77..22185dad0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Seal of the Seventh Sign (5) 9cbac1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 278101 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Over the Threshold and Beyond DragSelectable: true -GMNotes: "{\r\n \"id\": \"04311\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Spell. Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 7,\r\n \"type\": - \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04311\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Spell. + Ritual.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 7,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 9cbac1 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.15 posY: 3.86 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Search for the Truth 4156cf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Search for the Truth 4156cf.yaml index 6e3b8315c..ca0e59d50 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Search for the Truth 4156cf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Search for the Truth 4156cf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371806 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02008\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": 2,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02008\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Insight.\",\n \"intellectIcons\": 2,\n \"wildIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 4156cf Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.1 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Searching for Izzie 426d28.yaml b/unpacked/Bag All Player Cards 15bb07/Card Searching for Izzie 426d28.yaml index 79d9e08ba..28cc8cd12 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Searching for Izzie 426d28.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Searching for Izzie 426d28.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586926 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02011\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Task.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02011\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task.\",\n \"weakness\": true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 426d28 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.07 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Second Wind baef55.yaml b/unpacked/Bag All Player Cards 15bb07/Card Second Wind baef55.yaml index 767f94992..0daba6d68 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Second Wind baef55.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Second Wind baef55.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226316 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04149\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Bold.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04149\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spirit. Bold.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: baef55 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.24 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers (2) 719f7e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers (2) 719f7e.yaml index e7a7f2418..291a9dbc3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers (2) 719f7e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers (2) 719f7e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587110 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60227\",\r\n \"alternate_ids\": [\r\n \"01685\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n \"cost\": 1,\r\n - \ \"level\": 2,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60227\",\n \"alternate_ids\": [\n \"01685\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Seeker\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": + \"Insight.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 2,\n \"cycle\": \"Investigator + Packs\"\n}" GUID: 719f7e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 19.01 posY: 3.38 posZ: -56.84 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers f69e10.yaml b/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers f69e10.yaml index 23494f938..f0a104b34 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers f69e10.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Seeking Answers f69e10.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368407 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02023\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02023\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: f69e10 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.72 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau 342311.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau 342311.yaml index a83470f84..033c497a5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau 342311.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau 342311.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270912 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Painter DragSelectable: true -GMNotes: "{\r\n \"id\": \"03003\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Artist.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03003\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Artist.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 4,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: '342311' Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 78.51 posY: 1.06 posZ: 27.14 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau d35705.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau d35705.yaml index 0ffe30cb1..34b8f10b3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau d35705.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sefina Rousseau d35705.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259512 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.18 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Segment of Onyx (1) ff9f23.yaml b/unpacked/Bag All Player Cards 15bb07/Card Segment of Onyx (1) ff9f23.yaml index e5489c70e..67880caad 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Segment of Onyx (1) ff9f23.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Segment of Onyx (1) ff9f23.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 441026 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Item. Relic. Occult.\",\r\n - \ \"bonded\": [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06022\"\r\n }\r\n - \ ],\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06021\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Item. Relic. Occult.\",\n \"bonded\": + [\n {\n \"count\": 1,\n \"id\": \"06022\"\n }\n ],\n \"wildIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: ff9f23 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 3.7 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Self-Centered eff3c8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Self-Centered eff3c8.yaml index 22d565c9e..1445ff804 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Self-Centered eff3c8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Self-Centered eff3c8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 438125 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"06035\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06035\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: eff3c8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Self-Destructive 2204cc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Self-Destructive 2204cc.yaml index 57e21dda8..0236646b6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Self-Destructive 2204cc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Self-Destructive 2204cc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545302 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60104\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60104\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Investigator Packs\"\n}" GUID: 2204cc Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Self-Sacrifice 5e808d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Self-Sacrifice 5e808d.yaml index 7b491c7e1..4113cc9d1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Self-Sacrifice 5e808d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Self-Sacrifice 5e808d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379831 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06157\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06157\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Spirit.\",\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 5e808d Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Selfless to a Fault 07dd55.yaml b/unpacked/Bag All Player Cards 15bb07/Card Selfless to a Fault 07dd55.yaml index cc58a80e2..5d404133b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Selfless to a Fault 07dd55.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Selfless to a Fault 07dd55.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587701 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09003\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09003\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 07dd55 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 17.74 posY: 2.21 posZ: 59.76 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sell Your Soul 180b5b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sell Your Soul 180b5b.yaml index 23691895d..957072d65 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sell Your Soul 180b5b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sell Your Soul 180b5b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545214 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"53015\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Pact.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53015\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Pact.\",\n \"weakness\": true,\n \"cycle\": \"Return to the Forgotten + Age\"\n}" GUID: 180b5b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.16 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sergeant Monroe 5630c2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sergeant Monroe 5630c2.yaml index 8b4c10397..87f691b65 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sergeant Monroe 5630c2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sergeant Monroe 5630c2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 534902 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Two Days Until Retirement DragSelectable: true -GMNotes: "{\r\n \"id\": \"84008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 5,\r\n \"traits\": \"Ally. Police.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"84008\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 5,\n \"traits\": \"Ally. Police.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 5630c2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.1 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.ttslua index 0b75bd9ae..fa9271ee7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.ttslua @@ -41,6 +41,16 @@ 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/SerpentsofYig") +end) +__bundle_register("playercards/cards/SerpentsofYig", function(require, _LOADED, __bundle_register, __bundle_modules) +VALID_TOKENS = { + ["Elder Sign"] = true +} + +require("playercards/CardsThatSealTokens") +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. @@ -66,6 +76,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -113,7 +128,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -122,7 +139,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -138,6 +155,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -173,7 +195,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -181,6 +203,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -192,8 +218,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -218,7 +244,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -241,7 +267,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -253,36 +279,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -303,11 +354,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -315,43 +370,163 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject 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/SerpentsofYig") -end) -__bundle_register("playercards/cards/SerpentsofYig", function(require, _LOADED, __bundle_register, __bundle_modules) -VALID_TOKENS = { - ["Elder Sign"] = true -} +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} -require("playercards/CardsThatSealTokens") + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.yaml b/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.yaml index d542ec28d..2ce095c22 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Serpents of Yig 678391.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232837 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Humanoid. Monster. Serpent. DragSelectable: true -GMNotes: "{\r\n \"id\": \"04014\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Monster. Serpent.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04014\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Monster. Serpent.\",\n \"weakness\": true,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: '678391' Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 3.68 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shadow Agents 9be144.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shadow Agents 9be144.yaml index 3bbfe713e..50a6ae7c8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shadow Agents 9be144.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shadow Agents 9be144.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 586405 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07011\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Cultist.\",\r\n \"weakness\": true,\r\n \"cycle\": \"The - Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07011\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Cultist.\",\n \"weakness\": true,\n \"cycle\": \"The + Innsmouth Conspiracy\"\n}" GUID: 9be144 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.05 posY: 3.74 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.ttslua index a6eebbdae..3fee89c6f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.ttslua @@ -41,95 +41,6 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local TokenArrangerApi = {} - - -- local function to call the token arranger, if it is on the table - ---@param functionName String Name of the function to cal - ---@param argument Variant Parameter to pass - local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] - if tokenArranger ~= nil then - tokenArranger.call(functionName, argument) - end - end - - -- updates the token modifiers with the provided data - ---@param tokenData 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 MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) - end - - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { 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) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/cards/ShardsoftheVoid3") -end) -__bundle_register("playercards/cards/ShardsoftheVoid3", function(require, _LOADED, __bundle_register, __bundle_modules) -VALID_TOKENS = { - ["0"] = true -} - -SHOW_SINGLE_RELEASE = true - -require("playercards/CardsThatSealTokens") -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. @@ -155,6 +66,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -202,7 +118,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -211,7 +129,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -227,6 +145,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -262,7 +185,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -270,6 +193,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -281,8 +208,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -307,7 +234,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -330,7 +257,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -342,18 +269,266 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end +end) +__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + -- local function to call the token arranger, if it is on the table + ---@param functionName String Name of the function to cal + ---@param argument Variant 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/ShardsoftheVoid3") +end) +__bundle_register("playercards/cards/ShardsoftheVoid3", function(require, _LOADED, __bundle_register, __bundle_modules) +VALID_TOKENS = { + ["0"] = true +} + +SHOW_SINGLE_RELEASE = true + +require("playercards/CardsThatSealTokens") end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.yaml index 8ffadf920..6c5ac669d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shards of the Void (3) b10a71.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 278102 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04310\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04310\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: b10a71 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.97 posY: 4.34 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sharp Vision (1) 4d9a97.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sharp Vision (1) 4d9a97.yaml index 75b8c1efb..834722c4a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sharp Vision (1) 4d9a97.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sharp Vision (1) 4d9a97.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447732 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06204\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Developed.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06204\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Developed.\",\n \"intellectIcons\": 1,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: 4d9a97 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sharpshooter (3) (Taboo) 77b1e7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sharpshooter (3) (Taboo) 77b1e7.yaml new file mode 100644 index 000000000..87e64dc57 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Sharpshooter (3) (Taboo) 77b1e7.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 320 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"60327-t\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" +GUID: 77b1e7 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Sharpshooter (3) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -51.82 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sharpshooter (3) 7f27d6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sharpshooter (3) 7f27d6.yaml index a5e2efbcc..863837a3d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sharpshooter (3) 7f27d6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sharpshooter (3) 7f27d6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538625 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60327\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60327\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 7f27d6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.7 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shed a Light (Taboo) 44292c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shed a Light (Taboo) 44292c.yaml new file mode 100644 index 000000000..f3429c584 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Shed a Light (Taboo) 44292c.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 335 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"09108-t\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" +GUID: 44292c +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Shed a Light (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -42.8 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shed a Light 2c165a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shed a Light 2c165a.yaml index e3ceb89b6..2c6cf2421 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shed a Light 2c165a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shed a Light 2c165a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379132 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09108\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09108\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight. Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 2c165a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.72 posY: 3.38 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shell Shock bcf406.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shell Shock bcf406.yaml index cb521b372..04df23492 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shell Shock bcf406.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shell Shock bcf406.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431731 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03008\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03008\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: bcf406 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.ttslua index 9d79382c6..1db2d727a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.ttslua @@ -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("playercards/cards/ShieldofFaith2") -end) __bundle_register("playercards/cards/ShieldofFaith2", function(require, _LOADED, __bundle_register, __bundle_modules) VALID_TOKENS = { ["Bless"] = true @@ -79,6 +76,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -126,7 +128,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -135,7 +139,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -151,6 +155,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -186,7 +195,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -194,6 +203,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -205,8 +218,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -231,7 +244,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -254,7 +267,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -266,36 +279,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -316,11 +354,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -328,33 +370,166 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/ShieldofFaith2") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.yaml index 02f52313d..a1f7eeebb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shield of Faith (2) 06abe0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589001 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07221\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07221\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell. + Blessed.\",\n \"willpowerIcons\": 2,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 06abe0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shining Trapezohedron (4) b4b991.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shining Trapezohedron (4) b4b991.yaml index 52238e4d7..a7f8427cf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shining Trapezohedron (4) b4b991.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shining Trapezohedron (4) b4b991.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527238 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06329\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06329\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"agilityIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: b4b991 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shocking Discovery f4dd3d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shocking Discovery f4dd3d.yaml index f396fbe70..18ce4c687 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shocking Discovery f4dd3d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shocking Discovery f4dd3d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583703 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06009\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Blunder. Mystery.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06009\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Blunder. Mystery.\",\n \"weakness\": true,\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: f4dd3d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.ttslua index 6803b6a3a..f4bf23cc0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.ttslua @@ -41,11 +41,121 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/ShortSupply") end) __bundle_register("playercards/cards/ShortSupply", function(require, _LOADED, __bundle_register, __bundle_modules) -local playmatAPI = require("playermat/PlaymatApi") +local playmatApi = require("playermat/PlaymatApi") function onLoad() self.addContextMenuItem("Discard 10 cards", shortSupply) @@ -53,11 +163,12 @@ end -- called by context menu entry function shortSupply(color) - local matColor = playmatAPI.getMatColorByPosition(self.getPosition()) + local matColor = playmatApi.getMatColorByPosition(self.getPosition()) -- get draw deck and discard position - local drawDeck = playmatAPI.getDrawDeck(matColor) - local discardPos = playmatAPI.getDiscardPosition(matColor) + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + local drawDeck = deckAreaObjects.draw + local discardPos = playmatApi.getDiscardPosition(matColor) -- error handling if discardPos == nil then @@ -68,232 +179,292 @@ function shortSupply(color) if drawDeck == nil then broadcastToColor("Deck not found!", color, "Yellow") return - elseif drawDeck.tag ~= "Deck" then + elseif drawDeck.type ~= "Deck" then broadcastToColor("Deck only contains a single card!", color, "Yellow") return end - -- discard cards + -- discard cards, waiting 0.7 seconds between each discard to give players visiblity of the cards broadcastToColor("Discarding top 10 cards for player color '" .. matColor .. "'.", color, "White") for i = 1, 10 do - drawDeck.takeObject({ flip = true, position = { discardPos.x, 2 + 0.075 * i, discardPos.z } }) + Wait.time(function() drawDeck.takeObject({ flip = true, position = { discardPos.x, 2 + 0.075 * i, discardPos.z } }) end, .7 * (i - 1)) end end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) diff --git a/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.yaml b/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.yaml index ce1a7c422..0be5371a6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Short Supply e5f541.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378900 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08071\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08071\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: e5f541 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shortcut (2) 29169e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shortcut (2) 29169e.yaml index 5b2068502..1ac0bb50f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shortcut (2) 29169e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shortcut (2) 29169e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 585308 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03232\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03232\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Insight. Tactic.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to + Carcosa\"\n}" GUID: 29169e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.86 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shortcut d4fd4a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shortcut d4fd4a.yaml index 9ff388d01..f49c2a563 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shortcut d4fd4a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shortcut d4fd4a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368405 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02022\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02022\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight. Tactic.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: d4fd4a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.85 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shotgun (4) c92ea3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shotgun (4) c92ea3.yaml index 2e4f3b290..ac5769046 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shotgun (4) c92ea3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shotgun (4) c92ea3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226357 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01029\",\r\n \"alternate_ids\": [\r\n \"01529\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n \"cost\": 5,\r\n - \ \"level\": 4,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n \"combatIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": \"Ammo\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01029\",\n \"alternate_ids\": [\n \"01529\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand x2\",\n \"class\": \"Guardian\",\n \"cost\": 5,\n + \ \"level\": 4,\n \"traits\": \"Item. Weapon. Firearm.\",\n \"combatIcons\": 2,\n + \ \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Ammo\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Core\"\n}" GUID: c92ea3 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 19.67 posY: 3.37 posZ: -57.21 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Showmanship ad63bc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Showmanship ad63bc.yaml index 782b3cf9b..c98436076 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Showmanship ad63bc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Showmanship ad63bc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 580206 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07012\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07012\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Talent.\",\n \"combatIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: ad63bc Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.21 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shrewd Analysis 658d38.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shrewd Analysis 658d38.yaml index 2f70d38fe..9b6e56645 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shrewd Analysis 658d38.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shrewd Analysis 658d38.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368419 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04106\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04106\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 658d38 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 5.03 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shrewd Dealings c70129.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shrewd Dealings c70129.yaml index 540abe37b..55fdcd0ba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shrewd Dealings c70129.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shrewd Dealings c70129.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379008 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08017\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": 2,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08017\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Talent.\",\n \"intellectIcons\": 2,\n \"wildIcons\": + 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: c70129 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.68 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shrine of the Moirai (3) 1934c6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shrine of the Moirai (3) 1934c6.yaml index eed07cb2c..efed1a6a3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shrine of the Moirai (3) 1934c6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shrine of the Moirai (3) 1934c6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 589909 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07310\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Fortune. Blessed. Cursed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n - \ \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Offering\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07310\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Fortune. Blessed. Cursed.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Offering\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 1934c6 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.02 posY: 4.05 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (3) b3ce16.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (3) b3ce16.yaml index aa15fdc68..b6e7c368c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (3) b3ce16.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (3) b3ce16.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230355 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02154\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02154\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: b3ce16 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.02 posY: 4.05 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (5) 7a33b2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (5) 7a33b2.yaml index a51e301fb..c65507ee9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (5) 7a33b2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shrivelling (5) 7a33b2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230361 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02306\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02306\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"combatIcons\": 2,\n \"uses\": [\n {\n \"count\": + 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 7a33b2 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.16 posY: 3.71 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shrivelling 914053.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shrivelling 914053.yaml index de3550540..024f2d69d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shrivelling 914053.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shrivelling 914053.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230328 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01060\",\r\n \"alternate_ids\": [\r\n \"01560\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 3,\r\n - \ \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": 1,\r\n \"uses\": - [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Charge\",\r\n \"token\": - \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01060\",\n \"alternate_ids\": [\n \"01560\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Arcane\",\n \"class\": \"Mystic\",\n \"cost\": 3,\n + \ \"level\": 0,\n \"traits\": \"Spell.\",\n \"combatIcons\": 1,\n \"uses\": [\n + \ {\n \"count\": 4,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Core\"\n}" GUID: '914053' Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows (4) 12bdf1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows (4) 12bdf1.yaml index 670b71e3f..342c931cf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows (4) 12bdf1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows (4) 12bdf1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 579808 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07228\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Spell. Cursed.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07228\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Spell. + Cursed.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 12bdf1 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.98 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows a565d5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows a565d5.yaml index 09bca7a3b..f1df80a58 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows a565d5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Shroud of Shadows a565d5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553111 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07119\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Cursed.\",\r\n \"agilityIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07119\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell. + Cursed.\",\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: a565d5 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.97 posY: 4.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sign Magick (3) f998c5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sign Magick (3) f998c5.yaml index 18f0c2db5..9aa3c050c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sign Magick (3) f998c5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sign Magick (3) f998c5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449528 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"54008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Ritual. Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54008\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Ritual. + Talent.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"Return + to the Circle Undone\"\n}" GUID: f998c5 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 3.73 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sign Magick 05d263.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sign Magick 05d263.yaml index 60c541be8..11b6b9f46 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sign Magick 05d263.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sign Magick 05d263.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277510 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05112\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ritual. Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05112\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ritual. + Talent.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 05d263 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.77 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 119880.yaml b/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 119880.yaml deleted file mode 100644 index 221138bdc..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 119880.yaml +++ /dev/null @@ -1,55 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558201 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"07197-t\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Practiced. Blessed.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" -GUID: '119880' -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Signum Crucis (2) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 21.83 - posY: 4.32 - posZ: -45.45 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 750b7a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 750b7a.yaml new file mode 100644 index 000000000..f8366b64f --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) (Taboo) 750b7a.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 336 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"07197-t\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Practiced. Blessed.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" +GUID: 750b7a +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Signum Crucis (2) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.48 + posZ: -33.77 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) c73bb0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) c73bb0.yaml index c45d8eb94..547d20ab4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) c73bb0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Signum Crucis (2) c73bb0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588508 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07197\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Practiced. Blessed.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07197\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Practiced. Blessed.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: c73bb0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.33 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 3f92cf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 3f92cf.yaml index 25bea75d5..650c5a17d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 3f92cf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 3f92cf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 552804 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Sailor DragSelectable: true -GMNotes: "{\r\n \"id\": \"07005\",\r\n \"alternate_ids\": [\r\n \"98013\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Survivor\",\r\n \"traits\": - \"Drifter.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": 2,\r\n \"combatIcons\": - 4,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07005\",\n \"alternate_ids\": [\n \"98013\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Survivor\",\n \"traits\": \"Drifter.\",\n \"willpowerIcons\": + 2,\n \"intellectIcons\": 2,\n \"combatIcons\": 4,\n \"agilityIcons\": 4,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 3f92cf Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272429 ColorDiffuse: @@ -90,10 +90,10 @@ States: posY: 1.49510384 posZ: -1.72874641 rotX: -8.9108e-08 - rotY: 180.0 + rotY: 180 rotZ: -6.421163e-07 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: 5.07 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 574b59.yaml b/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 574b59.yaml index e684769e4..c44dbec01 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 574b59.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Silas Marsh 574b59.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553204 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07005-m\",\r\n \"alternate_ids\": [\r\n \"98013-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"07005-m\",\n \"alternate_ids\": [\n \"98013-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: 574b59 Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 272508 ColorDiffuse: @@ -88,7 +88,7 @@ States: rotY: 270.003784 rotZ: 8.567934e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -13.49 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Silas's Net 4f11a2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Silas's Net 4f11a2.yaml index fcbd609bb..3cb1f684e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Silas's Net 4f11a2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Silas's Net 4f11a2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582309 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07015\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Tool.\",\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07015\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Tool.\",\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 4f11a2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 4.03 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Silver Twilight Acolyte 16a89d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Silver Twilight Acolyte 16a89d.yaml index 63a32a513..9b158b7d8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Silver Twilight Acolyte 16a89d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Silver Twilight Acolyte 16a89d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527417 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Enemy DragSelectable: true -GMNotes: "{\r\n \"id\": \"01102\",\r\n \"alternate_ids\": [\r\n \"01602\"\r\n - \ ],\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n \"traits\": \"Humanoid. - Cultist. Silver Twilight.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01102\",\n \"alternate_ids\": [\n \"01602\"\n ],\n \"type\": + \"Enemy\",\n \"class\": \"Neutral\",\n \"traits\": \"Humanoid. Cultist. Silver + Twilight.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n \"cycle\": + \"Core\"\n}" GUID: 16a89d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.46 posY: 3.32 posZ: 26.95 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sin-Eater (3) 0c77d6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sin-Eater (3) 0c77d6.yaml index 163c188c0..b965d0fb3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sin-Eater (3) 0c77d6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sin-Eater (3) 0c77d6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379118 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09094\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Ritual.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09094\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Ritual.\",\n \"permanent\": + true,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 0c77d6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.74 posY: 3.34 posZ: 65.49 - rotX: 359.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 3 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sinha's Medical Kit 8d6475.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sinha's Medical Kit 8d6475.yaml index 9b69ceb54..e007c3a8e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sinha's Medical Kit 8d6475.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sinha's Medical Kit 8d6475.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452306 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08736\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Science.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08736\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Science.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 8d6475 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 79.17 posY: 3.32 posZ: 7.4 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Siren Call b9fbff.yaml b/unpacked/Bag All Player Cards 15bb07/Card Siren Call b9fbff.yaml index 284cc6320..4c5ad89c7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Siren Call b9fbff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Siren Call b9fbff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 585110 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07016\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07016\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: b9fbff Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.15 posY: 3.67 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 1c78ea.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 1c78ea.yaml index 800c9824c..986aab7fb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 1c78ea.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 1c78ea.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553200 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.88 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 617aeb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 617aeb.yaml index 90270db9a..42410abe9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 617aeb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sister Mary 617aeb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553400 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Nun DragSelectable: true -GMNotes: "{\r\n \"id\": \"07001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Believer. Blessed.\",\r\n \"willpowerIcons\": - 4,\r\n \"intellectIcons\": 2,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 3,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Believer. Blessed.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 2,\n \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 617aeb Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 1.8 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense (4) 060943.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense (4) 060943.yaml index bf121738d..174fd86cf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense (4) 060943.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense (4) 060943.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379618 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05322\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05322\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 060943 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.67 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense 6eceef.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense 6eceef.yaml index cf0abec72..327d56315 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense 6eceef.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sixth Sense 6eceef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277512 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05158\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05158\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"intellectIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 6eceef Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.13 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Back) a03077.yaml b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Back) a03077.yaml index c44bbcdfa..6bdba9765 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Back) a03077.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Back) a03077.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270204 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Ex-Con DragSelectable: true -GMNotes: "{\r\n \"id\": \"01003-pb\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Criminal.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01003-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Rogue\",\n \"traits\": \"Criminal.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 4,\n \"cycle\": \"Core\"\n}" GUID: a03077 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 2.12 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Front) 8116a6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Front) 8116a6.yaml index 757a5329b..ac96c9dcc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Front) 8116a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel Front) 8116a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270203 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Ex-Con DragSelectable: true -GMNotes: "{\r\n \"id\": \"01003-pf\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Criminal.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01003-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Rogue\",\n \"traits\": \"Criminal.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 4,\n \"cycle\": \"Core\"\n}" GUID: 8116a6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 1.75 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel) 22ebb2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel) 22ebb2.yaml index 9d40fad55..1cf8d92d1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel) 22ebb2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole (Parallel) 22ebb2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 270202 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Ex-Con DragSelectable: true -GMNotes: "{\r\n \"id\": \"01003-p\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Criminal.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01003-p\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Criminal.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": 3,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 4,\n \"cycle\": \"Core\"\n}" GUID: 22ebb2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 18.45 posY: 1.73 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 6b00ec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 6b00ec.yaml index 3a74f5922..a060f884c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 6b00ec.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 6b00ec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 258502 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01003-m\",\r\n \"alternate_ids\": [\r\n \"01503-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"01003-m\",\n \"alternate_ids\": [\n \"01503-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: 6b00ec Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587102 ColorDiffuse: @@ -88,7 +88,7 @@ States: rotY: 269.998718 rotZ: 1.14691389e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -5.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 9015b4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 9015b4.yaml index 71770cccd..29f593383 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 9015b4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Skids O'Toole 9015b4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535502 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Ex-Con DragSelectable: true -GMNotes: "{\r\n \"id\": \"01003\",\r\n \"alternate_ids\": [\r\n \"01503\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Rogue\",\r\n \"traits\": - \"Criminal.\",\r\n \"willpowerIcons\": 2,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": - 3,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01003\",\n \"alternate_ids\": [\n \"01503\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Rogue\",\n \"traits\": \"Criminal.\",\n \"willpowerIcons\": + 2,\n \"intellectIcons\": 3,\n \"combatIcons\": 3,\n \"agilityIcons\": 4,\n \"cycle\": + \"Core\"\n}" GUID: 9015b4 Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587402 ColorDiffuse: @@ -90,10 +90,10 @@ States: posY: 1.29860592 posZ: 60.19 rotX: 1.18973453e-08 - rotY: 180.0 + rotY: 180 rotZ: 3.49164786e-09 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: 2.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sled Dog 852697.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sled Dog 852697.yaml index 1297c46b5..2e6740e32 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sled Dog 852697.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sled Dog 852697.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378914 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08127\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Creature.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08127\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Creature.\",\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: '852697' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.96 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer (4) ae3ff5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer (4) ae3ff5.yaml index c8c3b6f77..f98ad1d77 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer (4) ae3ff5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer (4) ae3ff5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378934 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08096\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Item. Tool. Weapon. Melee.\",\r\n - \ \"combatIcons\": 3,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08096\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian|Survivor\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": + \"Item. Tool. Weapon. Melee.\",\n \"combatIcons\": 3,\n \"cycle\": \"Edge of the + Earth\"\n}" GUID: ae3ff5 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.18 posY: 2.8 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer 78fdc7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer 78fdc7.yaml index 6d2a095af..f46835688 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer 78fdc7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sledgehammer 78fdc7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378932 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08094\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08094\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian|Survivor\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": + \"Item. Tool. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"Edge of the + Earth\"\n}" GUID: 78fdc7 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.19 posY: 2.5 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 5a51d1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 0d84b2.yaml similarity index 50% rename from unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 5a51d1.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 0d84b2.yaml index 06e69762b..353b99df7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 5a51d1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand (Taboo) 0d84b2.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 450618 +CardID: 324 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '4506': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03029-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" -GUID: 5a51d1 +GMNotes: "{\n \"id\": \"03029-t\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" +GUID: 0d84b2 Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.1 - posY: 3.73 - posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -13.42 + posY: 3.45 + posZ: -49.57 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand 819aee.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand 819aee.yaml index b21c886fc..a9e74782e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand 819aee.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sleight of Hand 819aee.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368710 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03029\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03029\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 819aee Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sleuth (3) 1bdb15.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sleuth (3) 1bdb15.yaml index 355808d80..f637224d7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sleuth (3) 1bdb15.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sleuth (3) 1bdb15.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378959 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08121\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Seeker|Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"replenish\": 2,\r\n - \ \"type\": \"Resource\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08121\",\n \"type\": \"Asset\",\n \"class\": \"Guardian|Seeker|Mystic\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 2,\n \"uses\": [\n {\n \"count\": 2,\n \"replenish\": 2,\n \"type\": + \"Resource\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 1bdb15 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.18 posY: 2.92 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Slip Away (2) 4a45c6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Slip Away (2) 4a45c6.yaml index cfc057b49..acac98c34 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Slip Away (2) 4a45c6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Slip Away (2) 4a45c6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538622 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60324\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60324\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 4a45c6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.01 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Slip Away cf1d4e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Slip Away cf1d4e.yaml index c5ccdd8bd..94121cb63 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Slip Away cf1d4e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Slip Away cf1d4e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368714 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04232\",\r\n \"alternate_ids\": [\r\n \"60314\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04232\",\n \"alternate_ids\": [\n \"60314\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Trick.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The + Forgotten Age\"\n}" GUID: cf1d4e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 4.15 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Small Favor bf5a5f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Small Favor bf5a5f.yaml index 3b799d946..3281fefae 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Small Favor bf5a5f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Small Favor bf5a5f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378016 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05277\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Favor. Service.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05277\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Favor. Service.\",\n \"combatIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: bf5a5f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.68 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Small Radio c9feda.yaml b/unpacked/Bag All Player Cards 15bb07/Card Small Radio c9feda.yaml index 4872d3350..ea60a8de0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Small Radio c9feda.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Small Radio c9feda.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450311 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08619\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Expedition.\",\r\n \"intellectIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08619\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Expedition.\",\n \"intellectIcons\": 2,\n + \ \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: c9feda Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 79.13 posY: 3.33 posZ: 7.83 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Smite the Wicked 58f534.yaml b/unpacked/Bag All Player Cards 15bb07/Card Smite the Wicked 58f534.yaml index 1100cefa0..e523d2291 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Smite the Wicked 58f534.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Smite the Wicked 58f534.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582827 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02007\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Task.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02007\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task.\",\n \"weakness\": true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 58f534 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.01 posY: 3.99 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Smite the Wicked 58f535.yaml b/unpacked/Bag All Player Cards 15bb07/Card Smite the Wicked 58f535.yaml new file mode 100644 index 000000000..e7e508b51 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Smite the Wicked 58f535.yaml @@ -0,0 +1,54 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 853101 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8531': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115062479282090841/27F874D8E240CE62A38A47DDFAAF58D3BD4D0C42/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: false +Description: Advanced +DragSelectable: true +GMNotes: "{\n \"id\": \"90061\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task.\",\n \"weakness\": true,\n \"cycle\": \"Path of the Righteous\"\n}" +GUID: 58f535 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Smite the Wicked +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.01 + posY: 3.99 + posZ: -16.7 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Smoking Pipe 603e29.yaml b/unpacked/Bag All Player Cards 15bb07/Card Smoking Pipe 603e29.yaml index 96d19c804..a9e8ceb8f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Smoking Pipe 603e29.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Smoking Pipe 603e29.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368514 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02116\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02116\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 603e29 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.12 posY: 3.95 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Smuggled Goods 1f3880.yaml b/unpacked/Bag All Player Cards 15bb07/Card Smuggled Goods 1f3880.yaml index 9c613bd0e..f1e6529fc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Smuggled Goods 1f3880.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Smuggled Goods 1f3880.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 376938 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04010\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Supply. Illicit.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04010\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Supply. Illicit.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 1f3880 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Snare Trap (2) f66dd9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Snare Trap (2) f66dd9.yaml index 831939ba6..150d8919c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Snare Trap (2) f66dd9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Snare Trap (2) f66dd9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368849 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03199\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Trap. Improvised.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03199\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Trap. Improvised.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: f66dd9 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack (2) 5f19e0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack (2) 5f19e0.yaml index 93ca08aab..b78364823 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack (2) 5f19e0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack (2) 5f19e0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315245 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03152\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03152\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 5f19e0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.89 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack b18b33.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack b18b33.yaml index 899184e46..d2bd9918e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack b18b33.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sneak Attack b18b33.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368713 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01052\",\r\n \"alternate_ids\": [\r\n \"01552\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01052\",\n \"alternate_ids\": [\n \"01552\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Tactic.\",\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: b18b33 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sneak By d099f4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sneak By d099f4.yaml index be1fa7dc4..0a6381e7d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sneak By d099f4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sneak By d099f4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538614 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60316\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60316\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"Investigator Packs\"\n}" GUID: d099f4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Snipe (1) 79cbc6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Snipe (1) 79cbc6.yaml index 5f3cfdcfe..4cbc98102 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Snipe (1) 79cbc6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Snipe (1) 79cbc6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378925 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08087\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian|Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08087\",\n \"type\": \"Event\",\n \"class\": \"Guardian|Rogue\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 79cbc6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.61 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Solemn Vow ef7c11.yaml b/unpacked/Bag All Player Cards 15bb07/Card Solemn Vow ef7c11.yaml index 61a4985c2..065e67789 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Solemn Vow ef7c11.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Solemn Vow ef7c11.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440926 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06020\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06020\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: ef7c11 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 3.78 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Something Worth Fighting For a3f105.yaml b/unpacked/Bag All Player Cards 15bb07/Card Something Worth Fighting For a3f105.yaml index 3b3ae781a..40ed282b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Something Worth Fighting For a3f105.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Something Worth Fighting For a3f105.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 278011 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05109\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05109\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: a3f105 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.06 posY: 3.79 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Song of the Dead (2) 2ae3ce.yaml b/unpacked/Bag All Player Cards 15bb07/Card Song of the Dead (2) 2ae3ce.yaml index 81c082623..aaff86f52 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Song of the Dead (2) 2ae3ce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Song of the Dead (2) 2ae3ce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230345 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02112\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Song.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 5,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02112\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell. + Song.\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 5,\n + \ \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 2ae3ce Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.13 posY: 4.95 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Soothing Melody 53f076.yaml b/unpacked/Bag All Player Cards 15bb07/Card Soothing Melody 53f076.yaml index f74b62d62..ecb1ea9ae 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Soothing Melody 53f076.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Soothing Melody 53f076.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378621 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05314\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05314\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 53f076 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.83 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sophie 4f46ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sophie 4f46ad.yaml index 545039f4a..d4560218f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sophie 4f46ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sophie 4f46ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374264 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03009\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"startsInPlay\": true,\r\n \"traits\": \"Item. Spirit.\",\r\n \"cycle\": \"The - Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03009\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Item. Spirit.\",\n \"cycle\": \"The + Path to Carcosa\"\n}" GUID: 4f46ad Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.27 posY: 1.19 posZ: 26.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 353.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 353 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Soul Sanctification (3) 52f6d6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Soul Sanctification (3) 52f6d6.yaml index 9b713b476..0e2795927 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Soul Sanctification (3) 52f6d6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Soul Sanctification (3) 52f6d6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379147 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09123\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Ritual.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09123\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"level\": 3,\n \"traits\": \"Ritual.\",\n \"permanent\": true,\n \"uses\": + [\n {\n \"count\": 0,\n \"type\": \"Offering\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 52f6d6 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 16.72 posY: 3.38 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Spare Parts 9e136f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Spare Parts 9e136f.yaml index 45ff9c764..bea0c95f1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Spare Parts 9e136f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Spare Parts 9e136f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450312 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08620\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Expedition.\",\r\n \"willpowerIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08620\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Expedition.\",\n \"willpowerIcons\": 2,\n + \ \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 9e136f Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 79.23 posY: 3.33 posZ: 7.79 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Sparrow Mask 975d79.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sparrow Mask 975d79.yaml similarity index 70% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Sparrow Mask 975d79.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Sparrow Mask 975d79.yaml index f49917ba2..1f92cfeaa 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Sparrow Mask 975d79.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sparrow Mask 975d79.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 110 +CardID: 12110 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -21,7 +21,9 @@ Description: The Wanderer's Companion DragSelectable: true GMNotes: "{\n \"id\": \"10111\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Charm. Mask.\",\n \"willpowerIcons\": - 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" + 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Offering\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast + of Hemlock Vale\"\n}" GUID: 975d79 Grid: true GridProjection: false @@ -43,14 +45,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -41.18 - posY: 3.23 - posZ: -110.43 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 82.47 + posY: 3.21 + posZ: 18.32 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Spectral Razor 8e8a14.yaml b/unpacked/Bag All Player Cards 15bb07/Card Spectral Razor 8e8a14.yaml index 09bad8f82..97adc01bf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Spectral Razor 8e8a14.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Spectral Razor 8e8a14.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448029 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06201\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06201\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 8e8a14 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.51 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Spectral Web 863f1a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Spectral Web 863f1a.yaml index f407918fa..d320fba27 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Spectral Web 863f1a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Spectral Web 863f1a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 275733 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: Spell. DragSelectable: true -GMNotes: "{\r\n \"id\": \"05177\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Spell.\",\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05177\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Spell.\",\n \"cycle\": \"The Circle Undone\"\n}" GUID: 863f1a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.86 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Spirit Athame (1) 90a106.yaml b/unpacked/Bag All Player Cards 15bb07/Card Spirit Athame (1) 90a106.yaml index a871f477b..ef748c31a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Spirit Athame (1) 90a106.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Spirit Athame (1) 90a106.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230335 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03035\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03035\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Item. + Relic. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 90a106 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.03 posY: 3.68 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Spirit of Humanity (2) e5901b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Spirit of Humanity (2) e5901b.yaml index 65010dadb..6776e09bd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Spirit of Humanity (2) e5901b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Spirit of Humanity (2) e5901b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 579909 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07229\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Ritual. Blessed. Cursed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07229\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Ritual. + Blessed. Cursed.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e5901b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.94 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Spirit-Speaker a33470.yaml b/unpacked/Bag All Player Cards 15bb07/Card Spirit-Speaker a33470.yaml index cbbf4e485..555ec6c07 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Spirit-Speaker a33470.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Spirit-Speaker a33470.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 375016 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03014\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03014\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ritual.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: a33470 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.0 posY: 3.87 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Spiritual Resolve (5) 26922c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Spiritual Resolve (5) 26922c.yaml index c3f16d1a6..73a2e14f9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Spiritual Resolve (5) 26922c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Spiritual Resolve (5) 26922c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448938 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06323\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Ritual.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06323\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 26922c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.02 posY: 3.99 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Split the Angle 67e006.yaml b/unpacked/Bag All Player Cards 15bb07/Card Split the Angle 67e006.yaml index 5844f26e5..8289b875e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Split the Angle 67e006.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Split the Angle 67e006.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 381050 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98008\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Promo\"\n}" GUID: 67e006 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 21664c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 21664c.yaml deleted file mode 100644 index 960bd7aab..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 21664c.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 584611 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5846': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02226-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 3,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" -GUID: 21664c -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Springfield M1903 (4) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.16 - posY: 3.86 - posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 23f8ec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 23f8ec.yaml new file mode 100644 index 000000000..ea6cbc3fc --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) (Taboo) 23f8ec.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 304 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"02226-t\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Item. Weapon. Firearm.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Ammo\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich + Legacy\"\n}" +GUID: 23f8ec +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Springfield M1903 (4) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -29.26 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) a7944d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) a7944d.yaml index 66a052b21..717a92ed0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) a7944d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Springfield M1903 (4) a7944d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226356 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02226-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 4,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": - 3,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02226\",\n \"type\": \"Asset\",\n \"slot\": \"Hand x2\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 4,\n \"traits\": \"Item. + Weapon. Firearm.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: a7944d Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.06 posY: 3.87 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card St. Hubert's Key 423d46.yaml b/unpacked/Bag All Player Cards 15bb07/Card St. Hubert's Key 423d46.yaml index fa3d4e2b6..b1bb20dc5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card St. Hubert's Key 423d46.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card St. Hubert's Key 423d46.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230331 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Cleansing Fire DragSelectable: true -GMNotes: "{\r\n \"id\": \"03269\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03269\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 423d46 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.15 posY: 3.9 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Stall for Time 7b6ed1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stall for Time 7b6ed1.yaml similarity index 83% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Stall for Time 7b6ed1.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Stall for Time 7b6ed1.yaml index 899677d9c..eff3f28bb 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Stall for Time 7b6ed1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stall for Time 7b6ed1.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 108 +CardID: 12108 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -41.18 - posY: 3.23 - posZ: -101.42 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 79.31 + posY: 3.21 + posZ: 25.08 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stand Together (3) cd7b97.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stand Together (3) cd7b97.yaml index a6827a765..cb5110720 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stand Together (3) cd7b97.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stand Together (3) cd7b97.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226352 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02148\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02148\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: cd7b97 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 4.09 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stand Together 7ec473.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stand Together 7ec473.yaml index 8c0eebeb9..b1597d7a0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stand Together 7ec473.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stand Together 7ec473.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545316 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60118\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60118\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 7ec473 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stargazing (1) 968a26.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stargazing (1) 968a26.yaml index 077defcbd..f1f74df12 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stargazing (1) 968a26.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stargazing (1) 968a26.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444022 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06027\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Insight. Augury.\",\r\n \"bonded\": - [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06028\"\r\n }\r\n ],\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06027\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Insight. Augury.\",\n \"bonded\": + [\n {\n \"count\": 1,\n \"id\": \"06028\"\n }\n ],\n \"wildIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 968a26 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.1 posY: 3.74 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stars of Hyades 1890d0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stars of Hyades 1890d0.yaml index 8caa4f301..f6b3c66a9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stars of Hyades 1890d0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stars of Hyades 1890d0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374115 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03013\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03013\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 1890d0 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.15 posY: 3.77 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Steadfast 4e1d91.yaml b/unpacked/Bag All Player Cards 15bb07/Card Steadfast 4e1d91.yaml index 8dde417e8..202b65b7d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Steadfast 4e1d91.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Steadfast 4e1d91.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431006 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05022\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"willpowerIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05022\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 4e1d91 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.76 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stealth (3) 26a3bf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stealth (3) 26a3bf.yaml index 054f2db0c..febb127e5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stealth (3) 26a3bf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stealth (3) 26a3bf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440720 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52005\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52005\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: 26a3bf Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stealth ddee79.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stealth ddee79.yaml index 142d5bfaf..1fe1acf57 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stealth ddee79.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stealth ddee79.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368626 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03028\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03028\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: ddee79 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.87 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stella Clark 00e18e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stella Clark 00e18e.yaml index a048f4ff9..b292f7ce0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stella Clark 00e18e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stella Clark 00e18e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 234904 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Letter Carrier DragSelectable: true -GMNotes: "{\r\n \"id\": \"60501\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Chosen. Civic.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 2,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 4,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60501\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Chosen. Civic.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 2,\n \"combatIcons\": 3,\n \"agilityIcons\": 4,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 00e18e Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.83 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stella Clark dd3dbd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stella Clark dd3dbd.yaml index 3bf842907..aae4f743a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stella Clark dd3dbd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stella Clark dd3dbd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274220 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.85 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stick to the Plan (3) 82d62c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stick to the Plan (3) 82d62c.yaml index 16bb83ec3..ab45988e4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stick to the Plan (3) 82d62c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stick to the Plan (3) 82d62c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226350 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03264\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03264\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": + true,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 82d62c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.97 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stirring Up Trouble (1) e99f0d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stirring Up Trouble (1) e99f0d.yaml index 81fdda2b5..9c644733e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stirring Up Trouble (1) e99f0d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stirring Up Trouble (1) e99f0d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553104 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07112\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Insight. Cursed.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07112\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Insight. Cursed.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: e99f0d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.1 posY: 3.71 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits (3) 1e9213.yaml b/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits (3) 1e9213.yaml index 69c541b59..2da37a73a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits (3) 1e9213.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits (3) 1e9213.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 444021 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52008\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 2,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52008\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 2,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: 1e9213 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.74 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits 9c922f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits 9c922f.yaml index a182624df..efad940f7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits 9c922f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Storm of Spirits 9c922f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230314 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03153\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03153\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 9c922f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) 1be7f1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) 1be7f1.yaml new file mode 100644 index 000000000..c2efff002 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) 1be7f1.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 311 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: Acidic Ichor +DragSelectable: true +GMNotes: "{\n \"id\": \"02263-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. Science.\",\n \"combatIcons\": + 2,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" +GUID: 1be7f1 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Strange Solution (4) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -13.42 + posY: 3.45 + posZ: -27 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) e95ddb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) e95ddb.yaml deleted file mode 100644 index 51db65c34..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) (Taboo) e95ddb.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558208 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: Acidic Ichor -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02263-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 4,\r\n \"traits\": \"Item. Science.\",\r\n \"combatIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" -GUID: e95ddb -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Strange Solution (4) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 21.83 - posY: 4.28 - posZ: -44.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 4874bc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 4874bc.yaml index 9d11b9dc4..c85813936 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 4874bc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 4874bc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430656 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Restorative Concoction DragSelectable: true -GMNotes: "{\r\n \"id\": \"02262\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 4,\r\n \"traits\": \"Item. Science.\",\r\n \"willpowerIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02262\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. Science.\",\n \"willpowerIcons\": + 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 4874bc Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.14 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 9afe23.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 9afe23.yaml index ebc639fd0..deac39971 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 9afe23.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) 9afe23.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430654 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Freezing Variant DragSelectable: true -GMNotes: "{\r\n \"id\": \"02264\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 4,\r\n \"traits\": \"Item. Science.\",\r\n \"agilityIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02264\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. Science.\",\n \"agilityIcons\": + 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 9afe23 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.99 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) d96e4b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) d96e4b.yaml index 8d19d111d..cce3b16fa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) d96e4b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) d96e4b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 313905 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: Empowering Elixir DragSelectable: true -GMNotes: "{\r\n \"id\": \"51004\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 4,\r\n \"traits\": \"Item. Science.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return to The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51004\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. Science.\",\n \"intellectIcons\": + 2,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: d96e4b Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 9.16 posY: 3.3 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) fa61ba.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) fa61ba.yaml index 0e325b355..80fe3f230 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) fa61ba.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution (4) fa61ba.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430655 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Acidic Ichor DragSelectable: true -GMNotes: "{\r\n \"id\": \"02263\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 4,\r\n \"traits\": \"Item. Science.\",\r\n \"combatIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02263\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 4,\n \"traits\": \"Item. Science.\",\n \"combatIcons\": + 2,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: fa61ba Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution 565b6b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution 565b6b.yaml index 5dd1fe05b..885a94282 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Strange Solution 565b6b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Strange Solution 565b6b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368422 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Unidentified DragSelectable: true -GMNotes: "{\r\n \"id\": \"02021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Science.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02021\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Science.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 565b6b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.72 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stray Cat f474b1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stray Cat f474b1.yaml index 431155af5..3dbb0305c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stray Cat f474b1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stray Cat f474b1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368824 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01076\",\r\n \"alternate_ids\": [\r\n \"01576\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Ally. Creature.\",\r\n \"agilityIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01076\",\n \"alternate_ids\": [\n \"01576\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Ally\",\n \"class\": \"Survivor\",\n \"cost\": 1,\n + \ \"level\": 0,\n \"traits\": \"Ally. Creature.\",\n \"agilityIcons\": 1,\n \"cycle\": + \"Core\"\n}" GUID: f474b1 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Streetwise (3) (Taboo) 88a481.yaml b/unpacked/Bag All Player Cards 15bb07/Card Streetwise (3) (Taboo) 88a481.yaml deleted file mode 100644 index 644759b42..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Streetwise (3) (Taboo) 88a481.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450605 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02189-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" -GUID: 88a481 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Streetwise (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 8.97 - posY: 4.18 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Streetwise (3) d7dbac.yaml b/unpacked/Bag All Player Cards 15bb07/Card Streetwise (3) d7dbac.yaml index 2490b1626..edbc87127 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Streetwise (3) d7dbac.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Streetwise (3) d7dbac.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315251 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02189\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02189\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"startsInPlay\": true,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": + true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: d7dbac Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.94 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Streetwise a973aa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Streetwise a973aa.yaml index 3499ee04c..9835888e5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Streetwise a973aa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Streetwise a973aa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538609 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60311\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60311\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: a973aa Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Strength in Numbers (1) 4e6d80.yaml b/unpacked/Bag All Player Cards 15bb07/Card Strength in Numbers (1) 4e6d80.yaml index c2fb3bab9..fa77521ab 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Strength in Numbers (1) 4e6d80.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Strength in Numbers (1) 4e6d80.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378906 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08077\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Innate. Synergy.\",\r\n \"wildIcons\": 1,\r\n - \ \"dynamicIcons\": true,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08077\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Innate. Synergy.\",\n \"wildIcons\": 1,\n \"dynamicIcons\": + true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 4e6d80 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card String of Curses 046b16.yaml b/unpacked/Bag All Player Cards 15bb07/Card String of Curses 046b16.yaml index 3b07a91eb..e26b4c28c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card String of Curses 046b16.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card String of Curses 046b16.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379112 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09088\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09088\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"combatIcons\": 1,\n + \ \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 046b16 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stroke of Luck (2) 06228f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stroke of Luck (2) 06228f.yaml index 386be640d..28abf0c6b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stroke of Luck (2) 06228f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stroke of Luck (2) 06228f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368843 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02271\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Fortune.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02271\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Fortune.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 06228f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.06 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stubborn Detective 4ea68b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stubborn Detective 4ea68b.yaml index c2bf135d8..ca52cd440 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stubborn Detective 4ea68b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stubborn Detective 4ea68b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527418 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Enemy DragSelectable: true -GMNotes: "{\r\n \"id\": \"01103\",\r\n \"alternate_ids\": [\r\n \"01603\"\r\n - \ ],\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n \"traits\": \"Humanoid. - Detective.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01103\",\n \"alternate_ids\": [\n \"01603\"\n ],\n \"type\": + \"Enemy\",\n \"class\": \"Neutral\",\n \"traits\": \"Humanoid. Detective.\",\n + \ \"weakness\": true,\n \"basicWeaknessCount\": 1,\n \"cycle\": \"Core\"\n}" GUID: 4ea68b Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 32.19 posY: 2.3 posZ: -77.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Studious (3) 4ea716.yaml b/unpacked/Bag All Player Cards 15bb07/Card Studious (3) 4ea716.yaml index 227897b96..b228e9904 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Studious (3) 4ea716.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Studious (3) 4ea716.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 592419 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05276\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05276\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"level\": 3,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 4ea716 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.08 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stunning Blow 58c435.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stunning Blow 58c435.yaml index b5f322ef2..4ebc96927 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stunning Blow 58c435.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stunning Blow 58c435.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368805 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04112\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"combatIcons\": 1,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04112\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"combatIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 58c435 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stupor a42bcf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stupor a42bcf.yaml index 04a40ae39..f88bf16f5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stupor a42bcf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stupor a42bcf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378920 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08133\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08133\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: a42bcf Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.19 posY: 2.38 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Stylish Coat (1) 0a1b3a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Stylish Coat (1) 0a1b3a.yaml index 8e429f909..0a584b3ca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Stylish Coat (1) 0a1b3a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Stylish Coat (1) 0a1b3a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379064 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09071\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Item. Clothing.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09071\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Clothing.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 0a1b3a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.35 posZ: 65.93 - rotX: 357.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 357 + rotY: 270 + rotZ: 357 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 12d3de.yaml b/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 12d3de.yaml index 0929141ab..a6da2bfe8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 12d3de.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 12d3de.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 294000 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.13 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 758b0a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 758b0a.yaml index ed84a88c4..e6060bb9a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 758b0a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Subject 5U-21 758b0a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 783400 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Anomaly DragSelectable: true -GMNotes: "{\r\n \"id\": \"89001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Manifold.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"89001\",\n \"type\": \"Investigator\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Manifold.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n + \ \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 758b0a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 98.64 posY: 1.95 posZ: 13.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Suggestion (1) 0ec9bf.yaml b/unpacked/Bag All Player Cards 15bb07/Card Suggestion (1) 0ec9bf.yaml index a4fc776d9..3b87cd6e8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Suggestion (1) 0ec9bf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Suggestion (1) 0ec9bf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440721 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"52006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return to the Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52006\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Return to + the Path to Carcosa\"\n}" GUID: 0ec9bf Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.16 posY: 3.29 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Suggestion (4) e7f37b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Suggestion (4) e7f37b.yaml index 61280e1ad..0c20b1a38 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Suggestion (4) e7f37b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Suggestion (4) e7f37b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315259 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03268\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03268\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 4,\n \"traits\": \"Spell.\",\n + \ \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: e7f37b Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.13 posY: 5.51 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Summoned Hound (1) ab4fb3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Summoned Hound (1) ab4fb3.yaml index 0a264d106..9224c8aa7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Summoned Hound (1) ab4fb3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Summoned Hound (1) ab4fb3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527235 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06282\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Summon.\",\r\n \"bonded\": - [\r\n {\r\n \"count\": 1,\r\n \"id\": \"06283\"\r\n }\r\n ],\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06282\",\n \"type\": \"Asset\",\n \"slot\": \"Ally|Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Ally. + Summon.\",\n \"bonded\": [\n {\n \"count\": 1,\n \"id\": \"06283\"\n + \ }\n ],\n \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": \"The + Dream-Eaters\"\n}" GUID: ab4fb3 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 8.98 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Summoned Nightgaunt cf96b9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Summoned Nightgaunt cf96b9.yaml index 11373982a..376c26576 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Summoned Nightgaunt cf96b9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Summoned Nightgaunt cf96b9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 546917 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: true Description: Monster. Nightgaunt. Power. DragSelectable: true -GMNotes: "{\r\n \"id\": \"83058\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Monster. Nightgaunt. Power.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"83058\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Monster. Nightgaunt. Power.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Standalone\"\n}" GUID: cf96b9 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.15 posY: 4.16 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Summoned Servitor 73b311.yaml b/unpacked/Bag All Player Cards 15bb07/Card Summoned Servitor 73b311.yaml index d2b5977d2..a17220b9c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Summoned Servitor 73b311.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Summoned Servitor 73b311.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379104 ColorDiffuse: @@ -19,30 +19,30 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09080\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Summon.\",\r\n \"willpowerIcons\": - 1,\r\n \"customizations\": [\r\n {\r\n \"name\": \"Armored Carapace\",\r\n - \ \"xp\": 1,\r\n \"text\": \"Summoned Servitor gains a health value of - 3. It can be assigned damage dealt to any investigator at its location.\"\r\n },\r\n - \ {\r\n \"name\": \"Claws that Catch\",\r\n \"xp\": 1,\r\n \"text\": +GMNotes: "{\n \"id\": \"09080\",\n \"type\": \"Asset\",\n \"slot\": \"Ally|Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Summon.\",\n + \ \"willpowerIcons\": 1,\n \"customizations\": [\n {\n \"name\": \"Armored + Carapace\",\n \"xp\": 1,\n \"text\": \"Summoned Servitor gains a health + value of 3. It can be assigned damage dealt to any investigator at its location.\"\n + \ },\n {\n \"name\": \"Claws that Catch\",\n \"xp\": 1,\n \"text\": \"Add this action: \u201C\u27D0 Fight. You fight any enemy at this location with - a base Combat of 4. Ignore the aloof and retaliate keywords for this attack.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Jaws that Snatch\",\r\n \"xp\": 1,\r\n - \ \"text\": \"Add this action: \u201C\u27D0 Evade. You attempt to evade any - enemy at this location with a base Agility of 4. Ignore the alert keyword for this - evasion attempt.\u201D\"\r\n },\r\n {\r\n \"name\": \"Eyes of Flame\",\r\n - \ \"xp\": 1,\r\n \"text\": \"Add this action: \u201C\u27D0 Investigate. - You investigate this location with a base Intellect of 4.\u201D\"\r\n },\r\n - \ {\r\n \"name\": \"Wings of Night\",\r\n \"xp\": 1,\r\n \"text\": - \"After Summoned Servitor moves from your location to a connecting location, you - may move to that location, as well.\"\r\n },\r\n {\r\n \"name\": \"Dominance\",\r\n - \ \"xp\": 2,\r\n \"text\": \"Summoned Servitor no longer takes up an (select - one): arcane / ally slot.\"\r\n },\r\n {\r\n \"name\": \"Dreaming Call\",\r\n - \ \"xp\": 3,\r\n \"text\": \"Instead of discarding another asset you control - in order to play Summoned Servitor, you may return that asset to its owner\u2019s - hand.\"\r\n },\r\n {\r\n \"name\": \"D\xE6monic Influence\",\r\n \"xp\": - 5,\r\n \"text\": \"Summoned Servitor can take 2 different actions instead of - 1 during each of your turns.\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" + a base Combat of 4. Ignore the aloof and retaliate keywords for this attack.\u201D\"\n + \ },\n {\n \"name\": \"Jaws that Snatch\",\n \"xp\": 1,\n \"text\": + \"Add this action: \u201C\u27D0 Evade. You attempt to evade any enemy at this location + with a base Agility of 4. Ignore the alert keyword for this evasion attempt.\u201D\"\n + \ },\n {\n \"name\": \"Eyes of Flame\",\n \"xp\": 1,\n \"text\": + \"Add this action: \u201C\u27D0 Investigate. You investigate this location with + a base Intellect of 4.\u201D\"\n },\n {\n \"name\": \"Wings of Night\",\n + \ \"xp\": 1,\n \"text\": \"After Summoned Servitor moves from your location + to a connecting location, you may move to that location, as well.\"\n },\n {\n + \ \"name\": \"Dominance\",\n \"xp\": 2,\n \"text\": \"Summoned Servitor + no longer takes up an (select one): arcane / ally slot.\"\n },\n {\n \"name\": + \"Dreaming Call\",\n \"xp\": 3,\n \"text\": \"Instead of discarding another + asset you control in order to play Summoned Servitor, you may return that asset + to its owner\u2019s hand.\"\n },\n {\n \"name\": \"D\xE6monic Influence\",\n + \ \"xp\": 5,\n \"text\": \"Summoned Servitor can take 2 different actions + instead of 1 during each of your turns.\"\n }\n ],\n \"cycle\": \"The Scarlet + Keys\"\n}" GUID: 73b311 Grid: true GridProjection: false @@ -67,11 +67,11 @@ Transform: posX: 16.67 posY: 3.38 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sure Gamble (3) 308be1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sure Gamble (3) 308be1.yaml index 63eab271a..a93cad259 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sure Gamble (3) 308be1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sure Gamble (3) 308be1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315254 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01056\",\r\n \"alternate_ids\": [\r\n \"01556\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n \"cost\": 2,\r\n - \ \"level\": 3,\r\n \"traits\": \"Fortune. Insight.\",\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01056\",\n \"alternate_ids\": [\n \"01556\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": + \"Fortune. Insight.\",\n \"cycle\": \"Core\"\n}" GUID: 308be1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Surgical Kit (3) c8ecf2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Surgical Kit (3) c8ecf2.yaml index ba7086760..1ff71f0be 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Surgical Kit (3) c8ecf2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Surgical Kit (3) c8ecf2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379049 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09056\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tool. Science.\",\r\n - \ \"intellectIcons\": 2,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09056\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. Tool. Science.\",\n \"intellectIcons\": + 2,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: c8ecf2 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 16.67 posY: 3.37 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Surprising Find (1) ff59dd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Surprising Find (1) ff59dd.yaml index a65a1dd97..22b498481 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Surprising Find (1) ff59dd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Surprising Find (1) ff59dd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448838 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06278\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Fortune. Research.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06278\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 1,\n \"traits\": \"Fortune. Research.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: ff59dd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 3.68 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Survey the Area (1) 6aa5dc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Survey the Area (1) 6aa5dc.yaml index e84d2ed74..fa5d27e15 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Survey the Area (1) 6aa5dc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Survey the Area (1) 6aa5dc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379027 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08037\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Practiced. Expert.\",\r\n \"dynamicIcons\": - true,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08037\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 1,\n \"traits\": \"Practiced. Expert.\",\n \"dynamicIcons\": true,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 6aa5dc Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.16 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct (2) be4abe.yaml b/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct (2) be4abe.yaml index a34d9547d..0b9c8a813 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct (2) be4abe.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct (2) be4abe.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368842 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02235\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Developed.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02235\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Developed.\",\n \"agilityIcons\": 2,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: be4abe Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct 078efb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct 078efb.yaml index 7863ed1db..9dd175a43 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct 078efb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Survival Instinct 078efb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368800 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01081\",\r\n \"alternate_ids\": [\r\n \"01581\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Innate.\",\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01081\",\n \"alternate_ids\": [\n \"01581\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Survivor\",\n \"level\": 0,\n \"traits\": \"Innate.\",\n + \ \"agilityIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 078efb Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Survival Knife (2) c1d796.yaml b/unpacked/Bag All Player Cards 15bb07/Card Survival Knife (2) c1d796.yaml index 4a0f28189..43d643735 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Survival Knife (2) c1d796.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Survival Knife (2) c1d796.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545201 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"53002\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 2,\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53002\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 2,\n \"cycle\": \"Return to the Forgotten + Age\"\n}" GUID: c1d796 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 4.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Survival Knife 4d971e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Survival Knife 4d971e.yaml index 5be17b589..5f6e9a486 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Survival Knife 4d971e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Survival Knife 4d971e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226322 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04017\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04017\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 4d971e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sweeping Kick (1) b4d67b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sweeping Kick (1) b4d67b.yaml index 41140277b..3321772b7 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sweeping Kick (1) b4d67b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sweeping Kick (1) b4d67b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379013 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08023\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Spirit. Tactic. Trick.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08023\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Spirit. Tactic. Trick.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: b4d67b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.93 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Swift Reflexes c2d211.yaml b/unpacked/Bag All Player Cards 15bb07/Card Swift Reflexes c2d211.yaml index e5bd7b054..57058ddd5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Swift Reflexes c2d211.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Swift Reflexes c2d211.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277711 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05156\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Gambit.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05156\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Gambit.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: c2d211 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Swift Reload (2) 2cfa4f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Swift Reload (2) 2cfa4f.yaml index cafa760b8..fe8b26a1e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Swift Reload (2) 2cfa4f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Swift Reload (2) 2cfa4f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380028 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06161\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Tactic. Trick.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06161\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Tactic. Trick.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 2cfa4f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.07 posY: 3.76 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Switchblade (2) (Taboo) 842d41.yaml b/unpacked/Bag All Player Cards 15bb07/Card Switchblade (2) (Taboo) 842d41.yaml deleted file mode 100644 index cb0e3d6c0..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Switchblade (2) (Taboo) 842d41.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450603 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"02152-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Melee. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" -GUID: 842d41 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Switchblade (2) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 8.97 - posY: 3.99 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Switchblade (2) 2fba3b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Switchblade (2) 2fba3b.yaml index 8b16993af..97a85addf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Switchblade (2) 2fba3b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Switchblade (2) 2fba3b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315243 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02152\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Item. Weapon. Melee. Illicit.\",\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02152\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Item. + Weapon. Melee. Illicit.\",\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: 2fba3b Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.1 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Switchblade 213853.yaml b/unpacked/Bag All Player Cards 15bb07/Card Switchblade 213853.yaml index 75deb1405..17da55c5c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Switchblade 213853.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Switchblade 213853.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368621 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01044\",\r\n \"alternate_ids\": [\r\n \"60307\",\r\n - \ \"01544\"\r\n ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n \"cost\": - 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee. Illicit.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01044\",\n \"alternate_ids\": [\n \"60307\",\n \"01544\"\n + \ ],\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Rogue\",\n \"cost\": + 1,\n \"level\": 0,\n \"traits\": \"Item. Weapon. Melee. Illicit.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"Core\"\n}" GUID: '213853' Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -54.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Sword Cane 9c32e2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Sword Cane 9c32e2.yaml index aa585757b..8b1938ce5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Sword Cane 9c32e2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Sword Cane 9c32e2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582423 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07029\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07029\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Relic. Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 9c32e2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Takada's Cache e627e8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Takada's Cache e627e8.yaml index 234321b0f..20c4c57d3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Takada's Cache e627e8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Takada's Cache e627e8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 452307 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08737\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Supply.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08737\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Supply.\",\n \"wildIcons\": 1,\n \"cycle\": \"Edge + of the Earth\"\n}" GUID: e627e8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 79.18 posY: 3.32 posZ: 8.23 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Take Heart cc6e4d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Take Heart cc6e4d.yaml index 13b1754dc..9716cfc9a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Take Heart cc6e4d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Take Heart cc6e4d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368806 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04201\",\r\n \"alternate_ids\": [\r\n \"60519\"\r\n - \ ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n \"level\": 0,\r\n - \ \"traits\": \"Innate.\",\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04201\",\n \"alternate_ids\": [\n \"60519\"\n ],\n \"type\": + \"Skill\",\n \"class\": \"Survivor\",\n \"level\": 0,\n \"traits\": \"Innate.\",\n + \ \"cycle\": \"The Forgotten Age\"\n}" GUID: cc6e4d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.82 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Take the Initiative 50fb37.yaml b/unpacked/Bag All Player Cards 15bb07/Card Take the Initiative 50fb37.yaml index cd9b4ae2b..cfd3386c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Take the Initiative 50fb37.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Take the Initiative 50fb37.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226300 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04150\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced. Bold.\",\r\n \"wildIcons\": 3,\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04150\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Practiced. Bold.\",\n \"wildIcons\": 3,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 50fb37 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Talisman of Protection 7b4b0c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Talisman of Protection 7b4b0c.yaml index 8b25fdbf6..3273e506e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Talisman of Protection 7b4b0c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Talisman of Protection 7b4b0c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378954 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08116\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic|Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08116\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic|Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": + \"Item. Charm.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 7b4b0c Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.85 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Taunt (2) 9956d5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Taunt (2) 9956d5.yaml index c956d119a..3bfcfe6bd 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Taunt (2) 9956d5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Taunt (2) 9956d5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226344 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02019\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich - Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02019\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 9956d5 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.13 posY: 3.69 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Taunt (3) 85fe46.yaml b/unpacked/Bag All Player Cards 15bb07/Card Taunt (3) 85fe46.yaml index c9183568f..d665b812b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Taunt (3) 85fe46.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Taunt (3) 85fe46.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545328 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60130\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 2,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60130\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 2,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 85fe46 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.13 posY: 5.03 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Taunt d5cac6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Taunt d5cac6.yaml index 6b6ee45e0..563d9bec5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Taunt d5cac6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Taunt d5cac6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226308 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02017\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02017\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: d5cac6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.94 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Teachings of the Order 90fdb0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Teachings of the Order 90fdb0.yaml index 467ff4e12..25c16d475 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Teachings of the Order 90fdb0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Teachings of the Order 90fdb0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581922 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07151\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Item. Tome.\",\r\n \"permanent\": true,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07151\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Item. Tome.\",\n \"permanent\": true,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 90fdb0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 3.96 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Teamwork eab2ed.yaml b/unpacked/Bag All Player Cards 15bb07/Card Teamwork eab2ed.yaml index f1769eca2..6f6f291a2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Teamwork eab2ed.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Teamwork eab2ed.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226306 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02018\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02018\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: eab2ed Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 4.74 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 05e697.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 05e697.yaml index e10511a8d..9fef2c87c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 05e697.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 05e697.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449750 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08728\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08728\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 05e697 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 76.74 posY: 9.16 posZ: 17.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ba293.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ba293.yaml index 06e441f97..ec1e18914 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ba293.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ba293.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449747 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08725\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08725\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 0ba293 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 76.29 posY: 15.16 posZ: 23.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ef2ba.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ef2ba.yaml index c99c5f36b..f6e2f83bf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ef2ba.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 0ef2ba.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449751 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08729\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08729\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 0ef2ba Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 76.46 posY: 29.78 posZ: 14.47 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 361f15.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 361f15.yaml index 86fc88f6f..3adc52595 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 361f15.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 361f15.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449749 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08727\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08727\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 361f15 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 70.81 posY: 2.54 posZ: 35.58 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 519e41.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 519e41.yaml index 4025264cb..8143f3ca9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 519e41.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 519e41.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449745 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08723\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08723\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 519e41 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 76.21 posY: 9.16 posZ: 18.21 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 76409f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 76409f.yaml index 299a01a4c..4c6151492 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 76409f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li 76409f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449746 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08724\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08724\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 76409f Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 76.72 posY: 9.16 posZ: 19.04 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li f5bd65.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li f5bd65.yaml index 6ccd2c436..ae564e366 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li f5bd65.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tekeli-li f5bd65.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449748 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08726\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08726\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: f5bd65 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 72.29 posY: 2.54 posZ: 30.83 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) 43cb9f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) 43cb9f.yaml new file mode 100644 index 000000000..313a0ccc5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) 43cb9f.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 307 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"05230-t\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. Upgrade.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" +GUID: 43cb9f +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Telescopic Sight (3) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -19.75 + posY: 3.45 + posZ: -20.23 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) dc65fd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) dc65fd.yaml deleted file mode 100644 index 0dcd53dfd..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) (Taboo) dc65fd.yaml +++ /dev/null @@ -1,56 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 584512 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5845': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"05230-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Upgrade.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" -GUID: dc65fd -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Telescopic Sight (3) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 8.98 - posY: 3.82 - posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) db2c81.yaml b/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) db2c81.yaml index 9d52da188..210cfc0ee 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) db2c81.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Telescopic Sight (3) db2c81.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292816 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05230\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Upgrade.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05230\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. Upgrade.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: db2c81 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.04 posY: 3.9 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tempt Fate 33f906.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tempt Fate 33f906.yaml index 72aef9570..b0ea1b5ad 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tempt Fate 33f906.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tempt Fate 33f906.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583531 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07037\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Fortune. Blessed. Cursed.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07037\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Fortune. Blessed. Cursed.\",\n + \ \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 33f906 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.33 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) b5e5f1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) b5e5f1.yaml index 22b5fab8c..4cf206968 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) b5e5f1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) b5e5f1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292912 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Rogue DragSelectable: true -GMNotes: "{\r\n \"id\": \"05190\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Illicit.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n - \ \"type\": \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05190\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. Illicit.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Circle + Undone\"\n}" GUID: b5e5f1 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.07 posY: 3.74 posZ: -16.71 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) cbe256.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) cbe256.yaml index 0f2698219..5070c6d78 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) cbe256.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash (3) cbe256.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 293013 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Survivor DragSelectable: true -GMNotes: "{\r\n \"id\": \"05191\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Illicit.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n - \ \"type\": \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05191\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. Illicit.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": + \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Circle + Undone\"\n}" GUID: cbe256 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.09 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash be33f5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash be33f5.yaml index adb1cc701..ad1ec5f57 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash be33f5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tennessee Sour Mash be33f5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277605 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05117\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue|Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Illicit.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05117\",\n \"type\": \"Asset\",\n \"class\": \"Rogue|Survivor\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. Illicit.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: be33f5 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.11 posY: 3.93 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Terrible Secret 06322f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Terrible Secret 06322f.yaml index d4981ad82..b619387f2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Terrible Secret 06322f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Terrible Secret 06322f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527561 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05015\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05015\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 06322f Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.15 posY: 3.9 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tetsuo Mori 08e5a6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tetsuo Mori 08e5a6.yaml index 8841c2f3b..c9c9451d1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tetsuo Mori 08e5a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tetsuo Mori 08e5a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379829 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Too Noble for His Own Good DragSelectable: true -GMNotes: "{\r\n \"id\": \"06155\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Police.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06155\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Ally. + Police.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 08e5a6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.74 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The 13th Vision c1ce8e.yaml b/unpacked/Bag All Player Cards 15bb07/Card The 13th Vision c1ce8e.yaml index 95701ea4c..75389e54d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The 13th Vision c1ce8e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The 13th Vision c1ce8e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 290321 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05041\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Omen.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05041\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Omen.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 2,\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: c1ce8e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.85 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Bell Tolls 6cbc01.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Bell Tolls 6cbc01.yaml index 7fa28cb1f..590f2df41 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Bell Tolls 6cbc01.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Bell Tolls 6cbc01.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 537609 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"04042\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04042\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 6cbc01 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.07 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Black Book ae3775.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Black Book ae3775.yaml index bf767b7dd..3bc6ad387 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Black Book ae3775.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Black Book ae3775.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 275732 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Signed in Blood DragSelectable: true -GMNotes: "{\r\n \"id\": \"05150\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Tome. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05150\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Item. Tome. Relic.\",\n \"willpowerIcons\": 1,\n + \ \"intellectIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: ae3775 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 9.17 posY: 2.91 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Black Cat (5) 16e57b.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Black Cat (5) 16e57b.yaml index 347238a55..a6c841883 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Black Cat (5) 16e57b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Black Cat (5) 16e57b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448613 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: A Liar, or a Prophet, or Both DragSelectable: true -GMNotes: "{\r\n \"id\": \"06285\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 5,\r\n \"traits\": \"Ally. Avatar. Dreamlands.\",\r\n - \ \"wildIcons\": 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06285\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 5,\n \"traits\": \"Ally. + Avatar. Dreamlands.\",\n \"wildIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 16e57b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 4.07 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Black Fan (3) 3eafd5.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Black Fan (3) 3eafd5.yaml index 698b72a9e..2b7ac9093 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Black Fan (3) 3eafd5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Black Fan (3) 3eafd5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379047 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Symbol of Power DragSelectable: true -GMNotes: "{\r\n \"id\": \"08057\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the - Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08057\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Relic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 3eafd5 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.2 posY: 2.14 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.ttslua b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.ttslua index 700f801a3..d716cb996 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.ttslua @@ -41,19 +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("playercards/cards/TheChthonianStone3") -end) -__bundle_register("playercards/cards/TheChthonianStone3", function(require, _LOADED, __bundle_register, __bundle_modules) -VALID_TOKENS = { - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, -} - -require("playercards/CardsThatSealTokens") -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. @@ -79,6 +66,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -126,7 +118,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -135,7 +129,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -151,6 +145,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -186,7 +185,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -194,6 +193,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -205,8 +208,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -231,7 +234,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -254,7 +257,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -266,36 +269,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -316,11 +344,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -328,33 +360,176 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/TheChthonianStone3") +end) +__bundle_register("playercards/cards/TheChthonianStone3", function(require, _LOADED, __bundle_register, __bundle_modules) +VALID_TOKENS = { + ["Skull"] = true, + ["Cultist"] = true, + ["Tablet"] = true, + ["Elder Thing"] = true, +} + +require("playercards/CardsThatSealTokens") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.yaml index e40556e57..c06448091 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone (3) a775ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545207 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Stygian Waymark DragSelectable: true -GMNotes: "{\r\n \"id\": \"53008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Item. Relic. Cursed.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"Return to the Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53008\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Relic. Cursed.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Charge\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: a775ad Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.03 posY: 3.86 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.ttslua b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.ttslua index da4ce50fc..4283db682 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.ttslua @@ -41,81 +41,128 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenArrangerApi = {} + local ChaosBagApi = {} - -- local function to call the token arranger, if it is on the table - ---@param functionName String Name of the function to cal - ---@param argument Variant Parameter to pass - local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] - if tokenArranger ~= nil then - tokenArranger.call(functionName, argument) + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) end + return chaosBagContents end - -- updates the token modifiers with the provided data - ---@param tokenData Table Contains the chaos token metadata - TokenArrangerApi.onTokenDataChanged = function(fullData) - callIfExistent("onTokenDataChanged", fullData) + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") end - -- deletes already laid out tokens - TokenArrangerApi.deleteCopiedTokens = function() - callIfExistent("deleteCopiedTokens") + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") end - -- updates the laid out tokens - TokenArrangerApi.layout = function() - Wait.time(function() callIfExistent("layout") end, 0.1) + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) end - return TokenArrangerApi + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi end end) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + local GUIDReferenceApi = {} - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) + local function getGuidHandler() + return getObjectFromGUID("123456") end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type) + return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectsByType = function(type) + return getGuidHandler().call("getObjectsByType", type) 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", playerColor) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + GUIDReferenceApi.getObjectsByOwner = function(owner) + return getGuidHandler().call("getObjectsByOwner", owner) 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + -- 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 - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi + return GUIDReferenceApi end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) @@ -156,6 +203,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -203,7 +255,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -212,7 +266,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -228,6 +282,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -263,7 +322,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -271,6 +330,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -282,8 +345,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -308,7 +371,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -331,7 +394,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -343,18 +406,130 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end +end) +__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + -- local function to call the token arranger, if it is on the table + ---@param functionName String Name of the function to cal + ---@param argument Variant 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.yaml index 6f416eb6d..5b43de934 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Chthonian Stone fc4ce8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230327 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Stygian Waymark DragSelectable: true -GMNotes: "{\r\n \"id\": \"04030\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Cursed.\",\r\n - \ \"intellectIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04030\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Relic. Cursed.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: fc4ce8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.87 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.ttslua b/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.ttslua index 3c2c64053..527a2ed75 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.ttslua @@ -41,6 +41,218 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__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 Variant 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/cards/TheCodexofAges") end) @@ -76,6 +288,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -123,7 +340,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -132,7 +351,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -148,6 +367,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -183,7 +407,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -191,6 +415,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -202,8 +430,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -228,7 +456,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -251,7 +479,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -263,95 +491,42 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end -end) -__bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local TokenArrangerApi = {} - -- local function to call the token arranger, if it is on the table - ---@param functionName String Name of the function to cal - ---@param argument Variant Parameter to pass - local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] - if tokenArranger ~= nil then - tokenArranger.call(functionName, argument) - end +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) end - - -- updates the token modifiers with the provided data - ---@param tokenData 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 MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) - end - - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { 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) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.yaml index 0afde5616..89e42ce65 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Codex of Ages df9809.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583136 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: finis omnium nunc est DragSelectable: true -GMNotes: "{\r\n \"id\": \"04013\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic. Tome. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04013\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Relic. Tome. Blessed.\",\n + \ \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: df9809 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.99 posY: 3.79 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Council's Coffer (2) 0e39c2.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Council's Coffer (2) 0e39c2.yaml index 0430706b1..d73eaf25d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Council's Coffer (2) 0e39c2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Council's Coffer (2) 0e39c2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 312109 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: "What\uFFFD\uFFFD\u201A\uFFFD\uFFFDs in the Box?" DragSelectable: true -GMNotes: "{\r\n \"id\": \"05196\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"countPerInvestigator\": 1,\r\n \"type\": - \"Lock\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05196\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"countPerInvestigator\": 1,\n \"type\": \"Lock\",\n + \ \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Circle Undone\"\n}" GUID: 0e39c2 Grid: true GridProjection: false @@ -48,11 +47,11 @@ Transform: posX: 9.06 posY: 3.91 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Devil ∙ XV 7bcaf3.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Devil ∙ XV 7bcaf3.yaml index 43afa2dd4..3e1d00976 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Devil ∙ XV 7bcaf3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Devil ∙ XV 7bcaf3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449534 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Your Shadow Hungers DragSelectable: true -GMNotes: "{\r\n \"id\": \"54015\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Omen. Tarot.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54015\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Omen. Tarot.\",\n \"weakness\": + true,\n \"basicWeaknessCount\": 2,\n \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 7bcaf3 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.76 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Dirge of Reason fe68c6.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Dirge of Reason fe68c6.yaml index d2cc93756..66d77fec2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Dirge of Reason fe68c6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Dirge of Reason fe68c6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 369945 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98006\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98006\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Promo\"\n}" GUID: fe68c6 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.13 posY: 5.48 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Eye of Truth (5) d6085d.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Eye of Truth (5) d6085d.yaml index fb0338d02..8ffdd9d10 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Eye of Truth (5) d6085d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Eye of Truth (5) d6085d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448840 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06325\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 5,\r\n \"traits\": \"Spell. Practiced.\",\r\n \"wildIcons\": 4,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06325\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 5,\n \"traits\": \"Spell. Practiced.\",\n \"wildIcons\": 4,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: d6085d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.01 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Fool ∙ 0 (3) b74c69.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Fool ∙ 0 (3) b74c69.yaml index ae4ff9da6..0a023307a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Fool ∙ 0 (3) b74c69.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Fool ∙ 0 (3) b74c69.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449532 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Unlimited Potential DragSelectable: true -GMNotes: "{\r\n \"id\": \"54011\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"Return - to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54011\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"Return to the Circle Undone\"\n}" GUID: b74c69 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Gold Pocket Watch (4) 62d930.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Gold Pocket Watch (4) 62d930.yaml index ec64b47b8..a6884a3b3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Gold Pocket Watch (4) 62d930.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Gold Pocket Watch (4) 62d930.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315257 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Stealing Time DragSelectable: true -GMNotes: "{\r\n \"id\": \"02305\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02305\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich + Legacy\"\n}" GUID: 62d930 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 8.97 posY: 4.14 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Harbinger e9fef2.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Harbinger e9fef2.yaml index 74c70144a..37e0c340a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Harbinger e9fef2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Harbinger e9fef2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379004 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"08006\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Omen. Endtimes.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08006\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Omen. Endtimes.\",\n \"weakness\": true,\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: e9fef2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Hierophant ∙ V (3) 20c8a9.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Hierophant ∙ V (3) 20c8a9.yaml index e93cd4c52..78e6eb381 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Hierophant ∙ V (3) 20c8a9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Hierophant ∙ V (3) 20c8a9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449527 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Your True Master Awaits DragSelectable: true -GMNotes: "{\r\n \"id\": \"54007\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"Return - to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54007\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 20c8a9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.83 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Home Front b80459.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Home Front b80459.yaml index ff615976c..503ff0a4e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Home Front b80459.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Home Front b80459.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374330 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03007\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Practiced. Expert.\",\r\n \"combatIcons\": 4,\r\n \"cycle\": \"The - Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03007\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Practiced. Expert.\",\n \"combatIcons\": 4,\n \"cycle\": \"The + Path to Carcosa\"\n}" GUID: b80459 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.87 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Hungering Blade (1) 2d94ed.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Hungering Blade (1) 2d94ed.yaml index 3dbb61d07..7e90fcb67 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Hungering Blade (1) 2d94ed.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Hungering Blade (1) 2d94ed.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590414 ColorDiffuse: @@ -19,10 +19,12 @@ CustomDeck: UniqueBack: false Description: "Calamitous Blade of Celepha\xEFs" DragSelectable: true -GMNotes: "{\r\n \"id\": \"06018\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Item. Weapon. Melee. Relic. - Cursed.\",\r\n \"bonded\": [\r\n {\r\n \"count\": 3,\r\n \"id\": \"06019\"\r\n - \ }\r\n ],\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06018\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Item. + Weapon. Melee. Relic. Cursed.\",\n \"bonded\": [\n {\n \"count\": 3,\n + \ \"id\": \"06019\"\n }\n ],\n \"combatIcons\": 1,\n \"uses\": [\n {\n + \ \"count\": 0,\n \"type\": \"Offering\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 2d94ed Grid: true GridProjection: false @@ -47,11 +49,11 @@ Transform: posX: 9.13 posY: 3.77 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The King in Yellow 016b72.yaml b/unpacked/Bag All Player Cards 15bb07/Card The King in Yellow 016b72.yaml index 9e7fea7f3..8243eb5f3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The King in Yellow 016b72.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The King in Yellow 016b72.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374633 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03011\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Tome.\",\r\n \"weakness\": true,\r\n \"cycle\": \"The Path to - Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03011\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"traits\": \"Tome.\",\n \"weakness\": true,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 016b72 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.05 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Man in the Pallid Mask 6720ef.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Man in the Pallid Mask 6720ef.yaml index 3dd743f2d..c3281db1d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Man in the Pallid Mask 6720ef.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Man in the Pallid Mask 6720ef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232300 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Humanoid. Elite. DragSelectable: true -GMNotes: "{\r\n \"id\": \"03059\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Elite.\",\r\n \"weakness\": true,\r\n \"cycle\": \"The - Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03059\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Elite.\",\n \"weakness\": true,\n \"cycle\": \"The Path + to Carcosa\"\n}" GUID: 6720ef Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.9 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Moon ∙ XVIII (1) e80bd8.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Moon ∙ XVIII (1) e80bd8.yaml index 405d66d0f..65ef25ce4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Moon ∙ XVIII (1) e80bd8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Moon ∙ XVIII (1) e80bd8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527605 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Message from Your Inner Self DragSelectable: true -GMNotes: "{\r\n \"id\": \"05031\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"The - Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05031\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: e80bd8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 4b7a8e.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 4b7a8e.yaml new file mode 100644 index 000000000..c09b0aa0a --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 4b7a8e.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 314 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: Petrus de Dacia Translation +DragSelectable: true +GMNotes: "{\n \"id\": \"60233-t\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Item. Tome.\",\n \"intellectIcons\": + 5,\n \"uses\": [\n {\n \"count\": 6,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Investigator Packs\"\n}" +GUID: 4b7a8e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: The Necronomicon (5) (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -58.59 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 9fa2a5.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 9fa2a5.yaml deleted file mode 100644 index de2dc1abc..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) (Taboo) 9fa2a5.yaml +++ /dev/null @@ -1,57 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 450613 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '4506': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656721113609569419/60B1DFC7C68C406C34641A1F53078F46D610821C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false -Description: Petrus de Dacia Translation -DragSelectable: true -GMNotes: "{\r\n \"id\": \"60233-t\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 5,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" -GUID: 9fa2a5 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: The Necronomicon (5) (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- Asset -- PlayerCard -Tooltip: true -Transform: - posX: 9.13 - posY: 5.56 - posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) 96ba38.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) 96ba38.yaml index 89bcf6df9..2b1038494 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) 96ba38.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon (5) 96ba38.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538831 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Petrus de Dacia Translation DragSelectable: true -GMNotes: "{\r\n \"id\": \"60233\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 5,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": - 5,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60233\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Item. + Tome.\",\n \"intellectIcons\": 5,\n \"uses\": [\n {\n \"count\": 6,\n + \ \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 96ba38 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.01 posY: 3.81 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon 6b2550.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon 6b2550.yaml index d9fcf403c..8c26325ce 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon 6b2550.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon 6b2550.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 370323 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: John Dee Translation DragSelectable: true -GMNotes: "{\r\n \"id\": \"01009\",\r\n \"alternate_ids\": [\r\n \"01509\"\r\n - \ ],\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n \"traits\": \"Item. - Tome.\",\r\n \"weakness\": true,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01009\",\n \"alternate_ids\": [\n \"01509\"\n ],\n \"type\": + \"Asset\",\n \"slot\": \"Hand\",\n \"class\": \"Neutral\",\n \"traits\": \"Item. + Tome.\",\n \"weakness\": true,\n \"cycle\": \"Core\"\n}" GUID: 6b2550 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 29.34 posY: 3.37 posZ: -58.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon d45f10.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon d45f10.yaml index 018ef06ab..525435e87 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon d45f10.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Necronomicon d45f10.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232934 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Olaus Wormius Translation DragSelectable: true -GMNotes: "{\r\n \"id\": \"02140\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Tome.\",\r\n \"intellectIcons\": 1,\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02140\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Tome.\",\n \"intellectIcons\": 1,\n \"cycle\": + \"The Dunwich Legacy\"\n}" GUID: d45f10 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 3.92 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Painted World dfd48b.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Painted World dfd48b.yaml index ca9883880..796c65b55 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Painted World dfd48b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Painted World dfd48b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374014 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03012\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Spell.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03012\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Spell.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: dfd48b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 3.05 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Price of Failure dc5b38.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Price of Failure dc5b38.yaml index 1dca7720f..b2535cc7c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Price of Failure dc5b38.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Price of Failure dc5b38.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 537612 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"04039\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Pact.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04039\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Pact.\",\n \"weakness\": true,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: dc5b38 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.17 posY: 3.12 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Raven Quill b81037.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Raven Quill b81037.yaml index 68436175b..984fe7748 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Raven Quill b81037.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Raven Quill b81037.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379035 ColorDiffuse: @@ -19,27 +19,25 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09042\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic. Upgrade.\",\r\n - \ \"intellectIcons\": 2,\r\n \"customizations\": [\r\n {\r\n \"name\": - \"Living Quill\",\r\n \"xp\": 1,\r\n \"text\": \"Using attached asset\u2019s - \u27BD abilities does not provoke attacks of opportunity.\"\r\n },\r\n {\r\n - \ \"name\": \"Spectral Binding\",\r\n \"xp\": 1,\r\n \"text\": \"Attached - asset does not take up any slots.\"\r\n },\r\n {\r\n \"name\": \"Mystic - Vane\",\r\n \"xp\": 2,\r\n \"text\": \"You get +2 skill value while performing - skill tests on attached asset.\"\r\n },\r\n {\r\n \"name\": \"Endless - Inkwell\",\r\n \"xp\": 2,\r\n \"text\": \"Name two more Tome or Spell - assets.\"\r\n },\r\n {\r\n \"name\": \"Energy Sap\",\r\n \"xp\": - 2,\r\n \"text\": \"The Raven Quill gains: \u201C\U0001F5F2 Exhaust The Raven - Quill: Move 1 secret or charge from an asset you control to attached asset.\u201D\"\r\n - \ },\r\n {\r\n \"name\": \"Interwoven Ink\",\r\n \"xp\": 3,\r\n \"text\": +GMNotes: "{\n \"id\": \"09042\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. Relic. Upgrade.\",\n \"intellectIcons\": + 2,\n \"customizations\": [\n {\n \"name\": \"Living Quill\",\n \"xp\": + 1,\n \"text\": \"Using attached asset\u2019s \u27BD abilities does not provoke + attacks of opportunity.\"\n },\n {\n \"name\": \"Spectral Binding\",\n + \ \"xp\": 1,\n \"text\": \"Attached asset does not take up any slots.\"\n + \ },\n {\n \"name\": \"Mystic Vane\",\n \"xp\": 2,\n \"text\": + \"You get +2 skill value while performing skill tests on attached asset.\"\n },\n + \ {\n \"name\": \"Endless Inkwell\",\n \"xp\": 2,\n \"text\": \"Name + two more Tome or Spell assets.\"\n },\n {\n \"name\": \"Energy Sap\",\n + \ \"xp\": 2,\n \"text\": \"The Raven Quill gains: \u201C\U0001F5F2 Exhaust + The Raven Quill: Move 1 secret or charge from an asset you control to attached asset.\u201D\"\n + \ },\n {\n \"name\": \"Interwoven Ink\",\n \"xp\": 3,\n \"text\": \"After you resolve an \u27BD ability on attached asset, you may exhaust The Raven - Quill to ready another asset you control.\"\r\n },\r\n {\r\n \"name\": - \"Supernatural Record\",\r\n \"xp\": 4,\r\n \"text\": \"When you play - The Raven Quill, instead of attaching it to a named asset you control, you may search - your deck, discard pile, and hand for a copy of a named asset and play it (paying - its cost). Then, attach The Raven Quill to it.\"\r\n }\r\n ],\r\n \"cycle\": - \"The Scarlet Keys\"\r\n}\r" + Quill to ready another asset you control.\"\n },\n {\n \"name\": \"Supernatural + Record\",\n \"xp\": 4,\n \"text\": \"When you play The Raven Quill, instead + of attaching it to a named asset you control, you may search your deck, discard + pile, and hand for a copy of a named asset and play it (paying its cost). Then, + attach The Raven Quill to it.\"\n }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: b81037 Grid: true GridProjection: false @@ -63,11 +61,11 @@ Transform: posX: 16.67 posY: 3.4 posZ: 65.93 - rotX: 359.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (2) 814c79.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (2) 814c79.yaml index 38cd13253..f64b21a5e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (2) 814c79.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (2) 814c79.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379043 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Broken but Reliable DragSelectable: true -GMNotes: "{\r\n \"id\": \"08053\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 0,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08053\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Relic.\",\n \"wildIcons\": 1,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 814c79 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.19 posY: 2.21 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (5) 696894.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (5) 696894.yaml index 192000672..b7ae0934f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (5) 696894.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Red Clock (5) 696894.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379048 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: Broken but Reliable DragSelectable: true -GMNotes: "{\r\n \"id\": \"08058\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 0,\r\n \"type\": \"Charge\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08058\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 2,\n \"level\": 5,\n \"traits\": \"Item. + Relic.\",\n \"wildIcons\": 2,\n \"uses\": [\n {\n \"count\": 0,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: '696894' Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.2 posY: 2.23 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Red-Gloved Man (5) ad18a6.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Red-Gloved Man (5) ad18a6.yaml index fae571155..887c85d5e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Red-Gloved Man (5) ad18a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Red-Gloved Man (5) ad18a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368526 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: He Was Never There DragSelectable: true -GMNotes: "{\r\n \"id\": \"02310\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 5,\r\n \"traits\": \"Ally. Conspirator.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02310\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 5,\n \"traits\": \"Ally. + Conspirator.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: ad18a6 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.79 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Silver Key 61fd07.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Silver Key 61fd07.yaml index 41b4fb0ca..aa31bb750 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Silver Key 61fd07.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Silver Key 61fd07.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 278846 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Key to the Gate of Dreams DragSelectable: true -GMNotes: "{\r\n \"id\": \"06189\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Charm. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 2,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06189\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Charm. Relic.\",\n \"willpowerIcons\": 1,\n + \ \"wildIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 61fd07 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.85 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Skeleton Key (2) 5d559a.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Skeleton Key (2) 5d559a.yaml index b382717a3..0374d0405 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Skeleton Key (2) 5d559a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Skeleton Key (2) 5d559a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581409 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04270\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic. Cursed.\",\r\n - \ \"intellectIcons\": 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04270\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 2,\n \"traits\": \"Item. Relic. Cursed.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 5d559a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.52 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Star ∙ XVII (3) a77ce0.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Star ∙ XVII (3) a77ce0.yaml index 4c9990cb6..ae4f1da25 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Star ∙ XVII (3) a77ce0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Star ∙ XVII (3) a77ce0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449521 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: You Have Been Chosen DragSelectable: true -GMNotes: "{\r\n \"id\": \"54001\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"Return - to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54001\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"Return to the Circle Undone\"\n}" GUID: a77ce0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.82 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Stars Are Right 600a3c.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Stars Are Right 600a3c.yaml index 399524944..0a0467870 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Stars Are Right 600a3c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Stars Are Right 600a3c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 443723 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06028\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"traits\": \"Augury.\",\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06028\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Augury.\",\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 600a3c Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Stygian Eye (3) c4ae95.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Stygian Eye (3) c4ae95.yaml index ac7cdfbc1..dca69817a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Stygian Eye (3) c4ae95.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Stygian Eye (3) c4ae95.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449602 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07263\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 10,\r\n \"level\": 3,\r\n \"traits\": \"Insight. Cursed.\",\r\n \"willpowerIcons\": - 3,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07263\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 10,\n \"level\": 3,\n \"traits\": \"Insight. Cursed.\",\n \"willpowerIcons\": + 3,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: c4ae95 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.91 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Tattered Cloak 5d30a1.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Tattered Cloak 5d30a1.yaml index e0db8b7de..0e628fa93 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Tattered Cloak 5d30a1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Tattered Cloak 5d30a1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232333 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Regalia Dementia DragSelectable: true -GMNotes: "{\r\n \"id\": \"03143\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Clothing.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03143\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Clothing.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 5d30a1 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.95 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Thing That Follows da227d.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Thing That Follows da227d.yaml index a40c95c37..44be0d488 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Thing That Follows da227d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Thing That Follows da227d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431115 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Enemy DragSelectable: true -GMNotes: "{\r\n \"id\": \"03042\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster. Curse.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03042\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Curse.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: da227d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.71 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Tower ∙ XVI d5c93d.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Tower ∙ XVI d5c93d.yaml index 4b94c4b69..49874a2eb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Tower ∙ XVI d5c93d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Tower ∙ XVI d5c93d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 290320 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Circumstances Beyond Your Control DragSelectable: true -GMNotes: "{\r\n \"id\": \"05042\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Omen. Tarot.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05042\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Neutral\",\n \"cost\": 4,\n \"traits\": \"Omen. Tarot.\",\n \"weakness\": + true,\n \"basicWeaknessCount\": 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: d5c93d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The Truth Beckons ca1b5c.yaml b/unpacked/Bag All Player Cards 15bb07/Card The Truth Beckons ca1b5c.yaml index 43257ee25..06a18b1d1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The Truth Beckons ca1b5c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The Truth Beckons ca1b5c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232102 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07154\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07154\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: ca1b5c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.94 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card The World ∙ XXI (3) 372b5b.yaml b/unpacked/Bag All Player Cards 15bb07/Card The World ∙ XXI (3) 372b5b.yaml index 1ea584da7..61a13e021 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card The World ∙ XXI (3) 372b5b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card The World ∙ XXI (3) 372b5b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449523 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: The Journey is Complete DragSelectable: true -GMNotes: "{\r\n \"id\": \"54003\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Tarot.\",\r\n \"cycle\": \"Return - to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54003\",\n \"type\": \"Asset\",\n \"slot\": \"Tarot\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Tarot.\",\n + \ \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 372b5b Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.14 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Thermos 5b14dc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Thermos 5b14dc.yaml index 03bc5ee87..a1d894632 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Thermos 5b14dc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Thermos 5b14dc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261102 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04274\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04274\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Item.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 5b14dc Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.13 posY: 3.73 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit (3) be8d1f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit (3) be8d1f.yaml index d33b2ac9f..043e360cb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit (3) be8d1f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit (3) be8d1f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379068 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09075\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Tool. Illicit.\",\r\n - \ \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 6,\r\n \"type\": \"Supply\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09075\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. + Tool. Illicit.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"uses\": + [\n {\n \"count\": 6,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: be8d1f Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit 857b53.yaml b/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit 857b53.yaml index b195ab22d..1f2d2a393 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit 857b53.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Thieves' Kit 857b53.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379057 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09064\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Tool. Illicit.\",\r\n - \ \"intellectIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 6,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The - Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09064\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Tool. Illicit.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": + 6,\n \"type\": \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Scarlet Keys\"\n}" GUID: 857b53 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet (2) 3e0653.yaml b/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet (2) 3e0653.yaml index 7f3bec527..877018a02 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet (2) 3e0653.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet (2) 3e0653.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315303 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"51006\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 2,\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51006\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 2,\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: 3e0653 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.72 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet 6fec31.yaml b/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet 6fec31.yaml index bfb81a0e7..c6ffd4292 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet 6fec31.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Think on Your Feet 6fec31.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368709 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02025\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02025\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 6fec31 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.88 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Third Time's a Charm (2) 45956a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Third Time's a Charm (2) 45956a.yaml index 1211faf8e..a2390c72a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Third Time's a Charm (2) 45956a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Third Time's a Charm (2) 45956a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232109 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07161\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07161\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 45956a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.51 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Thomas Dawson 1f7e6e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Thomas Dawson 1f7e6e.yaml index 930de5544..a07641e67 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Thomas Dawson 1f7e6e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Thomas Dawson 1f7e6e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 369815 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Soldier in a New War DragSelectable: true -GMNotes: "{\r\n \"id\": \"07082\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Ally. Agency. Veteran.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth - Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07082\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Ally. Agency. Veteran.\",\n \"willpowerIcons\": + 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 1f7e6e Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 8.97 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) a11abb.yaml b/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) baa553.yaml similarity index 50% rename from unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) a11abb.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) baa553.yaml index 15b50b715..be6fad121 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) a11abb.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) (Taboo) baa553.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 584413 +CardID: 329 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '5844': + '3': BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697277388086984548/E61F3E847797C2C9231829611E0D92BA6376FA67/ - NumHeight: 4 - NumWidth: 4 + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 Type: 0 UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06199-t\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Fortune. Practiced.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" -GUID: a11abb +GMNotes: "{\n \"id\": \"06199-t\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 1,\n \"traits\": \"Fortune. Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" +GUID: baa553 Grid: true GridProjection: false Hands: true @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 9.09 - posY: 3.7 - posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -16.59 + posY: 3.45 + posZ: -51.82 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) 30062e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) 30062e.yaml index cb73cbd79..5c2071d72 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) 30062e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Three Aces (1) 30062e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 447630 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06199\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Fortune. Practiced.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06199\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 1,\n \"traits\": \"Fortune. Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 30062e Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.9 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Thrice-Damned Curiosity 3eef18.yaml b/unpacked/Bag All Player Cards 15bb07/Card Thrice-Damned Curiosity 3eef18.yaml index b5839ccfb..52a476f2c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Thrice-Damned Curiosity 3eef18.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Thrice-Damned Curiosity 3eef18.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538801 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60203\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Flaw.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60203\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 3eef18 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 8.98 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Through the Gates fd9c56.yaml b/unpacked/Bag All Player Cards 15bb07/Card Through the Gates fd9c56.yaml index 2452edd95..78a85e083 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Through the Gates fd9c56.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Through the Gates fd9c56.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527419 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"51011\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Pact. Mystery.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 2,\r\n \"cycle\": \"Return to The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"51011\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Pact. Mystery.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 2,\n \"cycle\": \"Return to The Dunwich Legacy\"\n}" GUID: fd9c56 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 118.39 posY: 1.99 posZ: 19.41 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tidal Memento b4f9ee.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tidal Memento b4f9ee.yaml index 6b6eb0784..bde1dc131 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tidal Memento b4f9ee.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tidal Memento b4f9ee.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536000 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"90038\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"permanent\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90038\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"permanent\": true,\n \"cycle\": \"Standalone\"\n}" GUID: b4f9ee Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 79.85 posY: 3.32 posZ: 6.92 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tides of Fate 823e49.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tides of Fate 823e49.yaml index 8fa22294e..afea9fb34 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tides of Fate 823e49.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tides of Fate 823e49.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581024 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07030\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Spell. Blessed.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07030\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Spell. Blessed.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 823e49 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.84 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Time Warp (2) ba0fe7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Time Warp (2) ba0fe7.yaml index 943024eb3..00dce379f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Time Warp (2) ba0fe7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Time Warp (2) ba0fe7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583810 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03311\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Paradox.\",\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03311\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Spell. Paradox.\",\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: ba0fe7 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.23 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Timeworn Brand (5) d3e55b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Timeworn Brand (5) d3e55b.yaml index 4202177de..176224a54 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Timeworn Brand (5) d3e55b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Timeworn Brand (5) d3e55b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261100 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04276\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 5,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"willpowerIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04276\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 5,\n \"level\": 5,\n \"traits\": \"Item. + Relic. Weapon. Melee.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: d3e55b Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 8.97 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tinker 102fbd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tinker 102fbd.yaml new file mode 100644 index 000000000..21cf68426 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Tinker 102fbd.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 2200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '22': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279446315725170768/AA2426A7A410FEA47066203B1965D849D4AC43DA/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10028\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight. Upgrade.\",\n \"agilityIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 102fbd +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Tinker +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.17 + posY: 2.93 + posZ: -16.73 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card To Fight the Black Wind 00b6c3.yaml b/unpacked/Bag All Player Cards 15bb07/Card To Fight the Black Wind 00b6c3.yaml index dfe3b973f..e912291dc 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card To Fight the Black Wind 00b6c3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card To Fight the Black Wind 00b6c3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230603 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98012\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Task. Dreamlands.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98012\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task. Dreamlands.\",\n \"weakness\": true,\n \"cycle\": \"Promo\"\n}" GUID: 00b6c3 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 8.97 posY: 4.33 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Toe to Toe 58288b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Toe to Toe 58288b.yaml index c4c433b30..88dab2000 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Toe to Toe 58288b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Toe to Toe 58288b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379010 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08020\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit. Tactic.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08020\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit. Tactic.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 58288b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.44 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Token of Faith 2ea0d0.yaml b/unpacked/Bag All Player Cards 15bb07/Card Token of Faith 2ea0d0.yaml index 29cd760f4..0b58914a0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Token of Faith 2ea0d0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Token of Faith 2ea0d0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587627 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07033\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Charm.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07033\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Charm.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 2ea0d0 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.01 posY: 3.86 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tommy Malloy c3a014.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tommy Malloy c3a014.yaml index 1edadd926..c9dbcad14 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tommy Malloy c3a014.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tommy Malloy c3a014.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545301 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"60103\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Criminal. Syndicate.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60103\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Criminal. Syndicate.\",\n \"weakness\": true,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: c3a014 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon 5e73c6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon 5e73c6.yaml index 3eab573bb..8dd4ed201 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon 5e73c6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon 5e73c6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274011 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.78 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon e637cd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon e637cd.yaml index 758b36dfb..cafa7dfca 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon e637cd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tommy Muldoon e637cd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536532 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Rookie Cop DragSelectable: true -GMNotes: "{\r\n \"id\": \"06001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Police. Warden.\",\r\n \"willpowerIcons\": 3,\r\n - \ \"intellectIcons\": 3,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Police. Warden.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 3,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: e637cd Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.79 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 4f0f4a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 4f0f4a.yaml index 81ff892d9..b1c26df7a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 4f0f4a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 4f0f4a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274015 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.92 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 53a412.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 53a412.yaml index 58b52a5b2..ae55c992c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 53a412.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tony Morgan 53a412.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536436 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Bounty Hunter DragSelectable: true -GMNotes: "{\r\n \"id\": \"06003\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Criminal. Hunter.\",\r\n \"willpowerIcons\": 2,\r\n - \ \"intellectIcons\": 3,\r\n \"combatIcons\": 5,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06003\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Criminal. Hunter.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 3,\n \"combatIcons\": 5,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 53a412 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 2.13 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tony's .38 Long Colt 1186a1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tony's .38 Long Colt 1186a1.yaml index 130a63a92..8084b50b3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tony's .38 Long Colt 1186a1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tony's .38 Long Colt 1186a1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581705 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06011\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Weapon. Firearm.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n - \ \"count\": 3,\r\n \"type\": \"Ammo\",\r\n \"token\": \"resource\"\r\n - \ }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06011\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Item. Weapon. Firearm.\",\n + \ \"intellectIcons\": 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"uses\": + [\n {\n \"count\": 3,\n \"type\": \"Ammo\",\n \"token\": \"resource\"\n + \ }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 1186a1 Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 8.98 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tony's Quarry d6f8d1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tony's Quarry d6f8d1.yaml index 35cda4a5a..50055264e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tony's Quarry d6f8d1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tony's Quarry d6f8d1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 582106 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06012\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Humanoid. Monster. Deep One.\",\r\n \"weakness\": true,\r\n \"uses\": - [\r\n {\r\n \"count\": 1,\r\n \"type\": \"Doom\",\r\n \"token\": - \"doom\"\r\n },\r\n {\r\n \"count\": 1,\r\n \"type\": \"Bounty\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06012\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Monster. Deep One.\",\n \"weakness\": true,\n \"uses\": + [\n {\n \"count\": 1,\n \"type\": \"Doom\",\n \"token\": \"doom\"\n + \ },\n {\n \"count\": 1,\n \"type\": \"Bounty\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: d6f8d1 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.07 posY: 3.88 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tool Belt 769a3e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tool Belt 769a3e.yaml index 4282df5ae..bc33383de 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tool Belt 769a3e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tool Belt 769a3e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379144 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09120\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Item. Clothing.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09120\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Clothing.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 769a3e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.72 posY: 3.35 posZ: 65.64 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tooth of Eztli c1a687.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tooth of Eztli c1a687.yaml index 77fc1e556..f23ce7b05 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tooth of Eztli c1a687.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tooth of Eztli c1a687.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368432 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Mortal Reminder DragSelectable: true -GMNotes: "{\r\n \"id\": \"04023\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04023\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Relic.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: c1a687 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.15 posY: 4.11 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Torrent of Power 79287f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Torrent of Power 79287f.yaml index 9211a06fb..53f915729 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Torrent of Power 79287f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Torrent of Power 79287f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230300 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03235\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Mystic\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03235\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Path to Carcosa\"\n}" GUID: 79287f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Track Shoes 6fa7fa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Track Shoes 6fa7fa.yaml index 9f73c720b..1b27c211a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Track Shoes 6fa7fa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Track Shoes 6fa7fa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274608 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05036\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Clothing. Footwear.\",\r\n - \ \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05036\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. Clothing. Footwear.\",\n + \ \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 6fa7fa Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.52 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Treasure Hunter (1) 18927e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Treasure Hunter (1) 18927e.yaml index b64c7391e..8ed425e76 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Treasure Hunter (1) 18927e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Treasure Hunter (1) 18927e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 315236 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04025\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 1,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04025\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 1,\n \"traits\": \"Ally. + Wayfarer.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 18927e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.53 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trench Coat ba560e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trench Coat ba560e.yaml index 5d4ff6573..391fc48b2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trench Coat ba560e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trench Coat ba560e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368518 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04203\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Item. Clothing.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04203\",\n \"type\": \"Asset\",\n \"slot\": \"Body\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Clothing.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: ba560e Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trench Knife 0d4eb9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trench Knife 0d4eb9.yaml index 73c0ea2c8..aba0c5d54 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trench Knife 0d4eb9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trench Knife 0d4eb9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226320 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03147\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03147\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Guardian\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 0d4eb9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.99 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire (3) 76978f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire (3) 76978f.yaml index 02698a3b2..eec3d3a01 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire (3) 76978f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire (3) 76978f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449530 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"54010\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"wildIcons\": - 2,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54010\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"wildIcons\": 2,\n + \ \"cycle\": \"Return to the Circle Undone\"\n}" GUID: 76978f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.11 posY: 3.67 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire 869d4c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire 869d4c.yaml index d1568f37b..8c105d654 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire 869d4c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trial by Fire 869d4c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 374418 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05281\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05281\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Circle Undone\"\n}" GUID: 869d4c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trigger Man (3) 11d7ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trigger Man (3) 11d7ad.yaml index 7824c1c21..da2c510a2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trigger Man (3) 11d7ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trigger Man (3) 11d7ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09076\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Criminal.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09076\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Ally. + Criminal.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 11d7ad Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.39 posZ: 65.93 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough (Taboo) 2ce76d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough (Taboo) 2ce76d.yaml new file mode 100644 index 000000000..588063bbb --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough (Taboo) 2ce76d.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 55103 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '551': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907490/4AAE686A793E66311FF78890309D20670A329D16/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607899142907034/013ED775CA50C6FC71731E4FBAEBF1ECA8C68F1E/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: true +Description: The Spy +DragSelectable: true +GMNotes: "{\n \"id\": \"07003-t\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Agency. Detective.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 4,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" +GUID: 2ce76d +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Trish Scarborough (Taboo) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 16.86 + posY: 3.21 + posZ: -9.87 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough 333fe7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough 333fe7.yaml index 1bcb4b1e9..9fc414322 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough 333fe7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough 333fe7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553402 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Spy DragSelectable: true -GMNotes: "{\r\n \"id\": \"07003\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Agency. Detective.\",\r\n \"willpowerIcons\": 2,\r\n - \ \"intellectIcons\": 4,\r\n \"combatIcons\": 2,\r\n \"agilityIcons\": 4,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07003\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Agency. Detective.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 4,\n \"cycle\": \"The Innsmouth + Conspiracy\"\n}" GUID: 333fe7 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.45 posY: 2.0 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough fc5d62.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough fc5d62.yaml index 44a679db0..3de15b2f5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough fc5d62.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trish Scarborough fc5d62.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 553202 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.95 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Tristan Botley (2) 1fd630.yaml b/unpacked/Bag All Player Cards 15bb07/Card Tristan Botley (2) 1fd630.yaml index db73bc013..0f0f0d86e 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Tristan Botley (2) 1fd630.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Tristan Botley (2) 1fd630.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 588705 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Fixer for Hire DragSelectable: true -GMNotes: "{\r\n \"id\": \"07194\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 5,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Criminal. Cursed.\",\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07194\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Rogue\",\n \"cost\": 5,\n \"level\": 2,\n \"traits\": \"Ally. + Criminal. Cursed.\",\n \"wildIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 1fd630 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.15 posY: 3.68 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card True Grit e25dc1.yaml b/unpacked/Bag All Player Cards 15bb07/Card True Grit e25dc1.yaml index d9eddf923..f181a1709 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card True Grit e25dc1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card True Grit e25dc1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226329 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03021\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03021\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: e25dc1 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card True Magick (5) 79870f.yaml b/unpacked/Bag All Player Cards 15bb07/Card True Magick (5) 79870f.yaml index 656ac93a0..525e79223 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card True Magick (5) 79870f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card True Magick (5) 79870f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379060 ColorDiffuse: @@ -19,11 +19,11 @@ CustomDeck: UniqueBack: false Description: Reworking Reality DragSelectable: true -GMNotes: "{\r\n \"id\": \"08070\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 4,\r\n \"level\": 5,\r\n \"traits\": \"Item. Relic. Tome.\",\r\n \"willpowerIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 1,\r\n \"replenish\": - 1,\r\n \"type\": \"Charge\",\r\n \"token\": \"resource\"\r\n }\r\n - \ ],\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08070\",\n \"type\": \"Asset\",\n \"slot\": \"Hand|Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 4,\n \"level\": 5,\n \"traits\": \"Item. + Relic. Tome.\",\n \"willpowerIcons\": 2,\n \"wildIcons\": 1,\n \"uses\": [\n + \ {\n \"count\": 1,\n \"replenish\": 1,\n \"type\": \"Charge\",\n + \ \"token\": \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 79870f Grid: true GridProjection: false @@ -48,11 +48,11 @@ Transform: posX: 9.19 posY: 2.35 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card True Survivor (3) 8837ff.yaml b/unpacked/Bag All Player Cards 15bb07/Card True Survivor (3) 8837ff.yaml index e5c1583a4..fdbd911cb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card True Survivor (3) 8837ff.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card True Survivor (3) 8837ff.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368859 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03273\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"cycle\": - \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03273\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"cycle\": \"The + Path to Carcosa\"\n}" GUID: 8837ff Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 3.89 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card True Understanding 4167c0.yaml b/unpacked/Bag All Player Cards 15bb07/Card True Understanding 4167c0.yaml index 2fa70e919..ad4bf5bbf 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card True Understanding 4167c0.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card True Understanding 4167c0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368403 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04153\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04153\",\n \"type\": \"Skill\",\n \"class\": \"Seeker\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 1,\n \"cycle\": \"The + Forgotten Age\"\n}" GUID: 4167c0 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.76 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trusted 1bc300.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trusted 1bc300.yaml index 2c4a1d9e6..d9fdc8c02 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trusted 1bc300.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trusted 1bc300.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226315 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04019\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Upgrade.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04019\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Upgrade.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 1bc300 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.98 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Trusty Bullwhip ca9a60.yaml b/unpacked/Bag All Player Cards 15bb07/Card Trusty Bullwhip ca9a60.yaml index 6fbfa9b7f..03496eb5f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Trusty Bullwhip ca9a60.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Trusty Bullwhip ca9a60.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379005 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08008\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n \"agilityIcons\": - 2,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08008\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Weapon. Melee.\",\n + \ \"agilityIcons\": 2,\n \"wildIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: ca9a60 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.56 posY: 3.33 posZ: 7.39 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction (2) 45cd73.yaml b/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction (2) 45cd73.yaml index e633550ea..b92a668f4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction (2) 45cd73.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction (2) 45cd73.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 545202 ColorDiffuse: @@ -19,11 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"53003\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 3,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Return to the Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53003\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 3,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: 45cd73 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 9.02 posY: 3.97 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction d64c99.yaml b/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction d64c99.yaml index 58f0471ef..753390405 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction d64c99.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Truth from Fiction d64c99.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368412 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04152\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"uses\": [\r\n {\r\n \"count\": 2,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04152\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Secret\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: d64c99 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (1) 3dc82f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (1) 3dc82f.yaml index ce95bce98..2772f2679 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (1) 3dc82f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (1) 3dc82f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 314802 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04159\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Try\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04159\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 1,\n \"uses\": [\n {\n \"count\": 3,\n \"type\": \"Try\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 3dc82f Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.01 posY: 3.94 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (3) f1b0f9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (3) f1b0f9.yaml index 7d2d3bc14..007238aa0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (3) f1b0f9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Try and Try Again (3) f1b0f9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368857 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02309\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02309\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: f1b0f9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.04 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Twila Katherine Price (3) 9f76ec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Twila Katherine Price (3) 9f76ec.yaml index e552b31ac..72d766fea 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Twila Katherine Price (3) 9f76ec.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Twila Katherine Price (3) 9f76ec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448034 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Lost in a Dream DragSelectable: true -GMNotes: "{\r\n \"id\": \"06244\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Artist. Dreamer.\",\r\n - \ \"intellectIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06244\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Mystic\",\n \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Ally. + Artist. Dreamer.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 9f76ec Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.14 posY: 3.83 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Twilight Blade 223ba3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Twilight Blade 223ba3.yaml index e8df0e2be..2c4f31a88 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Twilight Blade 223ba3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Twilight Blade 223ba3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449359 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: Sanctum's Reward DragSelectable: true -GMNotes: "{\r\n \"id\": \"05013\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Item. Relic. Weapon.\",\r\n \"willpowerIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05013\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Item. Relic. Weapon.\",\n + \ \"willpowerIcons\": 1,\n \"combatIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 223ba3 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.1 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unbound Beast 86cf9c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unbound Beast 86cf9c.yaml index 5df6a8e90..d79c462f1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unbound Beast 86cf9c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unbound Beast 86cf9c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527236 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Monster. Extradimensional. Tindalos. DragSelectable: true -GMNotes: "{\r\n \"id\": \"06283\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster. Extradimensional. Tindalos.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06283\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Extradimensional. Tindalos.\",\n \"weakness\": true,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: 86cf9c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.83 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul (3) 343f3a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul (3) 343f3a.yaml index fd6d891ba..022395ba4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul (3) 343f3a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul (3) 343f3a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379119 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09095\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09095\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 343f3a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.74 posY: 3.35 posZ: 65.49 - rotX: 359.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul 45d2d2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul 45d2d2.yaml index 4a54ef4e4..98232416d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul 45d2d2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Uncage the Soul 45d2d2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230305 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03033\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03033\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 45d2d2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.72 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Uncanny Growth 6543e6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Uncanny Growth 6543e6.yaml similarity index 71% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Uncanny Growth 6543e6.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Uncanny Growth 6543e6.yaml index 536a0dc11..ffa9d1ea2 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Uncanny Growth 6543e6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Uncanny Growth 6543e6.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 101 +CardID: 12101 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -20,8 +20,8 @@ CustomDeck: Description: '' DragSelectable: true GMNotes: "{\n \"id\": \"10045\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n - \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight. Science.\",\n \"cycle\": - \"The Feast of Hemlock Vale\"\n}" + \ \"cost\": 1,\n \"traits\": \"Insight. Science.\",\n \"cycle\": \"The Feast of + Hemlock Vale\"\n}" GUID: 6543e6 Grid: true GridProjection: false @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -44.35 - posY: 3.23 - posZ: -110.43 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 82.47 + posY: 3.21 + posZ: 22.83 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Under Surveillance (1) cc8321.yaml b/unpacked/Bag All Player Cards 15bb07/Card Under Surveillance (1) cc8321.yaml index fa0146cfc..c5d778bfe 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Under Surveillance (1) cc8321.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Under Surveillance (1) cc8321.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232105 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07157\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Tactic. Trap.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07157\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Tactic. Trap.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: cc8321 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.14 posY: 3.75 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Underprepared 709a54.yaml b/unpacked/Bag All Player Cards 15bb07/Card Underprepared 709a54.yaml index c42648b3d..9dab1be14 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Underprepared 709a54.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Underprepared 709a54.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379152 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"09128\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Blunder.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09128\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Blunder.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 709a54 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 16.71 posY: 3.37 posZ: 65.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Underworld Market (2) bba889.yaml b/unpacked/Bag All Player Cards 15bb07/Card Underworld Market (2) bba889.yaml index 37b8121db..b97ae9c55 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Underworld Market (2) bba889.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Underworld Market (2) bba889.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379101 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09077\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Connection. Illicit.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09077\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"level\": 2,\n \"traits\": \"Connection. Illicit.\",\n \"permanent\": true,\n + \ \"cycle\": \"The Scarlet Keys\"\n}" GUID: bba889 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 16.67 posY: 3.36 posZ: 65.93 - rotX: 358.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 358 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Underworld Support 8190ac.yaml b/unpacked/Bag All Player Cards 15bb07/Card Underworld Support 8190ac.yaml index 6d95eba70..0fc41e59d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Underworld Support 8190ac.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Underworld Support 8190ac.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379036 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08046\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Favor. Illicit.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08046\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Favor. Illicit.\",\n \"permanent\": true,\n \"cycle\": + \"Edge of the Earth\"\n}" GUID: 8190ac Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.2 posY: 2.16 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients (2) 3a4edd.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients (2) 3a4edd.yaml index 6b555e7e0..7ab3ab618 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients (2) 3a4edd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients (2) 3a4edd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379029 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08039\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 0,\r\n \"level\": 2,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08039\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 0,\n \"level\": 2,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"agilityIcons\": 1,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: 3a4edd Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.27 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients f763e8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients f763e8.yaml index 537cc24f2..37deb3012 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients f763e8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unearth the Ancients f763e8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368410 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04024\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04024\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: f763e8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage (2) 2f2190.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage (2) 2f2190.yaml index 1d5cc2008..da3c3d319 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage (2) 2f2190.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage (2) 2f2190.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550824 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60526\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Innate. Developed.\",\r\n \"wildIcons\": 2,\r\n - \ \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60526\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Developed.\",\n \"wildIcons\": 2,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 2f2190 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.09 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage 853b6c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage 853b6c.yaml index 7b2e87be2..f985cf581 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage 853b6c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage 853b6c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587212 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01593\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01593\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: 853b6c Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 78.81 posY: 3.32 posZ: 7.67 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage acb83a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage acb83a.yaml index 6b73a4e87..98bc3f852 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage acb83a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unexpected Courage acb83a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368508 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01093\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Innate.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01093\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Innate.\",\n \"wildIcons\": 2,\n \"cycle\": \"Core\"\n}" GUID: acb83a Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.17 posY: 3.25 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Universal Solvent 2f1166.yaml b/unpacked/Bag All Player Cards 15bb07/Card Universal Solvent 2f1166.yaml index 9b0829fd2..36483259c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Universal Solvent 2f1166.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Universal Solvent 2f1166.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 233604 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"85029\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Science.\",\r\n \"intellectIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"uses\": [\r\n {\r\n \"count\": 4,\r\n \"type\": - \"Supply\",\r\n \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"85029\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item. Science.\",\n \"intellectIcons\": 1,\n \"wildIcons\": + 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": \"Supply\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Standalone\"\n}" GUID: 2f1166 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 9.0 posY: 3.69 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.ttslua index 6a5d1c257..ebe66cc7b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.ttslua @@ -80,6 +80,11 @@ SHOW_MULTI_RELEASE --@type: number (amount of tokens to release at once) - this entry allows releasing of multiple tokens at once - example usage: "Nephthys" (to release 3 bless tokens at once) +SHOW_MULTI_RETURN --@type: number (amount of tokens to return to pool at once) + - enables an entry in the context menu + - this entry allows returning tokens to the token pool + - example usage: "Nephthys" (to return 3 bless tokens at once) + SHOW_MULTI_SEAL --@type: number (amount of tokens to seal at once) - enables an entry in the context menu - this entry allows sealing of multiple tokens at once @@ -127,7 +132,9 @@ Thus it should be implemented like this: ----------------------------------------------------------]] local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") local tokenArrangerApi = require("accessories/TokenArrangerApi") + local sealedTokens = {} local ID_URL_MAP = {} local tokensInBag = {} @@ -136,7 +143,7 @@ function onSave() return JSON.encode(sealedTokens) end function onLoad(savedData) sealedTokens = JSON.decode(savedData) or {} - ID_URL_MAP = Global.getTable("ID_URL_MAP") + ID_URL_MAP = chaosBagApi.getIdUrlMap() generateContextMenu() self.addTag("CardThatSeals") end @@ -152,6 +159,11 @@ function generateContextMenu() self.addContextMenuItem("Release token(s)", releaseAllTokens) end + -- conditional release option + if SHOW_MULTI_RETURN then + self.addContextMenuItem("Return " .. SHOW_MULTI_RETURN .. " token(s)", returnMultipleTokens) + end + -- main context menu options to seal tokens for _, map in pairs(ID_URL_MAP) do if (VALID_TOKENS[map.name] ~= nil) or (UPDATE_ON_HOVER and tokensInBag[map.name] and not INVALID_TOKENS[map.name]) then @@ -187,7 +199,7 @@ end -- generates a list of chaos tokens that is in the chaos bag function readBag() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() tokensInBag = {} for _, token in ipairs(chaosbag.getObjects()) do @@ -195,6 +207,10 @@ function readBag() end end +function resetSealedTokens() + sealedTokens = {} +end + -- native event from TTS - used to update the context menu for cards like "Unrelenting" function onHover() if UPDATE_ON_HOVER then @@ -206,8 +222,8 @@ end -- seals the named token on this card function sealToken(name, playerColor) - if not Global.call("canTouchChaosTokens") then return end - local chaosbag = Global.call("findChaosBag") + if not chaosBagApi.canTouchChaosTokens() then return end + local chaosbag = chaosBagApi.findChaosBag() for i, obj in ipairs(chaosbag.getObjects()) do if obj.name == name then chaosbag.takeObject({ @@ -232,7 +248,7 @@ end -- release the last sealed token function releaseOneToken(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -255,7 +271,7 @@ end -- releases all sealed tokens function releaseAllTokens(playerColor) - if not Global.call("canTouchChaosTokens") then return end + if not chaosBagApi.canTouchChaosTokens() then return end if #sealedTokens == 0 then printToColor("No sealed token(s) found", playerColor) else @@ -267,36 +283,61 @@ function releaseAllTokens(playerColor) end end +-- returns multiple tokens at once to the token pool +function returnMultipleTokens(playerColor) + if SHOW_MULTI_RETURN <= #sealedTokens then + for i = 1, SHOW_MULTI_RETURN do + returnToken(table.remove(sealedTokens)) + end + printToColor("Returning " .. SHOW_MULTI_RETURN .. " tokens", playerColor) + else + printToColor("Not enough tokens sealed.", playerColor) + end +end + -- returns the token (referenced by GUID) to the chaos bag function putTokenAway(guid) local token = getObjectFromGUID(guid) if not token then return end local name = token.getName() - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() chaosbag.putObject(token) tokenArrangerApi.layout() if name == "Bless" or name == "Curse" then blessCurseManagerApi.releasedToken(name, guid) end end + +-- returns the token to the pool (== removes it) +function returnToken(guid) + local token = getObjectFromGUID(guid) + if not token then return end + + local name = token.getName() + token.destruct() + if name == "Bless" or name == "Curse" then + blessCurseManagerApi.returnedToken(name, guid) + end +end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -317,11 +358,15 @@ end) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -329,33 +374,163 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.yaml index f50a5f066..ab12a04a0 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unrelenting (1) 45386d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 558007 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07196\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07196\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: 45386d Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.68 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unscrupulous Loan (3) 57b95d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unscrupulous Loan (3) 57b95d.yaml index 20cc85a8c..6ae5da554 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unscrupulous Loan (3) 57b95d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unscrupulous Loan (3) 57b95d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378951 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08113\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue|Survivor\",\r\n - \ \"cost\": 0,\r\n \"level\": 3,\r\n \"traits\": \"Pact.\",\r\n \"cycle\": \"Edge - of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08113\",\n \"type\": \"Asset\",\n \"class\": \"Rogue|Survivor\",\n + \ \"cost\": 0,\n \"level\": 3,\n \"traits\": \"Pact.\",\n \"cycle\": \"Edge of + the Earth\"\n}" GUID: 57b95d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.18 posY: 2.86 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unsolved Case 22d886.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unsolved Case 22d886.yaml index 7819f66be..59b515222 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unsolved Case 22d886.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unsolved Case 22d886.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 431656 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05010\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 4,\r\n \"traits\": \"Insight. Mystery.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05010\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 4,\n \"traits\": \"Insight. Mystery.\",\n \"weakness\": true,\n \"cycle\": + \"The Circle Undone\"\n}" GUID: 22d886 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.88 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Bloodthirst) a5be8b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Bloodthirst) a5be8b.yaml index 8a8bc7e5e..54bbe9234 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Bloodthirst) a5be8b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Bloodthirst) a5be8b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 438124 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"52011\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness. Pact.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"hidden\": true,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52011\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness. Pact.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"hidden\": true,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: a5be8b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.16 posY: 4.18 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Cowardice) ea0fa1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Cowardice) ea0fa1.yaml index 68ddd4899..0d5ceca66 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Cowardice) ea0fa1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Cowardice) ea0fa1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 438122 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"52013\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness. Pact.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"hidden\": true,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52013\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness. Pact.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"hidden\": true,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: ea0fa1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.77 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Curiosity) f6aba5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Curiosity) f6aba5.yaml index 538344613..6a219ab97 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Curiosity) f6aba5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Unspeakable Oath (Curiosity) f6aba5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 438123 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"52012\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness. Pact.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"hidden\": true,\r\n \"cycle\": \"Return to the Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"52012\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness. Pact.\",\n \"weakness\": true,\n \"basicWeaknessCount\": + 1,\n \"hidden\": true,\n \"cycle\": \"Return to the Path to Carcosa\"\n}" GUID: f6aba5 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.8 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Until the End of Time 41a9ec.yaml b/unpacked/Bag All Player Cards 15bb07/Card Until the End of Time 41a9ec.yaml index dd1e5e6b3..190d15499 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Until the End of Time 41a9ec.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Until the End of Time 41a9ec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 376600 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04015\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Talent.\",\r\n \"combatIcons\": 1,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04015\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Talent.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 41a9ec Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 4.18 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Untimely Transaction (1) 69289f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Untimely Transaction (1) 69289f.yaml index 4a1f13422..1b529cd92 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Untimely Transaction (1) 69289f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Untimely Transaction (1) 69289f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379041 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08051\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Favor.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08051\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Favor.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 69289f Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.2 posY: 2.18 posZ: -16.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs 07c37d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs 07c37d.yaml index 4c076220b..f9ab69054 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs 07c37d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs 07c37d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271417 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Explorer DragSelectable: true -GMNotes: "{\r\n \"id\": \"04002\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Wayfarer.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"The Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04002\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Wayfarer.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 1,\n \"agilityIcons\": 4,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 07c37d Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.81 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs c91482.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs c91482.yaml index 41aae2e0f..de3a29e73 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs c91482.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ursula Downs c91482.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 260317 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.8 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Valentino Rivas 726d1d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Valentino Rivas 726d1d.yaml index f8d193c55..f7f9f4975 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Valentino Rivas 726d1d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Valentino Rivas 726d1d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 312514 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Took You Long Enough DragSelectable: true -GMNotes: "{\r\n \"id\": \"05261\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Ally. Socialite.\",\r\n \"agilityIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05261\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Ally. Socialite.\",\n \"agilityIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 726d1d Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.0 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vantage Point 2f9ab1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vantage Point 2f9ab1.yaml index 19af414af..7b14a9225 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Vantage Point 2f9ab1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Vantage Point 2f9ab1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368411 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04306\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04306\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 2f9ab1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.09 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vault of Knowledge 2fdcc9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vault of Knowledge 2fdcc9.yaml index 53e616cff..7591122f5 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Vault of Knowledge 2fdcc9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Vault of Knowledge 2fdcc9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538800 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60202\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Talent.\",\r\n \"willpowerIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60202\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 3,\n \"traits\": \"Talent.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 2fdcc9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.0 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Veda Whitsley a0c2da.yaml b/unpacked/Bag All Player Cards 15bb07/Card Veda Whitsley a0c2da.yaml index 8772df651..76c044fec 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Veda Whitsley a0c2da.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Veda Whitsley a0c2da.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 231709 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: Skilled Botanist DragSelectable: true -GMNotes: "{\r\n \"id\": \"53037\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"agilityIcons\": 1,\r\n \"wildIcons\": 2,\r\n \"cycle\": \"Return to the Forgotten - Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"53037\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Ally. Wayfarer.\",\n \"willpowerIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 2,\n \"cycle\": \"Return to the Forgotten Age\"\n}" GUID: a0c2da Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 9.2 posY: 2.94 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vengeful Hound ce3a1a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vengeful Hound ce3a1a.yaml index ee7daa7a6..86161e1da 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Vengeful Hound ce3a1a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Vengeful Hound ce3a1a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 380949 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"98009\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster. Extradimensional. Tindalos.\",\r\n \"weakness\": true,\r\n - \ \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98009\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Extradimensional. Tindalos.\",\n \"weakness\": true,\n + \ \"cycle\": \"Promo\"\n}" GUID: ce3a1a Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.85 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vengeful Shade 73bc8e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vengeful Shade 73bc8e.yaml new file mode 100644 index 000000000..c9081f196 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Vengeful Shade 73bc8e.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 847002 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8470': + BackIsHidden: false + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2149964195986880793/517FBB4FF8F72900B9E123DB865BCAD625F6506C/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"90053\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Geist\",\n \"weakness\": true,\n \"cycle\": \"Laid to + Rest\"\n}" +GUID: 73bc8e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Vengeful Shade +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 78.45 + posY: 3.19 + posZ: 20.55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Venturer 0e2987.yaml b/unpacked/Bag All Player Cards 15bb07/Card Venturer 0e2987.yaml index 45d7c1fac..d7cde982f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Venturer 0e2987.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Venturer 0e2987.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226332 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04018\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"intellectIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Supply\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04018\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Guardian\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Wayfarer.\",\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 3,\n + \ \"type\": \"Supply\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: 0e2987 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.15 posY: 3.83 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Versatile (2) eca1c8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Versatile (2) eca1c8.yaml index 9d2ee2e7b..314aac43d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Versatile (2) eca1c8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Versatile (2) eca1c8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379711 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06167\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"permanent\": true,\r\n \"cycle\": - \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06167\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"level\": 2,\n \"traits\": \"Talent.\",\n \"permanent\": true,\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: eca1c8 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow (2) d2e026.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow (2) d2e026.yaml index 754c15900..d53a27fed 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow (2) d2e026.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow (2) d2e026.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226341 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02299\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Practiced. Expert.\",\r\n \"combatIcons\": 2,\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02299\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 2,\n \"traits\": \"Practiced. Expert.\",\n \"combatIcons\": 2,\n + \ \"cycle\": \"The Dunwich Legacy\"\n}" GUID: d2e026 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.01 posY: 3.76 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow 889121.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow 889121.yaml index bb97cc5de..33f7c727c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow 889121.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Vicious Blow 889121.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226302 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01025\",\r\n \"alternate_ids\": [\r\n \"60119\",\r\n - \ \"01525\"\r\n ],\r\n \"type\": \"Skill\",\r\n \"class\": \"Guardian\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Practiced.\",\r\n \"combatIcons\": 1,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01025\",\n \"alternate_ids\": [\n \"60119\",\n \"01525\"\n + \ ],\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n \"level\": 0,\n \"traits\": + \"Practiced.\",\n \"combatIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: '889121' Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 18.97 posY: 3.38 posZ: -56.94 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee 43ad8a.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee 43ad8a.yaml index 15d7e026e..7408fb7b3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee 43ad8a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee 43ad8a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846101 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 15.3 posY: 2.21 posZ: 54.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee c431f3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee c431f3.yaml index e99308cd2..35ec9fd41 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee c431f3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Vincent Lee c431f3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 843401 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Doctor DragSelectable: true -GMNotes: "{\r\n \"id\": \"09004\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Seeker\",\r\n \"traits\": \"Medic.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 4,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Scarlet - Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09004\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Medic.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 1,\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: c431f3 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 20.94 posY: 2.21 posZ: 51.76 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) 77f7f3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) 77f7f3.yaml deleted file mode 100644 index 5e31d2274..000000000 --- a/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) 77f7f3.yaml +++ /dev/null @@ -1,55 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -CardID: 558207 -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -CustomDeck: - '5582': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/2053112076591019206/E2A281F46FD817435A26C1600F4388A1DC028D5E/ - NumHeight: 4 - NumWidth: 5 - Type: 0 - UniqueBack: false -Description: '' -DragSelectable: true -GMNotes: "{\r\n \"id\": \"60416-t\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" -GUID: 77f7f3 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Card -Nickname: Voice of Ra (Taboo) -SidewaysCard: false -Snap: true -Sticky: true -Tags: -- PlayerCard -Tooltip: true -Transform: - posX: 21.63 - posY: 4.28 - posZ: -62.25 - rotX: 0.0 - rotY: 270.0 - rotZ: 3.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) b06042.yaml b/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) b06042.yaml new file mode 100644 index 000000000..e3b1e8518 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra (Taboo) b06042.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 346 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115061845812962486/A68B8BF7E4862F21369DAC4A37D813EC664EAC34/ + NumHeight: 6 + NumWidth: 10 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"60416-t\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" +GUID: b06042 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Voice of Ra (Taboo) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: -16.59 + posY: 3.45 + posZ: -40.54 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra 0988b2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra 0988b2.yaml index 94000bf67..0226254fb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra 0988b2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Voice of Ra 0988b2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538714 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60416\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60416\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 0988b2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.01 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Voice of the Messenger f93ea8.yaml b/unpacked/Bag All Player Cards 15bb07/Card Voice of the Messenger f93ea8.yaml index b6c845f74..81b696af8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Voice of the Messenger f93ea8.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Voice of the Messenger f93ea8.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 376501 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04016\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse. Pact.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04016\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse. Pact.\",\n \"weakness\": true,\n \"cycle\": \"The Forgotten + Age\"\n}" GUID: f93ea8 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (2) 4d74f6.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (2) 4d74f6.yaml index d9d390ee2..18d62a330 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (2) 4d74f6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (2) 4d74f6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230341 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03270\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 2,\r\n \"traits\": \"Spell. Spirit.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03270\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Spell. Spirit.\",\n \"wildIcons\": + 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 4d74f6 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.02 posY: 4.05 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (5) 7bc995.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (5) 7bc995.yaml index 21ebec76b..512ea5573 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (5) 7bc995.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection (5) 7bc995.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230360 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02307\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 1,\r\n \"level\": 5,\r\n \"traits\": \"Spell. Spirit.\",\r\n \"willpowerIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02307\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 5,\n \"traits\": \"Spell. Spirit.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 7bc995 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection 6656ad.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection 6656ad.yaml index 281bdcd34..e093f5056 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection 6656ad.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ward of Protection 6656ad.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 230308 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01065\",\r\n \"alternate_ids\": [\r\n \"01565\"\r\n - \ ],\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n \"cost\": 1,\r\n - \ \"level\": 0,\r\n \"traits\": \"Spell. Spirit.\",\r\n \"wildIcons\": 1,\r\n - \ \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01065\",\n \"alternate_ids\": [\n \"01565\"\n ],\n \"type\": + \"Event\",\n \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": + \"Spell. Spirit.\",\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 6656ad Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 32.98 posY: 3.33 posZ: -47.41 - rotX: 1.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Ward of Radiance 69116c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Ward of Radiance 69116c.yaml index 39f2bed72..8b4477aef 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Ward of Radiance 69116c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Ward of Radiance 69116c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 583025 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07031\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Insight. Blessed.\",\r\n \"willpowerIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07031\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Insight. Blessed.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 69116c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.09 posY: 3.69 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Warning Shot ec38db.yaml b/unpacked/Bag All Player Cards 15bb07/Card Warning Shot ec38db.yaml index c912c57d1..070d733c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Warning Shot ec38db.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Warning Shot ec38db.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 292814 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05229\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Trick.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05229\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Tactic. Trick.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: ec38db Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.0 posY: 3.87 posZ: -16.7 - rotX: 1.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Watch this! c40cb4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Watch this! c40cb4.yaml index bb46aca8f..04a4add87 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Watch this! c40cb4.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Watch this! c40cb4.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 261700 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03233\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 0,\r\n \"traits\": \"Gambit.\",\r\n \"willpowerIcons\": 1,\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03233\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 0,\n \"traits\": \"Gambit.\",\n \"willpowerIcons\": 1,\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: c40cb4 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 5.44 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Watcher from Another Dimension 6945f7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Watcher from Another Dimension 6945f7.yaml index eedc33ea4..e09029253 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Watcher from Another Dimension 6945f7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Watcher from Another Dimension 6945f7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 581311 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06017\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster. Extradimensional.\",\r\n \"weakness\": true,\r\n \"hidden\": - true,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06017\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Extradimensional.\",\n \"weakness\": true,\n \"hidden\": + true,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 6945f7 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.65 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Waveworn Idol 591284.yaml b/unpacked/Bag All Player Cards 15bb07/Card Waveworn Idol 591284.yaml index 93d09b957..05c450f31 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Waveworn Idol 591284.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Waveworn Idol 591284.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 451112 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07179\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Relic.\",\r\n \"intellectIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07179\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"traits\": \"Item. Relic.\",\n \"intellectIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: '591284' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.82 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Waylay da207b.yaml b/unpacked/Bag All Player Cards 15bb07/Card Waylay da207b.yaml index ff6c68d79..f408e618d 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Waylay da207b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Waylay da207b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368818 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"03237\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"agilityIcons\": - 2,\r\n \"cycle\": \"The Path to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03237\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Tactic.\",\n \"agilityIcons\": + 2,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: da207b Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.17 posY: 3.03 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Well Connected (3) 170127.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Well Connected (3) 170127.ttslua new file mode 100644 index 000000000..d932e8482 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Well Connected (3) 170127.ttslua @@ -0,0 +1,489 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/cards/WellConnected") +end) +__bundle_register("playercards/cards/WellConnected", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between both the level 0 and the upgraded level 3 version of the card +local playmatApi = require("playermat/PlaymatApi") + +local modValue, loopId +local buttonParameters = { + click_function = "toggleCounter", + tooltip = "disable counter", + function_owner = self, + position = { 0.88, 0.5, -1.33 }, + font_size = 150, + width = 175, + height = 175 +} + +function onSave() return JSON.encode({ loopId = loopId }) end + +function onLoad(savedData) + -- use metadata to detect level and adjust modValue accordingly + if JSON.decode(self.getGMNotes()).level == 0 then + modValue = 5 + else + modValue = 4 + end + + if savedData ~= "" then + local loadedData = JSON.decode(savedData) + if loadedData.loopId then + self.createButton(buttonParameters) + loopId = Wait.time(updateDisplay, 2, -1) + end + end + + self.addContextMenuItem("Toggle Counter", toggleCounter) +end + +function toggleCounter() + if loopId ~= nil then + Wait.stop(loopId) + loopId = nil + self.clearButtons() + else + self.createButton(buttonParameters) + updateDisplay() + loopId = Wait.time(updateDisplay, 2, -1) + end +end + +function updateDisplay() + local matColor = playmatApi.getMatColorByPosition(self.getPosition()) + local resources = playmatApi.getCounterValue(matColor, "ResourceCounter") + local count = tostring(math.floor(resources / modValue)) + self.editButton({ index = 0, label = count }) +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Well Connected (3) 170127.yaml b/unpacked/Bag All Player Cards 15bb07/Card Well Connected (3) 170127.yaml index aa9f06750..1d7c3b546 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Well Connected (3) 170127.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Well Connected (3) 170127.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449526 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"54006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 3,\r\n \"traits\": \"Condition.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Return to the Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"54006\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Condition.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Return to the Circle Undone\"\n}" GUID: '170127' Grid: true GridProjection: false @@ -30,7 +30,7 @@ HideWhenFaceDown: true IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Card Well Connected (3) 170127.ttslua' LuaScriptState: '' MeasureMovement: false Name: Card @@ -46,11 +46,11 @@ Transform: posX: 9.12 posY: 3.88 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Well Connected 66b7d5.ttslua b/unpacked/Bag All Player Cards 15bb07/Card Well Connected 66b7d5.ttslua new file mode 100644 index 000000000..fc1ce0c5a --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Well Connected 66b7d5.ttslua @@ -0,0 +1,489 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("playercards/cards/WellConnected", function(require, _LOADED, __bundle_register, __bundle_modules) +-- this script is shared between both the level 0 and the upgraded level 3 version of the card +local playmatApi = require("playermat/PlaymatApi") + +local modValue, loopId +local buttonParameters = { + click_function = "toggleCounter", + tooltip = "disable counter", + function_owner = self, + position = { 0.88, 0.5, -1.33 }, + font_size = 150, + width = 175, + height = 175 +} + +function onSave() return JSON.encode({ loopId = loopId }) end + +function onLoad(savedData) + -- use metadata to detect level and adjust modValue accordingly + if JSON.decode(self.getGMNotes()).level == 0 then + modValue = 5 + else + modValue = 4 + end + + if savedData ~= "" then + local loadedData = JSON.decode(savedData) + if loadedData.loopId then + self.createButton(buttonParameters) + loopId = Wait.time(updateDisplay, 2, -1) + end + end + + self.addContextMenuItem("Toggle Counter", toggleCounter) +end + +function toggleCounter() + if loopId ~= nil then + Wait.stop(loopId) + loopId = nil + self.clearButtons() + else + self.createButton(buttonParameters) + updateDisplay() + loopId = Wait.time(updateDisplay, 2, -1) + end +end + +function updateDisplay() + local matColor = playmatApi.getMatColorByPosition(self.getPosition()) + local resources = playmatApi.getCounterValue(matColor, "ResourceCounter") + local count = tostring(math.floor(resources / modValue)) + self.editButton({ index = 0, label = count }) +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/WellConnected") +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/Card Well Connected 66b7d5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Well Connected 66b7d5.yaml index 87c72e3a3..444b07ece 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Well Connected 66b7d5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Well Connected 66b7d5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 527608 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05028\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Condition.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05028\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Condition.\",\n \"intellectIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: 66b7d5 Grid: true GridProjection: false @@ -30,7 +30,7 @@ HideWhenFaceDown: true IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Card Well Connected 66b7d5.ttslua' LuaScriptState: '' MeasureMovement: false Name: Card @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.2 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Well Prepared (2) eea4ef.yaml b/unpacked/Bag All Player Cards 15bb07/Card Well Prepared (2) eea4ef.yaml index 82633130c..6dce1e9ed 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Well Prepared (2) eea4ef.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Well Prepared (2) eea4ef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 226345 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04151\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Talent.\",\r\n \"cycle\": - \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04151\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Talent.\",\n \"cycle\": \"The + Forgotten Age\"\n}" GUID: eea4ef Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.17 posY: 3.03 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Well-Funded 96fbfa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Well-Funded 96fbfa.yaml similarity index 82% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Well-Funded 96fbfa.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Well-Funded 96fbfa.yaml index 3892af7d7..60c64897a 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Well-Funded 96fbfa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Well-Funded 96fbfa.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 100 +CardID: 12100 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -42,14 +42,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -44.35 - posY: 3.23 - posZ: -112.68 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 79.31 + posY: 3.21 + posZ: 16.07 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Well-Maintained (1) e454c3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Well-Maintained (1) e454c3.yaml index 3f8b73dc5..ee2e3378b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Well-Maintained (1) e454c3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Well-Maintained (1) e454c3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 278012 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05152\",\r\n \"type\": \"Event\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 0,\r\n \"level\": 1,\r\n \"traits\": \"Upgrade.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05152\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 0,\n \"level\": 1,\n \"traits\": \"Upgrade.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: e454c3 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 4.06 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Back) 4232d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Back) 4232d9.yaml index 04f791c06..32db022e9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Back) 4232d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Back) 4232d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535802 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Urchin DragSelectable: true -GMNotes: "{\r\n \"id\": \"01005-pb\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01005-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Survivor\",\n \"traits\": \"Drifter.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 1,\n \"agilityIcons\": 4,\n \"cycle\": \"Core\"\n}" GUID: 4232d9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.8 posY: 3.3 posZ: 7.3 - rotX: 2.0 - rotY: 180.0 - rotZ: 1.0 + rotX: 2 + rotY: 180 + rotZ: 1 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Front) 61503e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Front) 61503e.yaml index 8a73720f8..5528dfce9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Front) 61503e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel Front) 61503e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535801 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: true Description: The Urchin DragSelectable: true -GMNotes: "{\r\n \"id\": \"01005-pf\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01005-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Survivor\",\n \"traits\": \"Drifter. Blessed. Cursed.\",\n \"willpowerIcons\": + 4,\n \"intellectIcons\": 3,\n \"combatIcons\": 1,\n \"agilityIcons\": 4,\n \"cycle\": + \"Core\"\n}" GUID: 61503e Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 78.22 posY: 3.32 posZ: 8.84 - rotX: 359.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 359 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel) fd91ea.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel) fd91ea.yaml index fee84ffa8..630f0c0e2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel) fd91ea.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams (Parallel) fd91ea.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535800 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: true Description: The Urchin DragSelectable: true -GMNotes: "{\r\n \"id\": \"01005-p\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01005-p\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Drifter. Blessed. Cursed.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 3,\n \"combatIcons\": 1,\n \"agilityIcons\": 4,\n \"cycle\": \"Core\"\n}" GUID: fd91ea Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 78.67 posY: 3.33 posZ: 7.63 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams 15e40d.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams 15e40d.yaml index 1577a1f81..871b6132f 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams 15e40d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams 15e40d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 258404 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: true Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01005-m\",\r\n \"alternate_ids\": [\r\n \"01505-m\"\r\n - \ ],\r\n \"type\": \"Minicard\"\r\n}\r" +GMNotes: "{\n \"id\": \"01005-m\",\n \"alternate_ids\": [\n \"01505-m\"\n ],\n + \ \"type\": \"Minicard\"\n}" GUID: 15e40d Grid: true GridProjection: false @@ -39,9 +39,9 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587104 ColorDiffuse: @@ -88,7 +88,7 @@ States: rotY: 269.999939 rotZ: -1.09467493e-07 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' @@ -100,11 +100,11 @@ Transform: posX: 26.57 posY: 3.69 posZ: -4.42 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams fc1d17.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams fc1d17.yaml index 13493bd8c..82dffce07 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams fc1d17.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy Adams fc1d17.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 535704 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: true Description: The Urchin DragSelectable: true -GMNotes: "{\r\n \"id\": \"01005\",\r\n \"alternate_ids\": [\r\n \"01505\"\r\n - \ ],\r\n \"type\": \"Investigator\",\r\n \"class\": \"Survivor\",\r\n \"traits\": - \"Drifter.\",\r\n \"willpowerIcons\": 4,\r\n \"intellectIcons\": 3,\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 4,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01005\",\n \"alternate_ids\": [\n \"01505\"\n ],\n \"type\": + \"Investigator\",\n \"class\": \"Survivor\",\n \"traits\": \"Drifter.\",\n \"willpowerIcons\": + 4,\n \"intellectIcons\": 3,\n \"combatIcons\": 1,\n \"agilityIcons\": 4,\n \"cycle\": + \"Core\"\n}" GUID: fc1d17 Grid: true GridProjection: false @@ -41,9 +41,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587404 ColorDiffuse: @@ -90,10 +90,10 @@ States: posY: 1.29860592 posZ: 57.92725 rotX: -1.57520219e-08 - rotY: 180.0 + rotY: 180 rotZ: 1.500979e-08 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' @@ -106,11 +106,11 @@ Transform: posX: 26.93 posY: 3.69 posZ: -0.16 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 05d7d5.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 05d7d5.yaml index 9da322cfe..d74c5888a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 05d7d5.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 05d7d5.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587213 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01514\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01514\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": + 2,\n \"cycle\": \"Core\"\n}" GUID: 05d7d5 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 48.56 posY: 1.99 posZ: -126.16 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 27b4ea.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 27b4ea.yaml index 41546e081..785d114d4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 27b4ea.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 27b4ea.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590608 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01014\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"wildIcons\": 2,\r\n \"cycle\": - \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01014\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Relic.\",\n \"wildIcons\": + 2,\n \"cycle\": \"Core\"\n}" GUID: 27b4ea Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 664b70.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 664b70.yaml index 593125a8e..2967ead48 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 664b70.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wendy's Amulet 664b70.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 536001 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90039\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item. Relic.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 2,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90039\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Relic.\",\n \"willpowerIcons\": + 1,\n \"wildIcons\": 2,\n \"cycle\": \"Standalone\"\n}" GUID: 664b70 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 79.37 posY: 3.3 posZ: 6.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card What Have You Done 2c76d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card What Have You Done 2c76d9.yaml index 0bc9c2d00..4a89d8464 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card What Have You Done 2c76d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card What Have You Done 2c76d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 534901 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Madness. DragSelectable: true -GMNotes: "{\r\n \"id\": \"84007\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"84007\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"Standalone\"\n}" GUID: 2c76d9 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 101.21 posY: 1.99 posZ: -15.65 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Where's Pa 9aba43.yaml b/unpacked/Bag All Player Cards 15bb07/Card Where's Pa 9aba43.yaml new file mode 100644 index 000000000..c702e4e7f --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Where's Pa 9aba43.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 910400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '9104': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255558543/20409C8476361342F4067117A61ABFC07326F948/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10018\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Flaw.\",\n \"weakness\": true,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 9aba43 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: '"Where''s Pa?"' +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 10.69 + posY: 2.44 + posZ: 43.88 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Whispers from the Deep dd4a25.yaml b/unpacked/Bag All Player Cards 15bb07/Card Whispers from the Deep dd4a25.yaml index d885cad0d..2174ccf61 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Whispers from the Deep dd4a25.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Whispers from the Deep dd4a25.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 585903 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"07009\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Curse.\",\r\n \"weakness\": true,\r\n \"wildIcons\": 1,\r\n \"negativeIcons\": - true,\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07009\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse.\",\n \"weakness\": true,\n \"wildIcons\": 1,\n \"negativeIcons\": + true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: dd4a25 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.8 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene (2) 854c79.yaml b/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene (2) 854c79.yaml index 42dd098cb..b3a5408a3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene (2) 854c79.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene (2) 854c79.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538821 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Hunter of Rare Books DragSelectable: true -GMNotes: "{\r\n \"id\": \"60223\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 2,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"willpowerIcons\": - 1,\r\n \"intellectIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60223\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 2,\n \"traits\": \"Ally. + Miskatonic.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": + \"Investigator Packs\"\n}" GUID: 854c79 Grid: true GridProjection: false @@ -46,11 +47,11 @@ Transform: posX: 9.0 posY: 3.78 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene 3c5099.yaml b/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene 3c5099.yaml index 787f0da5f..7dacbb7be 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene 3c5099.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Whitton Greene 3c5099.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 538811 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Hunter of Rare Books DragSelectable: true -GMNotes: "{\r\n \"id\": \"60213\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic.\",\r\n \"intellectIcons\": - 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60213\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Miskatonic.\",\n \"intellectIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: 3c5099 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.79 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 0027f2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 0027f2.yaml index a08e4eb95..c4e0f9f9b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 0027f2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 0027f2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368860 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01085\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01085\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"combatIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 0027f2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.72 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 3959fa.yaml b/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 3959fa.yaml index 4f7e9e95b..f095e4704 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 3959fa.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Will to Survive (3) 3959fa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587216 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01585\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 4,\r\n \"level\": 3,\r\n \"traits\": \"Spirit.\",\r\n \"combatIcons\": - 1,\r\n \"wildIcons\": 1,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01585\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 4,\n \"level\": 3,\n \"traits\": \"Spirit.\",\n \"combatIcons\": + 1,\n \"wildIcons\": 1,\n \"cycle\": \"Core\"\n}" GUID: 3959fa Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.76 posY: 3.32 posZ: 7.67 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Will to Survive dc4a2c.yaml b/unpacked/Bag All Player Cards 15bb07/Card Will to Survive dc4a2c.yaml index 29219c104..fe3050aa6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Will to Survive dc4a2c.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Will to Survive dc4a2c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550810 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"60512\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Spirit.\",\r\n \"combatIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"Investigator Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60512\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Spirit.\",\n \"combatIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"Investigator Packs\"\n}" GUID: dc4a2c Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.06 posY: 3.87 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card William Yorick 7e4c56.yaml b/unpacked/Bag All Player Cards 15bb07/Card William Yorick 7e4c56.yaml index 4f1bd8d08..fcad28a79 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card William Yorick 7e4c56.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card William Yorick 7e4c56.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 271114 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Gravedigger DragSelectable: true -GMNotes: "{\r\n \"id\": \"03005\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Survivor\",\r\n \"traits\": \"Warden.\",\r\n \"willpowerIcons\": 3,\r\n \"intellectIcons\": - 2,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 3,\r\n \"cycle\": \"The Path - to Carcosa\"\r\n}\r" +GMNotes: "{\n \"id\": \"03005\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Warden.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 2,\n + \ \"combatIcons\": 4,\n \"agilityIcons\": 3,\n \"cycle\": \"The Path to Carcosa\"\n}" GUID: 7e4c56 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.94 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card William Yorick 98d974.yaml b/unpacked/Bag All Player Cards 15bb07/Card William Yorick 98d974.yaml index 8bcf0e73d..1e7e4ad65 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card William Yorick 98d974.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card William Yorick 98d974.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259414 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 2.13 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Winds of Power (1) bcdfde.yaml b/unpacked/Bag All Player Cards 15bb07/Card Winds of Power (1) bcdfde.yaml index e8d81ae28..b2ac773aa 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Winds of Power (1) bcdfde.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Winds of Power (1) bcdfde.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379053 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08063\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 1,\r\n \"traits\": \"Spirit.\",\r\n \"willpowerIcons\": - 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08063\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Spirit.\",\n \"willpowerIcons\": + 2,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": \"Charge\",\n \"token\": + \"resource\"\n }\n ],\n \"cycle\": \"Edge of the Earth\"\n}" GUID: bcdfde Grid: true GridProjection: false @@ -45,11 +46,11 @@ Transform: posX: 9.19 posY: 2.21 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Winging It aa3984.yaml b/unpacked/Bag All Player Cards 15bb07/Card Winging It aa3984.yaml index 19612d4e9..bddac6db9 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Winging It aa3984.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Winging It aa3984.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 430501 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04272\",\r\n \"type\": \"Event\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Tactic. Improvised.\",\r\n - \ \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04272\",\n \"type\": \"Event\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic. Improvised.\",\n \"cycle\": + \"The Forgotten Age\"\n}" GUID: aa3984 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 5.41 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock 038599.yaml b/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock 038599.yaml index 38771d54b..d0e7a2dba 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock 038599.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock 038599.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 274218 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.99 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock cd4028.yaml b/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock cd4028.yaml index d90926abc..1ed1b00a1 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock cd4028.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Winifred Habbamock cd4028.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 234902 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Aviatrix DragSelectable: true -GMNotes: "{\r\n \"id\": \"60301\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Rogue\",\r\n \"traits\": \"Criminal.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 3,\r\n \"combatIcons\": 3,\r\n \"agilityIcons\": 5,\r\n \"cycle\": \"Investigator - Packs\"\r\n}\r" +GMNotes: "{\n \"id\": \"60301\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Criminal.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 3,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 5,\n \"cycle\": \"Investigator Packs\"\n}" GUID: cd4028 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.64 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wish Eater 464ca1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wish Eater 464ca1.yaml index 511ca974a..bc3a59904 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wish Eater 464ca1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wish Eater 464ca1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448937 ColorDiffuse: @@ -19,8 +19,9 @@ CustomDeck: UniqueBack: false Description: Jewel of the Gods DragSelectable: true -GMNotes: "{\r\n \"id\": \"06277\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"traits\": \"Item. Relic. Blessed.\",\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06277\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"traits\": \"Item. Relic. Blessed.\",\n \"cycle\": + \"The Dream-Eaters\"\n}" GUID: 464ca1 Grid: true GridProjection: false @@ -45,11 +46,11 @@ Transform: posX: 8.97 posY: 4.18 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wither (4) f57a6f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wither (4) f57a6f.yaml index ddb2982ac..9399b71e6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wither (4) f57a6f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wither (4) f57a6f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379619 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05321\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 4,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 2,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05321\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Spell.\",\n + \ \"combatIcons\": 2,\n \"cycle\": \"The Circle Undone\"\n}" GUID: f57a6f Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.77 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wither d946d9.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wither d946d9.yaml index 14041d0bd..583998cdb 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wither d946d9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wither d946d9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 277511 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05157\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Spell.\",\r\n \"combatIcons\": - 1,\r\n \"cycle\": \"The Circle Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05157\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n + \ \"combatIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: d946d9 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.1 posY: 3.68 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wooden Sledge 991640.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wooden Sledge 991640.yaml index 823c66ebd..a7fef4993 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wooden Sledge 991640.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wooden Sledge 991640.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 450307 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08615\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Item. Expedition.\",\r\n \"agilityIcons\": 1,\r\n - \ \"wildIcons\": 2,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08615\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Item. Expedition.\",\n \"agilityIcons\": 1,\n \"wildIcons\": + 2,\n \"cycle\": \"Edge of the Earth\"\n}" GUID: '991640' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 79.36 posY: 3.32 posZ: 8.08 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Word of Command (2) 26853e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Word of Command (2) 26853e.yaml index e7e153be9..2d11ed8e8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Word of Command (2) 26853e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Word of Command (2) 26853e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 448030 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06202\",\r\n \"type\": \"Event\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Spell.\",\r\n \"cycle\": \"The - Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06202\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Spell.\",\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 26853e Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.13 posY: 5.54 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Word of Weal 5edfc2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Word of Weal 5edfc2.yaml index 8a3d76688..aa38dc5d2 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Word of Weal 5edfc2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Word of Weal 5edfc2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379008 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09013\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Pact.\",\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09013\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Pact.\",\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: 5edfc2 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 15.34 posY: 2.21 posZ: 59.44 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Word of Woe bb7174.yaml b/unpacked/Bag All Player Cards 15bb07/Card Word of Woe bb7174.yaml index d9aa4e60b..82d6a3ed4 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Word of Woe bb7174.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Word of Woe bb7174.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379007 ColorDiffuse: @@ -19,8 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"09012\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Pact.\",\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09012\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Pact.\",\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: bb7174 Grid: true GridProjection: false @@ -44,11 +44,11 @@ Transform: posX: 15.06 posY: 2.21 posZ: 59.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch 07b7a1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch 07b7a1.yaml index f662328ca..26777ba50 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch 07b7a1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch 07b7a1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 587203 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01537\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01537\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Core\"\n}" GUID: 07b7a1 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 78.81 posY: 3.33 posZ: 7.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch eb6165.yaml b/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch eb6165.yaml index 8aac349e2..f95d8c2ae 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch eb6165.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Working a Hunch eb6165.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368413 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"01037\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 2,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"intellectIcons\": - 2,\r\n \"cycle\": \"Core\"\r\n}\r" +GMNotes: "{\n \"id\": \"01037\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"intellectIcons\": + 2,\n \"cycle\": \"Core\"\n}" GUID: eb6165 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.97 posY: 4.06 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wounded Bystander fb54d3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wounded Bystander fb54d3.yaml index eee6b951c..fe6a36dc8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wounded Bystander fb54d3.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wounded Bystander fb54d3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379004 ColorDiffuse: @@ -19,10 +19,10 @@ CustomDeck: UniqueBack: false Description: On Death's Doorstep DragSelectable: true -GMNotes: "{\r\n \"id\": \"09007\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Ally. Bystander.\",\r\n \"weakness\": true,\r\n \"uses\": [\r\n - \ {\r\n \"count\": 3,\r\n \"type\": \"Damage\",\r\n \"token\": - \"damage\"\r\n }\r\n ],\r\n \"cycle\": \"The Scarlet Keys\"\r\n}\r" +GMNotes: "{\n \"id\": \"09007\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Ally. Bystander.\",\n \"weakness\": true,\n \"uses\": [\n {\n + \ \"count\": 3,\n \"type\": \"Damage\",\n \"token\": \"damage\"\n + \ }\n ],\n \"cycle\": \"The Scarlet Keys\"\n}" GUID: fb54d3 Grid: true GridProjection: false @@ -47,11 +47,11 @@ Transform: posX: 18.9 posY: 2.21 posZ: 59.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Wracked by Nightmares 97781f.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wracked by Nightmares 97781f.yaml index 95d4a5cef..d473641c3 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Wracked by Nightmares 97781f.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wracked by Nightmares 97781f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371013 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"02015\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Madness.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02015\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Madness.\",\n \"weakness\": true,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 97781f Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.13 posY: 4.18 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Written in the Stars 320bbe.yaml b/unpacked/Bag All Player Cards 15bb07/Card Written in the Stars 320bbe.yaml index 129aa89f6..c2d6e1376 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Written in the Stars 320bbe.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Written in the Stars 320bbe.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 379024 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"08034\",\r\n \"type\": \"Event\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 1,\r\n \"level\": 0,\r\n \"traits\": \"Insight.\",\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"Edge of the Earth\"\r\n}\r" +GMNotes: "{\n \"id\": \"08034\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"Edge of the Earth\"\n}" GUID: 320bbe Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.82 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Wrong Place, Right Time d5944e.yaml b/unpacked/Bag All Player Cards 15bb07/Card Wrong Place, Right Time d5944e.yaml similarity index 83% rename from unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Wrong Place, Right Time d5944e.yaml rename to unpacked/Bag All Player Cards 15bb07/Card Wrong Place, Right Time d5944e.yaml index 67c73ff57..59a42a8cf 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/Card Wrong Place, Right Time d5944e.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Wrong Place, Right Time d5944e.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true -CardID: 107 +CardID: 12107 ColorDiffuse: b: 0.71324 g: 0.71324 r: 0.71324 CustomDeck: - '1': - BackIsHidden: false + '121': + BackIsHidden: true BackURL: https://i.imgur.com/EcbhVuh.jpg/ FaceURL: http://cloud-3.steamusercontent.com/ugc/2021607169641060708/B263E98D28E301D8EF45EB001FEBCE98DA25354B/ NumHeight: 2 @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: -41.18 - posY: 3.23 - posZ: -103.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 82.47 + posY: 3.21 + posZ: 16.07 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Yaotl (1) 284bbe.yaml b/unpacked/Bag All Player Cards 15bb07/Card Yaotl (1) 284bbe.yaml index 5556dc451..ff7201552 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Yaotl (1) 284bbe.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Yaotl (1) 284bbe.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 584811 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Lost Son of Eztli DragSelectable: true -GMNotes: "{\r\n \"id\": \"04035\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 3,\r\n \"level\": 1,\r\n \"traits\": \"Ally. Wayfarer.\",\r\n \"willpowerIcons\": - 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04035\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 3,\n \"level\": 1,\n \"traits\": \"Ally. + Wayfarer.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: 284bbe Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.13 posY: 3.75 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Yaztaroth bd65dc.yaml b/unpacked/Bag All Player Cards 15bb07/Card Yaztaroth bd65dc.yaml index 66296117a..e6d6af32a 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Yaztaroth bd65dc.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Yaztaroth bd65dc.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 590201 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"98018\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Curse. Pact.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98018\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Curse. Pact.\",\n \"weakness\": true,\n \"cycle\": \"Promo\"\n}" GUID: bd65dc Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 9.11 posY: 3.94 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card You handle this one! dcdcea.yaml b/unpacked/Bag All Player Cards 15bb07/Card You handle this one! dcdcea.yaml index a9fc279d4..2bb12d472 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card You handle this one! dcdcea.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card You handle this one! dcdcea.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 368705 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"04028\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Trick.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Forgotten Age\"\r\n}\r" +GMNotes: "{\n \"id\": \"04028\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Forgotten Age\"\n}" GUID: dcdcea Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.13 posY: 3.68 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card You owe me one! d27d12.yaml b/unpacked/Bag All Player Cards 15bb07/Card You owe me one! d27d12.yaml index bb697aa46..2727fce2b 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card You owe me one! d27d12.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card You owe me one! d27d12.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 378018 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"05319\",\r\n \"type\": \"Event\",\r\n \"class\": \"Rogue\",\r\n - \ \"cost\": 0,\r\n \"level\": 0,\r\n \"traits\": \"Favor. Gambit.\",\r\n \"intellectIcons\": - 1,\r\n \"combatIcons\": 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Circle - Undone\"\r\n}\r" +GMNotes: "{\n \"id\": \"05319\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Favor. Gambit.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Circle Undone\"\n}" GUID: d27d12 Grid: true GridProjection: false @@ -46,11 +45,11 @@ Transform: posX: 9.08 posY: 3.73 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Your Worst Nightmare 406ab2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Your Worst Nightmare 406ab2.yaml index 31a2fd70f..7850faeb6 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Your Worst Nightmare 406ab2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Your Worst Nightmare 406ab2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 438128 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Basic Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"06038\",\r\n \"type\": \"Enemy\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Monster.\",\r\n \"weakness\": true,\r\n \"basicWeaknessCount\": - 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06038\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster.\",\n \"weakness\": true,\n \"basicWeaknessCount\": 1,\n + \ \"cycle\": \"The Dream-Eaters\"\n}" GUID: 406ab2 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 8.99 posY: 3.75 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zeal 695bb7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zeal 695bb7.yaml index 23332fb1a..369aedaf8 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Zeal 695bb7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Zeal 695bb7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 440625 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"06032\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Ally. Creature. Dreamlands.\",\r\n \"intellectIcons\": - 1,\r\n \"agilityIcons\": 1,\r\n \"cycle\": \"The Dream-Eaters\"\r\n}\r" +GMNotes: "{\n \"id\": \"06032\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 1,\n \"traits\": \"Ally. Creature. Dreamlands.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Dream-Eaters\"\n}" GUID: 695bb7 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.17 posY: 3.18 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zebulon Whateley 6714b2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zebulon Whateley 6714b2.yaml index 98d0c1290..466beba65 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Zebulon Whateley 6714b2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Zebulon Whateley 6714b2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 232949 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Recalling Ancient Things DragSelectable: true -GMNotes: "{\r\n \"id\": \"02217\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Dunwich.\",\r\n \"willpowerIcons\": 1,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02217\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 3,\n \"traits\": \"Ally. Dunwich.\",\n \"willpowerIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 6714b2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.8 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Back) 98a0e4.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Back) 98a0e4.yaml new file mode 100644 index 000000000..1e5e56491 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Back) 98a0e4.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 773502 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '7735': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2115062479282091065/71F159724883E9587669DB96B16A5E047DA5B6FA/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/1656727981627737050/3CFF9E3825033909543AD1CF843361D9243538EE/ + NumHeight: 2 + NumWidth: 4 + Type: 0 + UniqueBack: true +Description: The Chef +DragSelectable: true +GMNotes: "{\n \"id\": \"02001-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Guardian\",\n \"traits\": \"Believer. Hunter.\",\n \"willpowerIcons\": 4,\n + \ \"intellectIcons\": 2,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": + \"Path of the Righteous\"\n}" +GUID: 98a0e4 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Zoey Samaras (Parallel Back) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 18.45 + posY: 1.59 + posZ: -73.09 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Front) 98a0e3.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Front) 98a0e3.yaml new file mode 100644 index 000000000..55e30d91d --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel Front) 98a0e3.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 773602 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '7736': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/1656727981627737648/F371339538812F68E38AAC0D520C525250DAC5C0/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115062479282091273/DA3424FFAA9F826D8DCD2F3AB75C220309C5101F/ + NumHeight: 2 + NumWidth: 4 + Type: 0 + UniqueBack: true +Description: The Chef +DragSelectable: true +GMNotes: "{\n \"id\": \"02001-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Guardian\",\n \"traits\": \"Believer. Hunter.\",\n \"willpowerIcons\": 4,\n + \ \"intellectIcons\": 2,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": + \"Path of the Righteous\"\n}" +GUID: 98a0e3 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Zoey Samaras (Parallel Front) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 18.45 + posY: 1.59 + posZ: -73.09 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel) 98a0e2.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel) 98a0e2.yaml new file mode 100644 index 000000000..1bf816447 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras (Parallel) 98a0e2.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 773402 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '7734': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2115062479282091065/71F159724883E9587669DB96B16A5E047DA5B6FA/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115062479282091273/DA3424FFAA9F826D8DCD2F3AB75C220309C5101F/ + NumHeight: 2 + NumWidth: 4 + Type: 0 + UniqueBack: true +Description: The Chef +DragSelectable: true +GMNotes: "{\n \"id\": \"02001-p\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Believer. Hunter.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 2,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": \"Path of the Righteous\"\n}" +GUID: 98a0e2 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Zoey Samaras (Parallel) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 18.45 + posY: 1.59 + posZ: -73.09 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras 98a0e1.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras 98a0e1.yaml index 49966a4f3..f119c3812 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras 98a0e1.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras 98a0e1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 449902 ColorDiffuse: @@ -19,10 +19,9 @@ CustomDeck: UniqueBack: true Description: The Chef DragSelectable: true -GMNotes: "{\r\n \"id\": \"02001\",\r\n \"type\": \"Investigator\",\r\n \"class\": - \"Guardian\",\r\n \"traits\": \"Believer. Hunter.\",\r\n \"willpowerIcons\": 4,\r\n - \ \"intellectIcons\": 2,\r\n \"combatIcons\": 4,\r\n \"agilityIcons\": 2,\r\n - \ \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Believer. Hunter.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 2,\n \"combatIcons\": 4,\n \"agilityIcons\": 2,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 98a0e1 Grid: true GridProjection: false @@ -47,11 +46,11 @@ Transform: posX: 18.45 posY: 1.59 posZ: -73.09 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.15 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.15 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras ef75e7.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras ef75e7.yaml index 399438003..bdfa36d00 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras ef75e7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Zoey Samaras ef75e7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 259105 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.85 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zoey's Cross 66d810.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zoey's Cross 66d810.yaml index 6f128008b..cbfaae98c 100644 --- a/unpacked/Bag All Player Cards 15bb07/Card Zoey's Cross 66d810.yaml +++ b/unpacked/Bag All Player Cards 15bb07/Card Zoey's Cross 66d810.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 371704 ColorDiffuse: @@ -17,11 +17,11 @@ CustomDeck: NumWidth: 10 Type: 0 UniqueBack: false -Description: '' +Description: Symbol of Righteousness DragSelectable: true -GMNotes: "{\r\n \"id\": \"02006\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"traits\": \"Item. Charm.\",\r\n \"combatIcons\": 2,\r\n \"wildIcons\": - 1,\r\n \"cycle\": \"The Dunwich Legacy\"\r\n}\r" +GMNotes: "{\n \"id\": \"02006\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 1,\n \"traits\": \"Item. Charm.\",\n \"combatIcons\": + 2,\n \"wildIcons\": 1,\n \"cycle\": \"The Dunwich Legacy\"\n}" GUID: 66d810 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 4.11 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/Card Zoey's Cross 66d811.yaml b/unpacked/Bag All Player Cards 15bb07/Card Zoey's Cross 66d811.yaml new file mode 100644 index 000000000..abd5f67cc --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/Card Zoey's Cross 66d811.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 853100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8531': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2115062479282090841/27F874D8E240CE62A38A47DDFAAF58D3BD4D0C42/ + NumHeight: 2 + NumWidth: 2 + Type: 0 + UniqueBack: false +Description: Symbol of Conviction (Advanced) +DragSelectable: true +GMNotes: "{\n \"id\": \"90060\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Neutral\",\n \"cost\": 1,\n \"traits\": \"Item. Charm.\",\n \"combatIcons\": + 2,\n \"wildIcons\": 1,\n \"cycle\": \"Path of the Righteous\"\n}" +GUID: 66d811 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Card +Nickname: Zoey's Cross +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 8.97 + posY: 4.11 + posZ: -16.69 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Absolution aef183.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Absolution aef183.yaml new file mode 100644 index 000000000..218f63de0 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Absolution aef183.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 125300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1253': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186529136565/AE4B753BBB284EB12A0BDE36CEA3CD763C835AC0/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10024\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Spell. Blessed.\",\n \"willpowerIcons\": 2,\n + \ \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: aef183 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Absolution +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Accursed e91c5e.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Accursed e91c5e.yaml new file mode 100644 index 000000000..e02ae2ad9 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Accursed e91c5e.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 20100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '201': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070977509/27A8CCF2BC48CAD909180D64177E86B8232F66C6/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10095\",\n \"type\": \"Skill\",\n \"class\": \"Mystic\",\n + \ \"level\": 0,\n \"traits\": \"Innate. Cursed.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: e91c5e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Accursed +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Ad Hoc c9fb2f.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Ad Hoc c9fb2f.yaml new file mode 100644 index 000000000..281da8670 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Ad Hoc c9fb2f.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 9100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '91': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2223150865961116295/72473371D0DB68709B4B1B9343A748510A1BB30A/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10002\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Improvised. Upgrade.\",\n \"wildIcons\": 2,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: c9fb2f +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Ad Hoc +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yoth) 84ad64.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yoth) 84ad64.yaml new file mode 100644 index 000000000..2c05a388b --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yoth) 84ad64.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 1700 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '17': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875866961/175F57B97C6DEC14F1F6E6420A318A76D38FFE8A/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10007\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Science.\",\n \"agilityIcons\": 1,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: 84ad64 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Aetheric Current (Yoth) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yuggoth) 84ad65.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yuggoth) 84ad65.yaml new file mode 100644 index 000000000..0b4d6f6b1 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Aetheric Current (Yuggoth) 84ad65.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 12700 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '127': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867121/DD34A54C059F9DE340A3C54406A276D202D1C329/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10006\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Science.\",\n \"combatIcons\": 1,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: 84ad65 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Aetheric Current (Yuggoth) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.ttslua index 41304adc0..3f2f98c9e 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.ttslua @@ -41,6 +41,77 @@ 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/AlchemicalDistillationUpgradeSheet") +end) __bundle_register("playercards/customizable/AlchemicalDistillationUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) -- Customizable Cards: Alchemical Distillation @@ -51,21 +122,6 @@ boxSize = 40 xInitial = -0.933 xOffset = 0.075 --- z-values (lines on the sheet) -posZ = { - -0.892, - -0.665, - -0.430, - -0.092, - 0.142, - 0.376, - 0.815 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 1, 1, 2, 4, 5 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -563,222 +619,321 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/customizable/AlchemicalDistillationUpgradeSheet") +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.yaml index 27edb0ff2..ff7113b56 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Alchemical Distillation Upgrade Sheet 156166.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846700 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 76.13 posY: 9.19 posZ: 19.27 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi 54eaa5.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi 54eaa5.yaml new file mode 100644 index 000000000..714537ff8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi 54eaa5.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 1100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '11': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2172484009071330094/3AEFB558D789BC525F50DCC0217FA17627EB91BF/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009071330266/6DD06B74E6DD4F473AB47C39DD17DF9FAD8B1455/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Countess +DragSelectable: true +GMNotes: "{\n \"id\": \"10009\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Drifter. Socialite.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": + 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 4,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 54eaa5 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Alessandra Zorzi +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 9.23 + posY: 3.55 + posZ: 2.42 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi cea425.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi cea425.yaml new file mode 100644 index 000000000..ede5698a5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Alessandra Zorzi cea425.yaml @@ -0,0 +1,53 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 847400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8474': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2172484009071330401/BD2BC1B3E8367C3EFE3AEB90170E46F1C617BBFC/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009071330650/87864D232E414AF361F6559398AE0C3F40E02760/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10009-m\",\n \"type\": \"Minicard\"\n}" +GUID: cea425 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Alessandra Zorzi +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Minicard +Tooltip: true +Transform: + posX: 5.76 + posY: 3.65 + posZ: 15.39 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.6 + scaleY: 1 + scaleZ: 0.6 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Ancestral Token c1fb1f.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Ancestral Token c1fb1f.yaml new file mode 100644 index 000000000..b5ad0c713 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Ancestral Token c1fb1f.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 4900 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '49': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447674651244606/B2275AD213AF8DD0B65170BD4E5E5E98E233A6C7/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10019\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Guardian\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Charm. Blessed.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: c1fb1f +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Ancestral Token +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Ancient Covenant (2) 436401.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Ancient Covenant (2) 436401.yaml index fda568067..62ead6817 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Ancient Covenant (2) 436401.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Ancient Covenant (2) 436401.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 546400 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07122\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Survivor\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Covenant. Blessed.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07122\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"startsInPlay\": true,\n \"level\": 2,\n \"traits\": \"Covenant. Blessed.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: '436401' Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.16 posY: 4.18 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Beguile 019526.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Beguile 019526.yaml new file mode 100644 index 000000000..7d8b79289 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Beguile 019526.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '2': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009071331078/3553DC91D67F802BAFFE9F674DBE991C2D439867/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10010\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Trick.\",\n \"wildIcons\": 1,\n \"cycle\": \"The + Feast of Hemlock Vale\"\n}" +GUID: 019526 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Beguile +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.32 + posY: 3.55 + posZ: -0.84 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Blackmail File de456d.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Blackmail File de456d.yaml new file mode 100644 index 000000000..7de6b8b3d --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Blackmail File de456d.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 9400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '94': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2195002645128569861/7143A7BF20E37A069E170A21D77C16C91D81374D/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10064\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. Tome. Illicit.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: de456d +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Blackmail File +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Blasphemous Covenant (2) 10b087.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Blasphemous Covenant (2) 10b087.yaml index d335fd258..f4f2c1fc3 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Blasphemous Covenant (2) 10b087.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Blasphemous Covenant (2) 10b087.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 546500 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07113\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"level\": 2,\r\n \"traits\": \"Covenant. Cursed.\",\r\n \"permanent\": true,\r\n - \ \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07113\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"startsInPlay\": true,\n \"level\": 2,\n \"traits\": \"Covenant. Cursed.\",\n + \ \"permanent\": true,\n \"cycle\": \"The Innsmouth Conspiracy\"\n}" GUID: 10b087 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.98 posY: 3.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Book of Living Myths c5fb1f.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Book of Living Myths c5fb1f.yaml new file mode 100644 index 000000000..8ce71f8d6 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Book of Living Myths c5fb1f.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 8500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '85': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447041528306779/F60D99AAA35122A9553F0B5FD736DB6FB73BE7EF/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Chronicle of Wonders +DragSelectable: true +GMNotes: "{\n \"id\": \"10013\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"traits\": \"Item. Tome. Blessed. + Cursed.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"wildIcons\": + 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: c5fb1f +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Book of Living Myths +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Buried Secrets 28080e.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Buried Secrets 28080e.yaml new file mode 100644 index 000000000..c585a7574 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Buried Secrets 28080e.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 13300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '133': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186517520416/34030F3F4E7DB48038BAC2BB6010D4781C102301/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Advanced +DragSelectable: true +GMNotes: "{\n \"id\": \"90064\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Mystery.\",\n \"weakness\": true,\n \"cycle\": \"Relics of the + Past\"\n}" +GUID: 28080e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Buried Secrets +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.2 + posY: 2.67 + posZ: -16.73 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Cat Mask 847ed6.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Cat Mask 847ed6.yaml new file mode 100644 index 000000000..7654cf7f5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Cat Mask 847ed6.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 40300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '403': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186559601365/6C247C82793481C97E24F74A26AF905E3B708C50/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Capricious Meddler +DragSelectable: true +GMNotes: "{\n \"id\": \"10084\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Charm. Mask.\",\n \"combatIcons\": + 1,\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Offering\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast + of Hemlock Vale\"\n}" +GUID: 847ed6 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Cat Mask +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Confound (3) 9965de.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Confound (3) 9965de.yaml new file mode 100644 index 000000000..5d09b1e2c --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Confound (3) 9965de.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 124100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1241': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186529136671/AC1530FE71D9E5CF4F816A488E07076AC8064BD8/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10057\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Insight. Trick.\",\n \"intellectIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 9965de +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Confound (3) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Control Variable 133868.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Control Variable 133868.yaml new file mode 100644 index 000000000..5b59466d9 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Control Variable 133868.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070977979/A629DD5733453F892F57514EC5950E087486896F/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10046\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Insight. Science. Cursed.\",\n + \ \"willpowerIcons\": 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of + Hemlock Vale\"\n}" +GUID: '133868' +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Control Variable +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 4.22 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.ttslua index a48fae2fa..8b4e54a4f 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.ttslua @@ -41,221 +41,72 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } - - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" + 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 CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } + -- performs the actual search and returns a filtered list of object references + ---@param pos Table Global position + ---@param rot Table 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) + if filter then filter = 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 + }) - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end - else - if startPos.z > 0 then - return "Green" - else - return "Red" + -- filtering the result + local objList = {} + for _, v in ipairs(searchResult) do + if not filter or filter(v.hit_object) then + table.insert(objList, v.hit_object) end end + return objList end - -- Returns the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") + -- searches the specified area + SearchLib.inArea = function(pos, rot, size, filter) + return returnSearchResult(pos, rot, size, filter) end - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" + -- 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 - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") + -- searches the specified position (a single point) + SearchLib.atPosition = function(pos, filter) + size = { 0.1, 2, 0.1 } + return returnSearchResult(pos, _, size, filter) end - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat - PlaymatApi.isDES = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + -- 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 - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") - end - - -- Returns the position of the discard pile of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") - end - - -- Transforms a local position into a global position - ---@param localPos Table Local position to be transformed - ---@param matColor String Color of the playermat - PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) - end - - -- Returns the rotation of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() - end - - -- Triggers the Upkeep for the requested playmat - ---@param matColor String Color of the playermat - ---@param playerColor String Color of the calling player (for messages) - PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", playerColor) - end - - -- Returns the active investigator id - ---@param matColor String Color of the playermat - PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") - end - - -- Sets the requested playermat'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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("setLimitSnapsByType", matchCardTypes) - end - end - - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("showDrawButton", isDrawButtonVisible) - end - end - - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.clickableClues = function(showCounter, matColor) - for _, mat in ipairs(internal.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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.removeClues = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("removeClues") - end - end - - -- Reports the clue count for the requested playermat - ---@param useClickableCounters Boolean Controls which type of counter is getting checked - PlaymatApi.getClueCount = function(useClickableCounters, matColor) - local count = 0 - for _, mat in ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) - end - return count - end - - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) - end - end - - -- Discard a non-hidden card from the corresponding player's hand - PlaymatApi.doDiscardOne = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("doDiscardOne") - end - end - - PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do - mat.call("syncAllCustomizableCards") - end - end - - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - - return PlaymatApi + return SearchLib end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) @@ -271,20 +122,6 @@ boxSize = 38 xInitial = -0.935 xOffset = 0.0735 --- z-values (lines on the sheet) -posZ = { - -0.895, - -0.455, - -0.215, - 0.115, - 0.453, - 0.794 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 2, 2, 3, 3, 4 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -774,4 +611,323 @@ function maybeUpdateServitorSlotDisplay() }) 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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.yaml index 86e16023b..08b6125bd 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Custom Modifications Upgrade Sheet 4104bf.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846600 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 76.66 posY: 9.19 posZ: 17.58 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Daisy's Tote Bag cf41be.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Daisy's Tote Bag cf41be.yaml index 66dd8dd8f..04305969f 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Daisy's Tote Bag cf41be.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Daisy's Tote Bag cf41be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 231600 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90002\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 2,\r\n \"traits\": \"Item.\",\r\n \"willpowerIcons\": 1,\r\n \"intellectIcons\": - 1,\r\n \"wildIcons\": 2,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90002\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Item.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 1,\n \"wildIcons\": 2,\n \"cycle\": \"Standalone\"\n}" GUID: cf41be Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.06 posY: 3.76 posZ: -16.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.ttslua index 177204977..d2b1893be 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.ttslua @@ -41,73 +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("playercards/customizable/DamningTestimonyUpgradeSheet") -end) -__bundle_register("playercards/customizable/DamningTestimonyUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) --- Customizable Cards: Damning Testimony - --- Color information for buttons -boxSize = 40 - --- static values -xInitial = -0.935 -xOffset = 0.075 - --- z-values (lines on the sheet) -posZ = { - -0.925, - -0.475, - -0.25, - -0.01, - 0.428, - 0.772 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 2, 2, 3, 3, 4 } -inputBoxes = {} - -customizations = { - [1] = { - checkboxes = { - posZ = -0.925, - count = 1, - } - }, - [2] = { - checkboxes = { - posZ = -0.475, - count = 2, - } - }, - [3] = { - checkboxes = { - posZ = -0.25, - count = 2, - } - }, - [4] = { - checkboxes = { - posZ = -0.01, - count = 3, - } - }, - [5] = { - checkboxes = { - posZ = 0.428, - count = 3, - }, - }, - [6] = { - checkboxes = { - posZ = 0.772, - count = 4, - } - }, -} -require("playercards/customizable/UpgradeSheetLibrary") -end) __bundle_register("playercards/customizable/UpgradeSheetLibrary", function(require, _LOADED, __bundle_register, __bundle_modules) -- Common code for handling customizable card upgrade sheets -- Define UI elements in the base card file, then include this @@ -558,219 +491,442 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/DamningTestimonyUpgradeSheet") +end) +__bundle_register("playercards/customizable/DamningTestimonyUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Customizable Cards: Damning Testimony + +-- Color information for buttons +boxSize = 40 + +-- static values +xInitial = -0.935 +xOffset = 0.075 + +customizations = { + [1] = { + checkboxes = { + posZ = -0.925, + count = 1, + } + }, + [2] = { + checkboxes = { + posZ = -0.475, + count = 2, + } + }, + [3] = { + checkboxes = { + posZ = -0.25, + count = 2, + } + }, + [4] = { + checkboxes = { + posZ = -0.01, + count = 3, + } + }, + [5] = { + checkboxes = { + posZ = 0.428, + count = 3, + }, + }, + [6] = { + checkboxes = { + posZ = 0.772, + count = 4, + } + }, +} +require("playercards/customizable/UpgradeSheetLibrary") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.yaml index c3a0b271c..5052e0ae5 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Damning Testimony Upgrade Sheet dc4a62.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847000 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 74.2 posY: 2.55 posZ: 15.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Devil (2) 2a0ba5.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Devil (2) 2a0ba5.yaml new file mode 100644 index 000000000..3d2a7fa52 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Devil (2) 2a0ba5.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '4': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070978111/18BFD42CF7BACCF65559E63F576AF35920520FDB/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Friend or Foe? +DragSelectable: true +GMNotes: "{\n \"id\": \"10119\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Survivor\",\n \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Ally. + Creature. Cursed.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 2a0ba5 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: '"Devil" (2)' +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -9.43 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Drain Essence 9965aa.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Drain Essence 9965aa.yaml new file mode 100644 index 000000000..c98261a2d --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Drain Essence 9965aa.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 12100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '121': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008872128231/B3D4EF69ABE3736988B015629C5862F69EB42BDC/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10094\",\n \"type\": \"Event\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spell.\",\n \"intellectIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 9965aa +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Drain Essence +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Eldritch Sophist f6b1b6.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Eldritch Sophist f6b1b6.yaml index bce449c71..0157a8c69 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Eldritch Sophist f6b1b6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Eldritch Sophist f6b1b6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 549300 ColorDiffuse: @@ -19,10 +19,11 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07111\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Seeker\",\r\n - \ \"cost\": 4,\r\n \"level\": 0,\r\n \"traits\": \"Ally. Miskatonic\",\r\n \"willpowerIcons\": - 1,\r\n \"uses\": [\r\n {\r\n \"count\": 3,\r\n \"type\": \"Secret\",\r\n - \ \"token\": \"resource\"\r\n }\r\n ],\r\n \"cycle\": \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07111\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Seeker\",\n \"cost\": 4,\n \"level\": 0,\n \"traits\": \"Ally. + Miskatonic\",\n \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": + 3,\n \"type\": \"Secret\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: f6b1b6 Grid: true GridProjection: false @@ -47,11 +48,11 @@ Transform: posX: 9.13 posY: 4.52 posZ: -16.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Eldritch Tongue e8765a.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Eldritch Tongue e8765a.yaml new file mode 100644 index 000000000..c3e6a54f3 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Eldritch Tongue e8765a.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 33100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '331': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009099794816/E5700422279C3B3100E11698F95F7FF2403C6362/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10128\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Neutral\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Ritual.\",\n + \ \"willpowerIcons\": 1,\n \"uses\": [\n {\n \"count\": 4,\n \"type\": + \"Charge\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast + of Hemlock Vale\"\n}" +GUID: e8765a +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Eldritch Tongue +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13 + posY: 3.5 + posZ: 6 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.ttslua index ef9e90728..89c153ec8 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.ttslua @@ -54,22 +54,6 @@ boxSize = 37 xInitial = -0.935 xOffset = 0.069 --- z-values (lines on the sheet) -posZ = { - -0.905, - -0.7, - -0.505, - -0.3, - -0.09, - 0.3, - 0.592, - 0.888 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 1, 1, 2, 2, 3, 4 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -572,219 +556,389 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.yaml index f48cad5a6..4816c6b5e 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Empirical Hypothesis Upgrade Sheet 0c46a7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846800 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 76.0 posY: 15.19 posZ: 23.87 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Failed Experiment acd281.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Failed Experiment acd281.yaml new file mode 100644 index 000000000..961d43776 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Failed Experiment acd281.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 57200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '572': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867257/845C4AF7C4ECDFA6EB547F4C8CBB4B192EFCF159/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10008\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Blunder.\",\n \"weakness\": true,\n \"cycle\": \"The Feast of + Hemlock Vale\"\n}" +GUID: acd281 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Failed Experiment +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.13 + posY: 5.02 + posZ: -16.72 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Fake Credentials acd38d.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Fake Credentials acd38d.yaml new file mode 100644 index 000000000..cf0e38dad --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Fake Credentials acd38d.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 7400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '74': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008872128378/E8199C752F09FB88E1A7D5F56FBC4B9D772F820D/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10066\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Rogue\",\n \"cost\": 3,\n \"level\": 0,\n \"traits\": \"Item. + Illicit.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: acd38d +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Fake Credentials +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom False Surrender adf28e.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom False Surrender adf28e.yaml new file mode 100644 index 000000000..41f2d32f8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom False Surrender adf28e.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 34100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '341': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009099794971/0D542175146E0E2FBBBDCC8110B32A573FDBB03E/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10070\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic. Trick.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: adf28e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: False Surrender +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Flux Stabilizer 55990a.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Flux Stabilizer 55990a.yaml new file mode 100644 index 000000000..043ce78b2 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Flux Stabilizer 55990a.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 78400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '784': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867375/0BEDB302FC862640FDBAB3CB2C014FE1BBA2B9DD/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867499/17C5348F996E1044F4ABA802807FAB9589E0C154/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: true +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10005\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"startsInPlay\": true,\n \"traits\": \"Item. Tool. Science.\",\n \"bonded\": + [\n {\n \"count\": 1,\n \"id\": \"10006\"\n },\n {\n \"count\": + 1,\n \"id\": \"10007\"\n }\n ],\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 55990a +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Flux Stabilizer +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 98.64 + posY: 1.95 + posZ: 13.55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Fox Mask 4144cd.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Fox Mask 4144cd.yaml new file mode 100644 index 000000000..6b5fe1866 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Fox Mask 4144cd.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 2500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '25': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2316603641240799540/C9D5A77FF0A0ED8DB1BBBBF0B02296B49E0E3CE8/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Wise Trickster +DragSelectable: true +GMNotes: "{\n \"id\": \"10067\",\n \"type\": \"Asset\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Charm. Mask.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Offering\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast + of Hemlock Vale\"\n}" +GUID: 4144cd +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Fox Mask +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.ttslua index 34080b2e5..8fce323df 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.ttslua @@ -41,6 +41,74 @@ 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/FriendsinLowPlacesUpgradeSheet") end) @@ -55,23 +123,6 @@ inputFontsize = 50 xInitial = -0.935 xOffset = 0.0685 --- z-values (lines on the sheet) -posZ = { - -0.725, - -0.44, - -0.05, - 0.25, - 0.545, - 0.75, - 0.95 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 2, 2, 2, 2, 3, 3 } -inputBoxes = { 1, 1 } -inputWidth = { 640, 290 } -inputPos = { { 0.275, 0.25, -0.91 }, { 0.6295, 0.25, -0.44 } } - customizations = { [1] = { textField = { @@ -89,16 +140,16 @@ customizations = { checkboxes = { posZ = -0.44, count = 2, + }, + textField = { + position = { 0.6295, 0.25, -0.44 }, + width = 290 } }, [4] = { checkboxes = { posZ = -0.05, count = 2, - }, - textField = { - position = { 0.6295, 0.25, -0.44 }, - width = 290 } }, [5] = { @@ -578,219 +629,321 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.yaml index 8398bb448..9b6558f90 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Friends in Low Places Upgrade Sheet 9fb3b9.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847100 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 76.25 posY: 15.19 posZ: 23.11 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Gloria Goldberg aa6282.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Gloria Goldberg aa6282.yaml index 39accb557..23512ecc5 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Gloria Goldberg aa6282.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Gloria Goldberg aa6282.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 591500 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 21.23 posY: 1.9 posZ: -18.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Grift df75d7.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Grift df75d7.yaml new file mode 100644 index 000000000..d6921bec2 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Grift df75d7.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '5': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009099857520/D9FD0353EAE4B1CEB3A3F220C26B09543FD71BD3/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10071\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Trick. Illicit.\",\n \"intellectIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: df75d7 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Grift +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -0.33 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.ttslua index f139bb644..a24f42dbf 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.ttslua @@ -55,20 +55,6 @@ inputFontsize = 50 xInitial = -0.933 xOffset = 0.075 --- z-values (lines on the sheet) -posZ = { - -0.71, - -0.458, - -0.205, - 0.362, - 0.82 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 2, 3, 4, 5 } -inputBoxes = { 1, 1, 1 } -inputWidth = { 600, 875, 875 } -inputPos = { { 0.3, 0.25, -0.91 }, { 0.005, 0.25, -0.58 }, { 0.005, 0.25, -0.32 } } customizations = { [1] = { textField = { @@ -567,219 +553,389 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.yaml index 21e17ca2a..60de746c5 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Grizzled Upgrade Sheet ef8f08.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847800 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 75.73 posY: 9.19 posZ: 15.56 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Guided by Faith aef282.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Guided by Faith aef282.yaml new file mode 100644 index 000000000..4f61e6158 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Guided by Faith aef282.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 105100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1051': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255556703/D151EE26C6909481B57B07C1716A8E7BCED4B988/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10025\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Spirit. Blessed.\",\n \"intellectIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: aef282 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Guided by Faith +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson (Assistant) 3764ce.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson (Assistant) 3764ce.yaml new file mode 100644 index 000000000..086c189ee --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson (Assistant) 3764ce.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 115200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1152': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557010/8DF21C152DA7F606A8037D24279E9517F8BB3E85/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255556877/A9A8E5091268C0B6D076058B2FC4B0FDECC62388/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Farmhand +DragSelectable: true +GMNotes: "{\n \"id\": \"10015-b1\",\n \"type\": \"Investigator\",\n \"class\": + \"Survivor\",\n \"traits\": \"Assistant. Resolute.\",\n \"willpowerIcons\": 3,\n + \ \"intellectIcons\": 3,\n \"combatIcons\": 4,\n \"agilityIcons\": 4,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: 3764ce +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Hank Samson (Assistant) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 9.23 + posY: 3.55 + posZ: 2.42 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson (Warden) 3764cf.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson (Warden) 3764cf.yaml new file mode 100644 index 000000000..45c7631fd --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson (Warden) 3764cf.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 115300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1153': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557010/8DF21C152DA7F606A8037D24279E9517F8BB3E85/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557592/1223DD109412F49A37C56EB5164325C52F0F3924/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Farmhand +DragSelectable: true +GMNotes: "{\n \"id\": \"10015-b2\",\n \"type\": \"Investigator\",\n \"class\": + \"Survivor\",\n \"traits\": \"Warden. Resolute\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 1,\n \"combatIcons\": 6,\n \"agilityIcons\": 3,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 3764cf +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Hank Samson (Warden) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 9.23 + posY: 3.55 + posZ: 2.42 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cc.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cc.yaml new file mode 100644 index 000000000..dd8cc01c9 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cc.yaml @@ -0,0 +1,53 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 8474100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '84741': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557283/E14EDC6948598047D0D876439AD44E924073F6BF/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557407/20471F625A68290478EF8A681CBA7CB68E1CD521/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10015-m\",\n \"type\": \"Minicard\"\n}" +GUID: 3764cc +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Hank Samson +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Minicard +Tooltip: true +Transform: + posX: 5.76 + posY: 3.65 + posZ: 15.39 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.6 + scaleY: 1 + scaleZ: 0.6 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cd.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cd.yaml new file mode 100644 index 000000000..1f72f5e9d --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hank Samson 3764cd.yaml @@ -0,0 +1,59 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 11600 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '116': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557010/8DF21C152DA7F606A8037D24279E9517F8BB3E85/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557149/D8D7CA505C221592685FFE01A493875A859DBE3F/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Farmhand +DragSelectable: true +GMNotes: "{\n \"id\": \"10015\",\n \"type\": \"Investigator\",\n \"class\": \"Survivor\",\n + \ \"traits\": \"Assistant. Warden.\",\n \"bonded\": [\n {\n \"count\": + 1,\n \"id\": \"10015-b1\"\n },\n {\n \"count\": 1,\n \"id\": + \"10015-b2\"\n }\n ],\n \"willpowerIcons\": 3,\n \"intellectIcons\": 1,\n + \ \"combatIcons\": 5,\n \"agilityIcons\": 3,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 3764cd +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Hank Samson +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 9.23 + posY: 3.55 + posZ: 2.42 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hatchet (1) 2ea0d3.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hatchet (1) 2ea0d3.yaml new file mode 100644 index 000000000..7409397f4 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hatchet (1) 2ea0d3.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 52200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '522': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2280574378887536210/F43975F08B2C9DE8717AC605520379B3C3F0FE33/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10117\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 1,\n \"traits\": \"Item. + Tool. Weapon. Ranged.\",\n \"agilityIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 2ea0d3 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Hatchet (1) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 9.01 + posY: 3.86 + posZ: -16.7 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hold Up aef182.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hold Up aef182.yaml new file mode 100644 index 000000000..ce18e552e --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hold Up aef182.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 105300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1053': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557726/4725495E403D9EE65EF5F9136F700D429C81AF52/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10026\",\n \"type\": \"Event\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Tactic. Trick.\",\n \"agilityIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: aef182 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Hold Up +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.ttslua index 18998e0f3..2d710013f 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.ttslua @@ -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("playercards/customizable/HonedInstinctUpgradeSheet") -end) __bundle_register("playercards/customizable/HonedInstinctUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) -- Customizable Cards: Honed Instinct @@ -54,22 +51,6 @@ boxSize = 38 xInitial = -0.935 xOffset = 0.069 --- z-values (lines on the sheet) -posZ = { - -0.905, - -0.705, - -0.5, - -0.29, - -0.09, - 0.12, - 0.325, - 0.62 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 1, 1, 1, 2, 3, 5 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -573,219 +554,392 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/HonedInstinctUpgradeSheet") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.yaml index 671d2613c..0d0583744 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Honed Instinct Upgrade Sheet ba0e34.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847200 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 72.99 posY: 2.55 posZ: 16.19 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hospital Debts bd323d.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hospital Debts bd323d.yaml index c392466b5..e646a7de1 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Hospital Debts bd323d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hospital Debts bd323d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 541300 ColorDiffuse: @@ -19,9 +19,10 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90010\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Task.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90010\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Task.\",\n \"weakness\": true,\n \"uses\": [\n {\n \"count\": + 0,\n \"type\": \"Resource\",\n \"token\": \"resource\"\n }\n ],\n + \ \"cycle\": \"Standalone\"\n}" GUID: bd323d Grid: true GridProjection: false @@ -45,11 +46,11 @@ Transform: posX: 8.97 posY: 4.67 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.ttslua index 4e2728456..0b2a12ce3 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.ttslua @@ -41,80 +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("playercards/customizable/HuntersArmorUpgradeSheet") -end) -__bundle_register("playercards/customizable/HuntersArmorUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) --- Customizable Cards: Hunter's Armor - --- Color information for buttons -boxSize = 40 - --- static values -xInitial = -0.933 -xOffset = 0.075 - --- z-values (lines on the sheet) -posZ = { - -0.892, - -0.560, - -0.220, - -0.092, - 0.047, - 0.376, - 0.820 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 2, 2, 2, 2, 3, 3 } -inputBoxes = {} - -customizations = { - [1] = { - checkboxes = { - posZ = -0.892, - count = 1, - } - }, - [2] = { - checkboxes = { - posZ = -0.560, - count = 2, - } - }, - [3] = { - checkboxes = { - posZ = -0.220, - count = 2, - } - }, - [4] = { - checkboxes = { - posZ = -0.092, - count = 2, - } - }, - [5] = { - checkboxes = { - posZ = 0.047, - count = 2, - }, - }, - [6] = { - checkboxes = { - posZ = 0.376, - count = 3, - } - }, - [7] = { - checkboxes = { - posZ = 0.820, - count = 3, - }, - }, -} -require("playercards/customizable/UpgradeSheetLibrary") -end) __bundle_register("playercards/customizable/UpgradeSheetLibrary", function(require, _LOADED, __bundle_register, __bundle_modules) -- Common code for handling customizable card upgrade sheets -- Define UI elements in the base card file, then include this @@ -565,219 +491,448 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/HuntersArmorUpgradeSheet") +end) +__bundle_register("playercards/customizable/HuntersArmorUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Customizable Cards: Hunter's Armor + +-- Color information for buttons +boxSize = 40 + +-- static values +xInitial = -0.933 +xOffset = 0.075 + +customizations = { + [1] = { + checkboxes = { + posZ = -0.892, + count = 1, + } + }, + [2] = { + checkboxes = { + posZ = -0.560, + count = 2, + } + }, + [3] = { + checkboxes = { + posZ = -0.220, + count = 2, + } + }, + [4] = { + checkboxes = { + posZ = -0.092, + count = 2, + } + }, + [5] = { + checkboxes = { + posZ = 0.047, + count = 2, + }, + }, + [6] = { + checkboxes = { + posZ = 0.376, + count = 3, + } + }, + [7] = { + checkboxes = { + posZ = 0.820, + count = 3, + }, + }, +} +require("playercards/customizable/UpgradeSheetLibrary") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.yaml index c129852fb..1ae67057a 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hunter's Armor Upgrade Sheet d2d01b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846400 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 75.36 posY: 15.19 posZ: 24.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.ttslua index 06b1aeda8..a8a81d593 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.ttslua @@ -41,223 +41,6 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local PlaymatApi = { } - local internal = { } - - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end - else - if startPos.z > 0 then - return "Green" - else - return "Red" - end - end - end - - -- Returns the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat - PlaymatApi.isDES = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") - end - - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") - end - - -- Returns the position of the discard pile of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") - end - - -- Transforms a local position into a global position - ---@param localPos Table Local position to be transformed - ---@param matColor String Color of the playermat - PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) - end - - -- Returns the rotation of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() - end - - -- Triggers the Upkeep for the requested playmat - ---@param matColor String Color of the playermat - ---@param playerColor String Color of the calling player (for messages) - PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", playerColor) - end - - -- Returns the active investigator id - ---@param matColor String Color of the playermat - PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") - end - - -- Sets the requested playermat'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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("setLimitSnapsByType", matchCardTypes) - end - end - - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("showDrawButton", isDrawButtonVisible) - end - end - - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.clickableClues = function(showCounter, matColor) - for _, mat in ipairs(internal.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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.removeClues = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("removeClues") - end - end - - -- Reports the clue count for the requested playermat - ---@param useClickableCounters Boolean Controls which type of counter is getting checked - PlaymatApi.getClueCount = function(useClickableCounters, matColor) - local count = 0 - for _, mat in ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) - end - return count - end - - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) - end - end - - -- Discard a non-hidden card from the corresponding player's hand - PlaymatApi.doDiscardOne = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("doDiscardOne") - end - end - - PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do - mat.call("syncAllCustomizableCards") - end - end - - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - - return PlaymatApi -end -end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/customizable/HyperphysicalShotcasterUpgradeSheet") end) @@ -271,21 +54,6 @@ boxSize = 38 xInitial = -0.935 xOffset = 0.069 --- z-values (lines on the sheet) -posZ = { - -0.9, - -0.615, - -0.237, - 0.232, - 0.61, - 0.988, - 1.185 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 2, 2, 2, 2, 2, 4, 4 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -781,4 +549,391 @@ function maybeUpdateServitorSlotDisplay() }) 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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.yaml index a02db14d6..0bb373831 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Hyperphysical Shotcaster Upgrade Sheet a4eec2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847900 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 76.5 posY: 9.19 posZ: 17.48 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom I'll Pay You Back! 40e1ca.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom I'll Pay You Back! 40e1ca.yaml new file mode 100644 index 000000000..625cc52ed --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom I'll Pay You Back! 40e1ca.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 600 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '6': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070978340/8858A9F24148B2C04A3ED876597BD966FEE114EC/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10072\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 0,\n \"level\": 0,\n \"traits\": \"Gambit. Trick.\",\n \"willpowerIcons\": + 1,\n \"agilityIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 40e1ca +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: '"I''ll Pay You Back!"' +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -2.6 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2322.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2322.yaml new file mode 100644 index 000000000..ef2b8b954 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2322.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 12100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '121': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867646/87E93B4F71674659B01C9ED280E573D7BD929882/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867768/A54D29440DD5A9DA4E059B861C7AC22F5ACD9BE4/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Scientist +DragSelectable: true +GMNotes: "{\n \"id\": \"10004\",\n \"type\": \"Investigator\",\n \"class\": \"Seeker\",\n + \ \"traits\": \"Miskatonic. Scholar.\",\n \"willpowerIcons\": 2,\n \"intellectIcons\": + 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 4,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: ce2322 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Kate Winthrop +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 9.23 + posY: 3.55 + posZ: 2.42 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2323.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2323.yaml new file mode 100644 index 000000000..05ba4cecd --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Kate Winthrop ce2323.yaml @@ -0,0 +1,53 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 2300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '23': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867871/EB5C687183CDE5C99EB5DD7ADD3FB4BDD6FEAF90/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875867965/C9915CEC416F68E17D14095E2699FA7268826D66/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10004-m\",\n \"type\": \"Minicard\"\n}" +GUID: ce2323 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Kate Winthrop +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Minicard +Tooltip: true +Transform: + posX: 5.76 + posY: 3.65 + posZ: 15.39 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.6 + scaleY: 1 + scaleZ: 0.6 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Kōhaku Narukami 54eaa7.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Kōhaku Narukami 54eaa7.yaml new file mode 100644 index 000000000..e348e331e --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Kōhaku Narukami 54eaa7.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 1200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '12': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2279447041528306921/0A76D03B8AF90DA47EDD0910372D3039F8F721CF/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447041528307014/97D703914FF15C0251BBAF2719502EC26BDCDD5F/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Folklorist +DragSelectable: true +GMNotes: "{\n \"id\": \"10012\",\n \"type\": \"Investigator\",\n \"class\": \"Mystic\",\n + \ \"traits\": \"Scholar. Blessed. Cursed.\",\n \"willpowerIcons\": 4,\n \"intellectIcons\": + 4,\n \"combatIcons\": 3,\n \"agilityIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 54eaa7 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: "K\u014Dhaku Narukami" +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 9.23 + posY: 3.55 + posZ: 2.42 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Kōhaku Narukami cea427.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Kōhaku Narukami cea427.yaml new file mode 100644 index 000000000..c22fd4d24 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Kōhaku Narukami cea427.yaml @@ -0,0 +1,53 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 84700 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '847': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2279447041528307132/8E82D44E2F6AB7BFF189CB763611C59EF9EC1431/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447041528307218/ADD29232375EB7B3F78A33CB4BBA79A283DC7172/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10012-m\",\n \"type\": \"Minicard\"\n}" +GUID: cea427 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: "K\u014Dhaku Narukami" +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Minicard +Tooltip: true +Transform: + posX: 5.76 + posY: 3.65 + posZ: 15.39 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.6 + scaleY: 1 + scaleZ: 0.6 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Liber Omnium Finium 242a11.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Liber Omnium Finium 242a11.yaml index ecc011af8..8e601e0ff 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Liber Omnium Finium 242a11.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Liber Omnium Finium 242a11.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273000 ColorDiffuse: @@ -19,9 +19,8 @@ CustomDeck: UniqueBack: false Description: Weakness DragSelectable: true -GMNotes: "{\r\n \"id\": \"98021\",\r\n \"type\": \"Treachery\",\r\n \"class\": - \"Neutral\",\r\n \"traits\": \"Endtimes.\",\r\n \"weakness\": true,\r\n \"cycle\": - \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98021\",\n \"type\": \"Treachery\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Endtimes.\",\n \"weakness\": true,\n \"cycle\": \"Promo\"\n}" GUID: 242a11 Grid: true GridProjection: false @@ -45,11 +44,11 @@ Transform: posX: 8.99 posY: 3.81 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.ttslua index b7604c042..da78a5353 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.ttslua @@ -41,6 +41,116 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/LivingInkUpgradeSheet") end) @@ -54,27 +164,12 @@ boxSize = 40 xInitial = -0.935 xOffset = 0.075 --- z-values (lines on the sheet) -posZ = { - -0.69, - -0.355, - 0.0855, - 0.425, - 0.555, - 0.685, - 1.02 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 2, 2, 3, 3, 3 } -inputBoxes = {} - -- Locations of the skill selectors SKILL_ICON_POSITIONS = { willpower = { x = 0.085, z = -0.88 }, intellect = { x = -0.183, z = -0.88 }, - combat = { x = -0.473, z = -0.88 }, - agility = { x = -0.74, z = -0.88 }, + combat = { x = -0.473, z = -0.88 }, + agility = { x = -0.74, z = -0.88 }, } customizations = { @@ -575,218 +670,278 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.yaml index b7d7147df..3207219d6 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Living Ink Upgrade Sheet 19a05b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847300 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: -23.26 posY: 3.49 posZ: -44.19 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.ttslua index 737d85211..1f232703d 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.ttslua @@ -54,21 +54,6 @@ boxSize = 39 xInitial = -0.935 xOffset = 0.0735 --- z-values (lines on the sheet) -posZ = { - -0.889, - -0.655, - -0.325, - -0.085, - 0.252, - 0.585, - 0.927 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 2, 2, 2, 3, 4 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -566,219 +551,389 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.yaml index ca2f0aa1f..42190199a 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Makeshift Trap Upgrade Sheet 64dfce.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847700 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 74.02 posY: 2.55 posZ: 18.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Back) 46b148.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Back) 46b148.yaml new file mode 100644 index 000000000..e61e97766 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Back) 46b148.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 13800 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '138': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2278324186517520738/82315ABC94958A349B8144CD56E5988E53BF2294/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186517531830/EC1E6D6443C07256771BE6E913FFF97949E8FB7D/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Archeologist +DragSelectable: true +GMNotes: "{\n \"id\": \"08007-pb\",\n \"type\": \"Investigator\",\n \"class\": + \"Rogue\",\n \"traits\": \"Wayfarer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 5,\n \"cycle\": \"Relics of the + Past\"\n}" +GUID: 46b148 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Monterey Jack (Parallel Back) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 53.27 + posY: 3.14 + posZ: 22.08 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Front) 46b147.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Front) 46b147.yaml new file mode 100644 index 000000000..a4af2ab39 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel Front) 46b147.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 13700 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '137': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2278324186517531692/2F83981C724FECFD69619EFE558B675129FEE563/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186517520906/D92C977B92A6B9CCBFB1EDF94ABE919BF22E0FD4/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Archeologist +DragSelectable: true +GMNotes: "{\n \"id\": \"08007-pf\",\n \"type\": \"Investigator\",\n \"class\": + \"Rogue\",\n \"traits\": \"Wayfarer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": + 4,\n \"combatIcons\": 2,\n \"agilityIcons\": 5,\n \"cycle\": \"Relics of the + Past\"\n}" +GUID: 46b147 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Monterey Jack (Parallel Front) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 53.27 + posY: 3.14 + posZ: 22.08 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel) 46b146.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel) 46b146.yaml new file mode 100644 index 000000000..ccb5be1c8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Monterey Jack (Parallel) 46b146.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 13600 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '136': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2278324186517520738/82315ABC94958A349B8144CD56E5988E53BF2294/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186517520906/D92C977B92A6B9CCBFB1EDF94ABE919BF22E0FD4/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Archeologist +DragSelectable: true +GMNotes: "{\n \"id\": \"08007-p\",\n \"type\": \"Investigator\",\n \"class\": \"Rogue\",\n + \ \"traits\": \"Wayfarer.\",\n \"willpowerIcons\": 1,\n \"intellectIcons\": 4,\n + \ \"combatIcons\": 2,\n \"agilityIcons\": 5,\n \"cycle\": \"Relics of the Past\"\n}" +GUID: 46b146 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Monterey Jack (Parallel) +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 53.27 + posY: 3.14 + posZ: 22.08 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Mouse Mask 32ad21.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Mouse Mask 32ad21.yaml new file mode 100644 index 000000000..07aa66971 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Mouse Mask 32ad21.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 2400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '24': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2317731538678126539/603CACA51D3BB18D8E97BB18CE9DE3A6E517AFF6/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Meek Watcher +DragSelectable: true +GMNotes: "{\n \"id\": \"10043\",\n \"type\": \"Asset\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Charm. Mask.\",\n \"willpowerIcons\": + 1,\n \"intellectIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Offering\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast + of Hemlock Vale\"\n}" +GUID: 32ad21 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Mouse Mask +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Occult Reliquary (3) acd0c2.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Occult Reliquary (3) acd0c2.yaml new file mode 100644 index 000000000..6df3c9bf9 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Occult Reliquary (3) acd0c2.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 700 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '7': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070978467/E0468E7962843128806C87A8C14BDCA5EF46A2D8/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Dubious Source +DragSelectable: true +GMNotes: "{\n \"id\": \"10132\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"level\": 3,\n \"traits\": \"Boon. Pact.\",\n \"permanent\": true,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: acd0c2 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Occult Reliquary (3) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 1.95 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Ofuda 860c1e.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Ofuda 860c1e.yaml new file mode 100644 index 000000000..45e55a04d --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Ofuda 860c1e.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 800 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070978580/2878CF06EFC74C7701A21D5CABB22901293285A4/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10022\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. Charm. Blessed.\",\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 860c1e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Ofuda +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -4.88 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom On the Lam 9c4900.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom On the Lam 9c4900.yaml index efde69f61..944d14e25 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom On the Lam 9c4900.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom On the Lam 9c4900.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 541200 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Advanced DragSelectable: true -GMNotes: "{\r\n \"id\": \"90009\",\r\n \"type\": \"Event\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 0,\r\n \"traits\": \"Tactic.\",\r\n \"intellectIcons\": 1,\r\n \"agilityIcons\": - 1,\r\n \"wildIcons\": 2,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90009\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 0,\n \"traits\": \"Tactic.\",\n \"intellectIcons\": 1,\n \"agilityIcons\": + 1,\n \"wildIcons\": 2,\n \"cycle\": \"Standalone\"\n}" GUID: 9c4900 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.03 posY: 3.77 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Pelt Shipment aa11bc.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Pelt Shipment aa11bc.yaml new file mode 100644 index 000000000..15891836c --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Pelt Shipment aa11bc.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 51400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '514': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255557867/008C1DCB5CE961BEB32E83846BBEF4DA0F9EB38E/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10109\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"level\": 0,\n \"traits\": \"Item. Supply.\",\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: aa11bc +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Pelt Shipment +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 9.01 + posY: 3.86 + posZ: -16.7 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Persistence (1) 2cf51.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Persistence (1) 2cf51.yaml new file mode 100644 index 000000000..be344b2a7 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Persistence (1) 2cf51.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 12400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '124': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255558022/32883D27BAD8B1BD11F955D75BC7DA0BB0C8BBC3/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10118\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 1,\n \"traits\": \"Innate.\",\n \"wildIcons\": 1,\n \"cycle\": \"The + Feast of Hemlock Vale\"\n}" +GUID: 2cf51 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Persistence (1) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.ttslua index cb2d18c6c..79b99565c 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.ttslua @@ -41,6 +41,74 @@ 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/PocketMultiToolUpgradeSheet") end) @@ -54,21 +122,6 @@ boxSize = 40 xInitial = -0.933 xOffset = 0.075 --- z-values (lines on the sheet) -posZ = { - -0.892, - -0.560, - -0.326, - -0.092, - 0.142, - 0.376, - 0.610 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 2, 2, 2, 3, 4 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -565,219 +618,321 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.yaml index 30c9cc4cf..03ffb66d5 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Pocket Multi Tool Upgrade Sheet d706e7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847600 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 76.2 posY: 9.19 posZ: 17.36 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.ttslua index a2ce0f101..b067f4b97 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.ttslua @@ -41,6 +41,116 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/PowerWordUpgradeSheet") end) @@ -54,22 +164,6 @@ boxSize = 38 xInitial = -0.933 xOffset = 0.069 --- z-values (lines on the sheet) -posZ = { - -0.905, - -0.6, - -0.32, - -0.02, - 0.28, - 0.48, - 0.775, - 0.975 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 1, 1, 2, 3, 3, 3 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { @@ -573,218 +667,278 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.yaml index f0852fb7b..a03c2db72 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Power Word Upgrade Sheet 0d9481.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847500 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 75.63 posY: 9.19 posZ: 15.56 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Prismatic Spectacles (2) 3adcf5.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Prismatic Spectacles (2) 3adcf5.yaml new file mode 100644 index 000000000..8f636be85 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Prismatic Spectacles (2) 3adcf5.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 11400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '114': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008872128556/C009C807744F221A9E7A2F8B67BA9EF291EA17C8/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Lens to the Otherworld +DragSelectable: true +GMNotes: "{\n \"id\": \"10056\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Seeker\",\n \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. + Relic. Cursed.\",\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 3adcf5 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Prismatic Spectacles (2) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Providential (2) 2cf42a.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Providential (2) 2cf42a.yaml new file mode 100644 index 000000000..300e20ed1 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Providential (2) 2cf42a.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 10200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '102': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2280574378897290922/CDA9AB9A68466987CF29AD56DA4BD4A98B19A638/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10125\",\n \"type\": \"Skill\",\n \"class\": \"Survivor\",\n + \ \"level\": 2,\n \"traits\": \"Innate. Blessed.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 2cf42a +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Providential (2) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Purified 294d6a.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Purified 294d6a.yaml new file mode 100644 index 000000000..d1f378d53 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Purified 294d6a.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 65100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '651': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008871909441/F9E7E4782DF158E035B6692FF54B509467764C2E/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10029\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 0,\n \"traits\": \"Innate. Blessed.\",\n \"cycle\": \"The Feast of + Hemlock Vale\"\n}" +GUID: 294d6a +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Purified +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.ttslua index 4c1307502..815974d73 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.ttslua @@ -43,219 +43,389 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( end)(nil) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") end - return PlaymatApi + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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) @@ -271,22 +441,6 @@ boxSize = 38 xInitial = -0.935 xOffset = 0.0705 --- z-values (lines on the sheet) -posZ = { - -0.92, - -0.715, - -0.415, - -0.018, - 0.265, - 0.66, - 0.86, - 1.065 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 1, 1, 1, 3, 3, 4 } -inputBoxes = {} - customizations = { [1] = { checkboxes = { diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.yaml index dd335fbe1..97db6b378 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Runic Axe Upgrade Sheet be427d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 846500 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 77.21 posY: 15.19 posZ: 23.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Ruth Westmacott 782e0a.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Ruth Westmacott 782e0a.yaml index 568167bcf..16f234bd1 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Ruth Westmacott 782e0a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Ruth Westmacott 782e0a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 273100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Dark Revelations DragSelectable: true -GMNotes: "{\r\n \"id\": \"98020\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 3,\r\n \"traits\": \"Ally. Artist.\",\r\n \"intellectIcons\": 2,\r\n - \ \"wildIcons\": 1,\r\n \"cycle\": \"Promo\"\r\n}\r" +GMNotes: "{\n \"id\": \"98020\",\n \"type\": \"Asset\",\n \"slot\": \"Ally\",\n + \ \"class\": \"Neutral\",\n \"cost\": 3,\n \"traits\": \"Ally. Artist.\",\n \"intellectIcons\": + 2,\n \"wildIcons\": 1,\n \"cycle\": \"Promo\"\n}" GUID: 782e0a Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 9.0 posY: 3.93 posZ: -16.7 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Scrimshaw Charm c1fb2e.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Scrimshaw Charm c1fb2e.yaml new file mode 100644 index 000000000..db18afe0f --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Scrimshaw Charm c1fb2e.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 49100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '491': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186529136814/A09D725A3E1532BDD790011406D8BB68D1F4D2C5/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: From Distant Shores +DragSelectable: true +GMNotes: "{\n \"id\": \"10068\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Rogue\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. + Charm. Cursed.\",\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: c1fb2e +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Scrimshaw Charm +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Skeptic (1) d2cd42.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Skeptic (1) d2cd42.yaml index efd5e3ad3..d2c0390d6 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Skeptic (1) d2cd42.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Skeptic (1) d2cd42.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 550100 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"07115\",\r\n \"type\": \"Skill\",\r\n \"class\": \"Rogue\",\r\n - \ \"level\": 1,\r\n \"traits\": \"Practiced.\",\r\n \"wildIcons\": 1,\r\n \"cycle\": - \"The Innsmouth Conspiracy\"\r\n}\r" +GMNotes: "{\n \"id\": \"07115\",\n \"type\": \"Skill\",\n \"class\": \"Rogue\",\n + \ \"level\": 1,\n \"traits\": \"Practiced.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Innsmouth Conspiracy\"\n}" GUID: d2cd42 Grid: true GridProjection: false @@ -45,11 +45,11 @@ Transform: posX: 9.15 posY: 3.87 posZ: -16.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Snitch (2) add242.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Snitch (2) add242.yaml new file mode 100644 index 000000000..85eaa41e5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Snitch (2) add242.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 10800 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '108': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255558157/7F564EC50CF2DED0C98A9D3AB8912C2ACA5C49F5/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10078\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 2,\n \"traits\": \"Favor. Trick.\",\n \"agilityIcons\": + 1,\n \"intellectIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: add242 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Snitch (2) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Speak to the Dead c763aa.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Speak to the Dead c763aa.yaml new file mode 100644 index 000000000..dea5a881a --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Speak to the Dead c763aa.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 9200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '92': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2195002645128570001/1519803ABED2FA378473CDEDA000B057BB06A63B/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10091\",\n \"type\": \"Asset\",\n \"slot\": \"Arcane\",\n + \ \"class\": \"Mystic\",\n \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Talent. + Ritual.\",\n \"uses\": [\n {\n \"count\": 6,\n \"type\": \"Offering\",\n + \ \"token\": \"resource\"\n }\n ],\n \"willpowerIcons\": 1,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: c763aa +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Speak to the Dead +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Stir the Pot (5) add252.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Stir the Pot (5) add252.yaml new file mode 100644 index 000000000..2b8f45911 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Stir the Pot (5) add252.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 131500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1315': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255558285/956F8A6681A8C59624AFE2EE21D137D467182515/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10083\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 3,\n \"level\": 5,\n \"traits\": \"Trick. Gambit.\",\n \"intellectIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: add252 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Stir the Pot (5) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Stouthearted 265ad2.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Stouthearted 265ad2.yaml new file mode 100644 index 000000000..e8212bcab --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Stouthearted 265ad2.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 25200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '252': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324073255558420/A4269A773E17F55209B1DEBC2EA627314E1070E5/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10017\",\n \"type\": \"Event\",\n \"class\": \"Neutral\",\n + \ \"cost\": 2,\n \"traits\": \"Spirit.\",\n \"combatIcons\": 1,\n \"wildIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 265ad2 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Stouthearted +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.32 + posY: 3.55 + posZ: -0.84 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Strong-Armed (1) 294d6.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Strong-Armed (1) 294d6.yaml new file mode 100644 index 000000000..7ba08090f --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Strong-Armed (1) 294d6.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 2100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '21': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186534148818/349C8EF53B9C78E4A0A9C22F7322423DF23AD5C7/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10031\",\n \"type\": \"Skill\",\n \"class\": \"Guardian\",\n + \ \"level\": 1,\n \"traits\": \"Innate.\",\n \"agilityIcons\": 1,\n \"combatIcons\": + 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 294d6 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Strong-Armed (1) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.ttslua index 44f0d3230..3db752743 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.ttslua @@ -41,6 +41,393 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/SummonedServitorUpgradeSheet") end) @@ -54,26 +441,10 @@ boxSize = 35 xInitial = -0.935 xOffset = 0.068 --- z-values (lines on the sheet) -posZ = { - -0.92, - -0.625, - -0.33, - 0.055, - 0.26, - 0.56, - 0.765, - 1.06 -} - --- box setup (amount of boxes per line and amount of marked boxes in that line) -existingBoxes = { 1, 1, 1, 1, 1, 2, 3, 5 } -inputBoxes = {} - -- Locations of the slot selectors SLOT_ICON_POSITIONS = { arcane = { x = 0.160, z = 0.65 }, - ally = { x = -0.073, z = 0.65 } + ally = { x = -0.073, z = 0.65 } } -- These match with ArkhamDB's way of storing the data in the dropdown menu @@ -583,221 +954,4 @@ function maybeUpdateServitorSlotDisplay() }) end end) -__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local PlaymatApi = { } - local internal = { } - - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end - else - if startPos.z > 0 then - return "Green" - else - return "Red" - end - end - end - - -- Returns the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat - PlaymatApi.isDES = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") - end - - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") - end - - -- Returns the position of the discard pile of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") - end - - -- Transforms a local position into a global position - ---@param localPos Table Local position to be transformed - ---@param matColor String Color of the playermat - PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) - end - - -- Returns the rotation of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() - end - - -- Triggers the Upkeep for the requested playmat - ---@param matColor String Color of the playermat - ---@param playerColor String Color of the calling player (for messages) - PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", playerColor) - end - - -- Returns the active investigator id - ---@param matColor String Color of the playermat - PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") - end - - -- Sets the requested playermat'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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("setLimitSnapsByType", matchCardTypes) - end - end - - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("showDrawButton", isDrawButtonVisible) - end - end - - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.clickableClues = function(showCounter, matColor) - for _, mat in ipairs(internal.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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.removeClues = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("removeClues") - end - end - - -- Reports the clue count for the requested playermat - ---@param useClickableCounters Boolean Controls which type of counter is getting checked - PlaymatApi.getClueCount = function(useClickableCounters, matColor) - local count = 0 - for _, mat in ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) - end - return count - end - - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) - end - end - - -- Discard a non-hidden card from the corresponding player's hand - PlaymatApi.doDiscardOne = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("doDiscardOne") - end - end - - PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do - mat.call("syncAllCustomizableCards") - end - end - - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - - return PlaymatApi -end -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.yaml index e90094653..b8a19432e 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor Upgrade Sheet 5397a6.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847400 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 76.59 posY: 15.19 posZ: 23.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor d187dd.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor d187dd.yaml index d730d6724..a124828b6 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor d187dd.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Summoned Servitor d187dd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 803600 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 16.98 posY: 2.21 posZ: 55.09 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.6 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.6 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Survival Technique (2) 2ea0d4.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Survival Technique (2) 2ea0d4.yaml new file mode 100644 index 000000000..6de97d4e8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Survival Technique (2) 2ea0d4.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 52200 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '522': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186534148947/3C443D851F06103A1FC8D98195AE4B907A442385/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10123\",\n \"type\": \"Asset\",\n \"class\": \"Survivor\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Talent. Science.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 2ea0d4 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Survival Technique (2) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 9.01 + posY: 3.86 + posZ: -16.7 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom The Beyond 37ab47.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom The Beyond 37ab47.yaml new file mode 100644 index 000000000..32addf725 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom The Beyond 37ab47.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 847100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8471': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2149964195986881059/864F6EBBD2900ED6D145B8AF12F2F8C180375C83/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2149964195986880989/13172BC914A0D729B4EFD9845FA9FDFCAB6F77F7/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Bleak Netherworld +DragSelectable: true +GMNotes: "{\n \"id\": \"90052\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"permanent\": true,\n \"startsInPlay\": true,\n \"cycle\": \"Laid to Rest\"\n}" +GUID: 37ab47 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: The Beyond +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 78.53 + posY: 3.19 + posZ: 17.89 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom The Key of Solomon (4) ae54c6.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom The Key of Solomon (4) ae54c6.yaml new file mode 100644 index 000000000..6a340c2e3 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom The Key of Solomon (4) ae54c6.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 34500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '345': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008871909588/C2A18B9B3FFC42C2420E348FDA928FCE02DF8E71/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Secrets of the Unknown +DragSelectable: true +GMNotes: "{\n \"id\": \"10104\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 4,\n \"traits\": \"Item. + Tome. Blessed. Cursed.\",\n \"intellectIcons\": 1,\n \"wildIcons\": 2,\n \"willpowerIcons\": + 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: ae54c6 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: The Key of Solomon (4) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom The Necronomicon 5b2e10.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom The Necronomicon 5b2e10.yaml index eeb251e28..40bf1ca09 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom The Necronomicon 5b2e10.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom The Necronomicon 5b2e10.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 539500 ColorDiffuse: @@ -19,8 +19,9 @@ CustomDeck: UniqueBack: false Description: John Dee Translation (Advanced) DragSelectable: true -GMNotes: "{\r\n \"id\": \"90003\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"traits\": \"Item. Tome.\",\r\n \"weakness\": true,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"90003\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"traits\": \"Item. Tome.\",\n \"weakness\": true,\n + \ \"cycle\": \"Standalone\"\n}" GUID: 5b2e10 Grid: true GridProjection: false @@ -45,11 +46,11 @@ Transform: posX: 30.12 posY: 2.31 posZ: -68.59 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.ttslua b/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.ttslua index 148804744..7de1d2dec 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.ttslua +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.ttslua @@ -41,77 +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("playercards/customizable/TheRavenQuillUpgradeSheet") -end) -__bundle_register("playercards/customizable/TheRavenQuillUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) --- Customizable Cards: The Raven Quill - --- Color information for buttons and input boxes -boxSize = 37 -inputFontsize = 38 - --- static values -xInitial = -0.935 -xOffset = 0.0705 - -customizations = { - [1] = { - textField = { - position = { 0.5, 0.25, -0.905 }, - width = 425 - } - }, - [2] = { - checkboxes = { - posZ = -0.72, - count = 1, - } - }, - [3] = { - checkboxes = { - posZ = -0.52, - count = 1, - } - }, - [4] = { - checkboxes = { - posZ = -0.305, - count = 2, - } - }, - [5] = { - checkboxes = { - posZ = -0.105, - count = 2, - }, - textField = { - position = { 0.125, 0.25, 0 }, - width = 775 - } - }, - [6] = { - checkboxes = { - posZ = 0.1, - count = 2, - } - }, - [7] = { - checkboxes = { - posZ = 0.4, - count = 3, - } - }, - [8] = { - checkboxes = { - posZ = 0.695, - count = 4, - } - }, -} - -require("playercards/customizable/UpgradeSheetLibrary") -end) __bundle_register("playercards/customizable/UpgradeSheetLibrary", function(require, _LOADED, __bundle_register, __bundle_modules) -- Common code for handling customizable card upgrade sheets -- Define UI elements in the base card file, then include this @@ -562,219 +491,460 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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/customizable/TheRavenQuillUpgradeSheet") +end) +__bundle_register("playercards/customizable/TheRavenQuillUpgradeSheet", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Customizable Cards: The Raven Quill + +-- Color information for buttons and input boxes +boxSize = 37 +inputFontsize = 38 + +-- static values +xInitial = -0.935 +xOffset = 0.0705 + +customizations = { + [1] = { + textField = { + position = { 0.5, 0.25, -0.905 }, + width = 425 + } + }, + [2] = { + checkboxes = { + posZ = -0.72, + count = 1, + } + }, + [3] = { + checkboxes = { + posZ = -0.52, + count = 1, + } + }, + [4] = { + checkboxes = { + posZ = -0.305, + count = 2, + } + }, + [5] = { + checkboxes = { + posZ = -0.105, + count = 2, + }, + textField = { + position = { 0.125, 0.25, 0 }, + width = 775 + } + }, + [6] = { + checkboxes = { + posZ = 0.1, + count = 2, + } + }, + [7] = { + checkboxes = { + posZ = 0.4, + count = 3, + } + }, + [8] = { + checkboxes = { + posZ = 0.695, + count = 4, + } + }, +} + +require("playercards/customizable/UpgradeSheetLibrary") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.yaml index 00000fc4b..359709743 100644 --- a/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.yaml +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom The Raven Quill Upgrade Sheet 23b96a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 847000 ColorDiffuse: @@ -43,11 +43,11 @@ Transform: posX: 78.8 posY: 3.33 posZ: 36.48 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Throw the Book at Them! d617ab.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Throw the Book at Them! d617ab.yaml new file mode 100644 index 000000000..4558916f8 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Throw the Book at Them! d617ab.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 13100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '131': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2316603641240722224/B99E98444E70743A1A55DF86CC7EF09C9B4B43FF/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10049\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Gambit. Improvised.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: d617ab +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: '"Throw the Book at Them!"' +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Token of Faith (3) 2ea0d1.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Token of Faith (3) 2ea0d1.yaml new file mode 100644 index 000000000..23c8a95ef --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Token of Faith (3) 2ea0d1.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 52100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '521': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2280574378887536350/F17918D27323F466AD8835E5DCE218FB81BD5804/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10126\",\n \"type\": \"Asset\",\n \"slot\": \"Accessory\",\n + \ \"class\": \"Survivor\",\n \"cost\": 2,\n \"level\": 3,\n \"traits\": \"Item. + Charm. Blessed.\",\n \"intellectIcons\": 1,\n \"willpowerIcons\": 1,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: 2ea0d1 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Token of Faith (3) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 9.01 + posY: 3.86 + posZ: -16.7 + rotX: 1 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Transmogrify 9965dd.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Transmogrify 9965dd.yaml new file mode 100644 index 000000000..2c85012c9 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Transmogrify 9965dd.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 123100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '1231': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875868083/4DA5C631FAAB5B6A2B7FD46DFC47C3EAF9ACB71A/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10050\",\n \"type\": \"Event\",\n \"class\": \"Seeker\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Gambit. Science.\",\n \"intellectIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: 9965dd +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Transmogrify +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Trusty Bullwhip ca9a61.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Trusty Bullwhip ca9a61.yaml new file mode 100644 index 000000000..e4453de75 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Trusty Bullwhip ca9a61.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 13400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '134': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186517520604/13B2733436FDBFFCAAF9BD76DFE053F96F559A7E/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Advanced +DragSelectable: true +GMNotes: "{\n \"id\": \"90063\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Neutral\",\n \"cost\": 1,\n \"traits\": \"Item. Weapon. Melee.\",\n + \ \"agilityIcons\": 2,\n \"intellectIcons\": 1,\n \"wildIcons\": 1,\n \"cycle\": + \"Relics of the Past\"\n}" +GUID: ca9a61 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Trusty Bullwhip +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 78.56 + posY: 3.33 + posZ: 7.39 + rotX: 0 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Vamp (3) add233.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Vamp (3) add233.yaml new file mode 100644 index 000000000..642530663 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Vamp (3) add233.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 14500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '145': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278324186529136955/D4A382DBA69D8CBD9671F2E9F1B55DAFA95F4C3D/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10081\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Trick.\",\n \"wildIcons\": 2,\n + \ \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: add233 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Vamp (3) +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Vamp add232.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Vamp add232.yaml new file mode 100644 index 000000000..b4a4e3d6e --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Vamp add232.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 10500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '105': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2280574378897291066/DC879288F0D5EFCF4309F03DC305A081902FEB29/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10074\",\n \"type\": \"Event\",\n \"class\": \"Rogue\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Trick.\",\n \"wildIcons\": 1,\n + \ \"cycle\": \"The Feast of Hemlock Vale\"\n}" +GUID: add232 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Vamp +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: 6.5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Weeping Yurei 541bd9.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Weeping Yurei 541bd9.yaml new file mode 100644 index 000000000..c0f60c56b --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Weeping Yurei 541bd9.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 1000 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '10': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279447041528307333/8668BDBDA77DF0DA43A153536C7ED6ED22AC05D0/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10014\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Monster. Geist.\",\n \"weakness\": true,\n \"cycle\": \"The Feast + of Hemlock Vale\"\n}" +GUID: 541bd9 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Weeping Yurei +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.32 + posY: 3.55 + posZ: -3.11 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Well-Dressed c6ac33.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Well-Dressed c6ac33.yaml new file mode 100644 index 000000000..41af9f52e --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Well-Dressed c6ac33.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 362500 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '3625': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2279448008875868194/EE49215440FE21B738BBF0E69644A32701A19FC0/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10130\",\n \"type\": \"Skill\",\n \"class\": \"Neutral\",\n + \ \"level\": 0,\n \"traits\": \"Practiced. Fortune.\",\n \"wildIcons\": 1,\n \"cycle\": + \"The Feast of Hemlock Vale\"\n}" +GUID: c6ac33 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Well-Dressed +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 29.34 + posY: 3.37 + posZ: -58.91 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Wicked Athame c9fb1f.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Wicked Athame c9fb1f.yaml new file mode 100644 index 000000000..44d3083ed --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Wicked Athame c9fb1f.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 900 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '9': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009070978691/AE0143320D2C6CE35BCF1BFE50ABBCAA82546854/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: Cursed Blade +DragSelectable: true +GMNotes: "{\n \"id\": \"10092\",\n \"type\": \"Asset\",\n \"slot\": \"Hand\",\n + \ \"class\": \"Mystic\",\n \"cost\": 2,\n \"level\": 0,\n \"traits\": \"Item. + Weapon. Melee. Cursed.\",\n \"combatIcons\": 1,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: c9fb1f +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Wicked Athame +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 13.08 + posY: 3.55 + posZ: -7.16 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Wilson Richards 55eab5.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Wilson Richards 55eab5.yaml new file mode 100644 index 000000000..7b3f8e09b --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Wilson Richards 55eab5.yaml @@ -0,0 +1,57 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 11300 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '113': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2223150865961116635/ECA77BE1E295589069A336225ED260173BCF349F/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2223150865961116782/ACC14C3F0BA423DF4AE2CDA71BE8B0044ED0DEF0/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Handyman +DragSelectable: true +GMNotes: "{\n \"id\": \"10001\",\n \"type\": \"Investigator\",\n \"class\": \"Guardian\",\n + \ \"traits\": \"Drifter.\",\n \"willpowerIcons\": 3,\n \"intellectIcons\": 3,\n + \ \"combatIcons\": 3,\n \"agilityIcons\": 3,\n \"cycle\": \"The Feast of Hemlock + Vale\"\n}" +GUID: 55eab5 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Wilson Richards +SidewaysCard: true +Snap: true +Sticky: true +Tags: +- Investigator +- PlayerCard +Tooltip: true +Transform: + posX: 9.23 + posY: 3.55 + posZ: 2.42 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1.15 + scaleY: 1 + scaleZ: 1.15 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Wilson Richards ceb426.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Wilson Richards ceb426.yaml new file mode 100644 index 000000000..2d6636ab4 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Wilson Richards ceb426.yaml @@ -0,0 +1,53 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 833400 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '8334': + BackIsHidden: true + BackURL: http://cloud-3.steamusercontent.com/ugc/2223150865961116947/D586147EC3D293A3A1879A4E61CE6FDF3094A746/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2223150865961117168/D42461AB21EC7E1F17DA41E1B6BD58F22E22252B/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10001-m\",\n \"type\": \"Minicard\"\n}" +GUID: ceb426 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Wilson Richards +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Minicard +Tooltip: true +Transform: + posX: 5.76 + posY: 3.65 + posZ: 15.39 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.6 + scaleY: 1 + scaleZ: 0.6 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Wolf Mask 975d89.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Wolf Mask 975d89.yaml new file mode 100644 index 000000000..7651b7bc2 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Wolf Mask 975d89.yaml @@ -0,0 +1,58 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 74100 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '741': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2278323044302431462/6976437175C83B7356B6C95335C1ED88140CD57A/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: The Moon's Sire +DragSelectable: true +GMNotes: "{\n \"id\": \"10023\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 1,\n \"level\": 0,\n \"traits\": \"Item. Charm. Mask.\",\n \"agilityIcons\": + 1,\n \"combatIcons\": 1,\n \"uses\": [\n {\n \"count\": 2,\n \"type\": + \"Offering\",\n \"token\": \"resource\"\n }\n ],\n \"cycle\": \"The Feast + of Hemlock Vale\"\n}" +GUID: 975d89 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Wolf Mask +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- Asset +- PlayerCard +Tooltip: true +Transform: + posX: 82.47 + posY: 3.21 + posZ: 18.32 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag All Player Cards 15bb07/CardCustom Zamacona 541ba9.yaml b/unpacked/Bag All Player Cards 15bb07/CardCustom Zamacona 541ba9.yaml new file mode 100644 index 000000000..b117fd4c5 --- /dev/null +++ b/unpacked/Bag All Player Cards 15bb07/CardCustom Zamacona 541ba9.yaml @@ -0,0 +1,55 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +CardID: 1000 +ColorDiffuse: + b: 0.71324 + g: 0.71324 + r: 0.71324 +CustomDeck: + '10': + BackIsHidden: true + BackURL: https://i.imgur.com/EcbhVuh.jpg/ + FaceURL: http://cloud-3.steamusercontent.com/ugc/2172484009071331144/5BF472F3A7B8E786FE4942B38201E09E8291A77A/ + NumHeight: 1 + NumWidth: 1 + Type: 0 + UniqueBack: false +Description: '' +DragSelectable: true +GMNotes: "{\n \"id\": \"10011\",\n \"type\": \"Enemy\",\n \"class\": \"Neutral\",\n + \ \"traits\": \"Humanoid. Criminal.\",\n \"weakness\": true,\n \"cycle\": \"The + Feast of Hemlock Vale\"\n}" +GUID: 541ba9 +Grid: true +GridProjection: false +Hands: true +HideWhenFaceDown: true +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: CardCustom +Nickname: Zamacona +SidewaysCard: false +Snap: true +Sticky: true +Tags: +- PlayerCard +Tooltip: true +Transform: + posX: 9.32 + posY: 3.55 + posZ: -3.11 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0.yaml b/unpacked/Bag OptionPanel Source 830bd0.yaml index 29ee029ad..668ca2569 100644 --- a/unpacked/Bag OptionPanel Source 830bd0.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 - g: 0.366520882 - r: 0.7058823 + b: 0 + g: 0.36652 + r: 0.70588 ContainedObjects: - !include 'Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.yaml' - !include 'Bag OptionPanel Source 830bd0/Infinite_Bag Attachment Helper 7f4976.yaml' @@ -16,7 +16,6 @@ ContainedObjects: - !include 'Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.yaml' - !include 'Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.yaml' - !include 'Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.yaml' -- !include 'Bag OptionPanel Source 830bd0/Custom_Token Custom Playmat Images 004fe7.yaml' Description: Contains the objects that are spawnable via option panel DragSelectable: true GMNotes: '' @@ -39,12 +38,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.01 posZ: -4.6 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.75 scaleY: 0.75 scaleZ: 0.75 diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.ttslua index e40a42522..91ed10d69 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.ttslua +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.ttslua @@ -809,4 +809,3 @@ end function AllMemoryBagsInScene:getGuidList() return Global.getTable(self.NAME_OF_GLOBAL_VARIABLE) or {} end - \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.yaml index 0a44196e3..eaf5a5c64 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2.yaml @@ -1,59 +1,67 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 03 The Path - to Carcosa 06a742.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet - Keys 11d148.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06B The - Web of Dreams 1bac4d.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle - Undone 20d53c.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Return to Expansions - 2275ed.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 02 The Dunwich - Legacy 38d1cd.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C1 Dark - Matter 3a08d9.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones - 2020-202 4c47d8.yaml' - !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 01 Night of the Zealot 56a91d.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge - Scenarios 8f7e04.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 02 The Dunwich + Legacy 38d1cd.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 03 The Path + to Carcosa 06a742.yaml' - !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones - 2016-2020 e227ad.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 08 Edge - of the Earth e32dc3.yaml' -- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C2 Alice - in Wonderland ed1d0c.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle + Undone 20d53c.yaml' - !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06A The Dream-Quest f03c2d.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06B The + Web of Dreams 1bac4d.yaml' - !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 08 Edge + of the Earth e32dc3.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet + Keys 11d148.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 10 The Feast + of Hemlock Vale 2e50cf.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones + 2016-2020 e227ad.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones + 2020-202 4c47d8.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge + Scenarios 8f7e04.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge + Scenarios dcf492.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C1 Dark + Matter 3a08d9.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C2 Alice + in Wonderland ed1d0c.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C3 Cyclopean + Foundations f72800.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Return to Expansions + 2275ed.yaml' +- !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Updating to New + Versions a1b358.yaml' CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/00%20CYOA.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -71,7 +79,7 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false LuaScript: !include 'Custom_Model_Bag CYOA Campaign Guides e87ea2.ttslua' -LuaScriptState: "{\"ml\":{\"06a742\":{\"lock\":false,\"pos\":{\"x\":65,\"y\":1.2494,\"z\":-31.3},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"11d148\":{\"lock\":false,\"pos\":{\"x\":47,\"y\":1.2494,\"z\":-25.1},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"1bac4d\":{\"lock\":false,\"pos\":{\"x\":56.0004,\"y\":1.2494,\"z\":-31.3},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"20d53c\":{\"lock\":false,\"pos\":{\"x\":56,\"y\":1.2494,\"z\":-18.8953},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"2275ed\":{\"lock\":false,\"pos\":{\"x\":56,\"y\":1.569,\"z\":-11},\"rot\":{\"x\":0,\"y\":90,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"38d1cd\":{\"lock\":false,\"pos\":{\"x\":65,\"y\":1.2494,\"z\":-25.1},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"3a08d9\":{\"lock\":false,\"pos\":{\"x\":38,\"y\":1.2494,\"z\":-25.1},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"4c47d8\":{\"lock\":false,\"pos\":{\"x\":47,\"y\":1.2494,\"z\":-37.5},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"56a91d\":{\"lock\":false,\"pos\":{\"x\":65,\"y\":1.2494,\"z\":-18.8955},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"8f7e04\":{\"lock\":false,\"pos\":{\"x\":38,\"y\":1.2494,\"z\":-18.9},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"d5cd12\":{\"lock\":false,\"pos\":{\"x\":65,\"y\":1.2494,\"z\":-37.5},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"e227ad\":{\"lock\":false,\"pos\":{\"x\":47,\"y\":1.2494,\"z\":-31.3},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"e32dc3\":{\"lock\":false,\"pos\":{\"x\":47,\"y\":1.2494,\"z\":-18.9},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"ed1d0c\":{\"lock\":false,\"pos\":{\"x\":38,\"y\":1.2494,\"z\":-31.3},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"f03c2d\":{\"lock\":false,\"pos\":{\"x\":56.0004,\"y\":1.2494,\"z\":-25.1},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}},\"f5f3b5\":{\"lock\":false,\"pos\":{\"x\":56.2742,\"y\":1.2494,\"z\":-37.5},\"rot\":{\"x\":0,\"y\":270,\"z\":0},\"tint\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1}}}}\r" +LuaScriptState: '{"ml":{"06a742":{"lock":false,"pos":{"x":65,"y":1.2494,"z":23},"rot":{"x":0,"y":269.9891,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"11d148":{"lock":false,"pos":{"x":65,"y":1.2494,"z":-19},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"1bac4d":{"lock":false,"pos":{"x":65,"y":1.2494,"z":-1},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"20d53c":{"lock":false,"pos":{"x":65,"y":1.2494,"z":11},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"2275ed":{"lock":false,"pos":{"x":50,"y":1.569,"z":-26},"rot":{"x":0,"y":90.0118,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"2e50cf":{"lock":false,"pos":{"x":65,"y":1.2494,"z":-25},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"38d1cd":{"lock":false,"pos":{"x":65,"y":1.2494,"z":29},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"3a08d9":{"lock":false,"pos":{"x":48,"y":1.2494,"z":35},"rot":{"x":0,"y":270.0101,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"4c47d8":{"lock":false,"pos":{"x":56.5,"y":1.2494,"z":29},"rot":{"x":0,"y":270.0195,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"56a91d":{"lock":false,"pos":{"x":65,"y":1.2494,"z":35},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"8f7e04":{"lock":false,"pos":{"x":56.5,"y":1.2494,"z":11},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"a1b358":{"lock":false,"pos":{"x":44,"y":1.569,"z":-26},"rot":{"x":0,"y":89.9871,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"d5cd12":{"lock":false,"pos":{"x":65,"y":1.2494,"z":17},"rot":{"x":0,"y":270.0119,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"dcf492":{"lock":false,"pos":{"x":56.5,"y":1.2494,"z":5},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"e227ad":{"lock":false,"pos":{"x":56.5,"y":1.2494,"z":35},"rot":{"x":0,"y":269.9818,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"e32dc3":{"lock":false,"pos":{"x":65,"y":1.2494,"z":-13},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"ed1d0c":{"lock":false,"pos":{"x":48,"y":1.2494,"z":29},"rot":{"x":0,"y":269.9964,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"f03c2d":{"lock":false,"pos":{"x":65,"y":1.2494,"z":5},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"f5f3b5":{"lock":false,"pos":{"x":65,"y":1.2494,"z":-7},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"f72800":{"lock":false,"pos":{"x":48,"y":1.2494,"z":23},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}}}}' MaterialIndex: -1 MeasureMovement: false MeshIndex: -1 @@ -81,14 +89,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 21.01 - posY: 3.16 - posZ: -26.84 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 51.88 + posY: 3.37 + posZ: -44.26 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.25 + scaleY: 1.25 + scaleZ: 1.25 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 01 Night of the Zealot 56a91d.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 01 Night of the Zealot 56a91d.yaml index 29b1edb3c..4793ba093 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 01 Night of the Zealot 56a91d.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 01 Night of the Zealot 56a91d.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: Night of the Zealot Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: -12.985 - posY: 2.511 - posZ: 19.133 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 66.463 + posY: 3.037 + posZ: 36.845 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/01%20Night%20of%20the%20Zealot.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 32.97 - posY: 1.05 - posZ: -73.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: 35 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 02 The Dunwich Legacy 38d1cd.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 02 The Dunwich Legacy 38d1cd.yaml index e43b90e8a..ff8fe1ba4 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 02 The Dunwich Legacy 38d1cd.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 02 The Dunwich Legacy 38d1cd.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: The Dunwich Legacy Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: 12.25 - posY: 3.029 - posZ: 19.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 67.375 + posY: 3.038 + posZ: 30.123 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/02%20Dunwich%20Legacy.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 32.97 - posY: 1.05 - posZ: -79.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: 29 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 03 The Path to Carcosa 06a742.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 03 The Path to Carcosa 06a742.yaml index 265c62852..a44b8f381 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 03 The Path to Carcosa 06a742.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 03 The Path to Carcosa 06a742.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: '' Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: 12.252 - posY: 3.009 - posZ: 11.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 64.825 + posY: 3.038 + posZ: 24.224 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/03%20Path%20to%20Carcosa.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 32.97 - posY: 1.04 - posZ: -85.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: 23 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12.yaml index ecf5d8dbb..0f38b8901 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.yaml' @@ -19,13 +19,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/04%20Forgotten%20Age.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -53,14 +53,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 32.97 - posY: 1.04 - posZ: -91.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: 17 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age (Return to) 908cbf.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age (Return to) 908cbf.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age (Return to) 908cbf.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age (Return to) 908cbf.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age (Return to) 908cbf.yaml index f45c1e34e..3e0674dc9 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age (Return to) 908cbf.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age (Return to) 908cbf.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF The Forgotten Age (Return to) 908cbf.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: The Forgotten Age (Return to) Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: -8.08 - posY: 2.51 - posZ: -5.59 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 66.29 + posY: 3.04 + posZ: 17.75 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.yaml index 56c0cafeb..576d29a8b 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 04 The Forgotten Age d5cd12/Custom_PDF The Forgotten Age 20c2ad.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF The Forgotten Age 20c2ad.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: The Forgotten Age Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: -8.24 - posY: 2.51 - posZ: -5.48 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 65.57 + posY: 3.04 + posZ: 18.74 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c.yaml index 511ff4509..b38911d15 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.yaml' @@ -19,13 +19,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/05%20Circle%20Undone.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -53,14 +53,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 24.97 - posY: 1.04 - posZ: -73.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: 11 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone (Return to) 9e9944.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone (Return to) 9e9944.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone (Return to) 9e9944.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone (Return to) 9e9944.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone (Return to) 9e9944.yaml index 355632091..ab8cff1be 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone (Return to) 9e9944.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone (Return to) 9e9944.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 PDFPassword: '' - PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%2005%20The%20Circle%20Undone%20-%20Return%20To.pdf?raw=true + PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%2005%20The%20Circle%20Undone%20-%20Return%20to.pdf?raw=true Description: '' DragSelectable: true GMNotes: '' @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF The Circle Undone (Return to) 9e9944.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: The Circle Undone (Return to) Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 2.23 - posY: 2.7 - posZ: -9.38 - rotX: 3.0 - rotY: 270.0 - rotZ: 2.0 + posX: 65.8 + posY: 3.04 + posZ: 11.85 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.yaml index 29fb20d35..20947c92a 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 05 The Circle Undone 20d53c/Custom_PDF The Circle Undone 692219.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF The Circle Undone 692219.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: The Circle Undone Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 2.74 - posY: 2.51 - posZ: -7.44 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 67.99 + posY: 3.04 + posZ: 9.81 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06A The Dream-Quest f03c2d.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06A The Dream-Quest f03c2d.yaml index 0a380cdad..1ef61feba 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06A The Dream-Quest f03c2d.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06A The Dream-Quest f03c2d.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: The Dream Quest (Campaign A) Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: -21.449 - posY: 2.511 - posZ: 14.842 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 66.919 + posY: 3.038 + posZ: 4.633 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/06A%20Dream%20Quest.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 24.97 - posY: 1.04 - posZ: -79.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: 5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06B The Web of Dreams 1bac4d.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06B The Web of Dreams 1bac4d.yaml index 4096423e2..ef98adb3f 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06B The Web of Dreams 1bac4d.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 06B The Web of Dreams 1bac4d.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: The Web of Dreams (Campaign B) Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: -22.574 - posY: 2.51 - posZ: 5.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 65.358 + posY: 3.038 + posZ: -1.704 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/06B%20Web%20of%20Dreams.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 24.97 - posY: 1.04 - posZ: -85.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: -1 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5.yaml index ae7b580b5..e2a31b4d3 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.yaml' @@ -19,13 +19,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/07%20Innsmouth%20Conspiracy.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -53,14 +53,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 24.97 - posY: 1.04 - posZ: -91.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: -7 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.yaml index 820e82902..5a9d86bd8 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF 07 The Innsmouth Conspiracy - Chronological c50a3a.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: 07 The Innsmouth Conspiracy - Chronological Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: -3.49 - posY: 2.51 - posZ: -14.21 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 66.93 + posY: 3.04 + posZ: -8.66 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.yaml index b35691fd9..24f5db6cf 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 07 The Innsmouth Conspiracy f5f3b5/Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF 07 The Innsmouth Conspiracy - Play Order f42179.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: 07 The Innsmouth Conspiracy - Play Order Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 0.85 - posY: 2.82 - posZ: 73.96 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 65.92 + posY: 3.04 + posZ: -7.15 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 08 Edge of the Earth e32dc3.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 08 Edge of the Earth e32dc3.yaml index cc66f5b86..2a7abc6dc 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 08 Edge of the Earth e32dc3.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 08 Edge of the Earth e32dc3.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -27,7 +27,7 @@ ContainedObjects: Description: '' DragSelectable: true GMNotes: '' - GUID: c50a3a + GUID: '754904' Grid: true GridProjection: false Hands: false @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: 08 Edge of the Earth Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: -5.104 - posY: 2.714 - posZ: -22.714 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 + posX: 66.88 + posY: 3.038 + posZ: -13.447 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/08%20Edge%20of%20the%20Earth.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 16.97 - posY: 1.06 - posZ: -73.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: -13 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148.yaml index e6a4e6158..3c4b7fd06 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148.yaml @@ -1,72 +1,31 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 - CustomPDF: - PDFPage: 0 - PDFPageOffset: 0 - PDFPassword: '' - PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%2009%20The%20Scarlet%20Keys.pdf?raw=true - Description: '' - DragSelectable: true - GMNotes: '' - GUID: c50a3a - Grid: true - GridProjection: false - Hands: false - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Custom_PDF - Nickname: 09 The Scarlet Keys - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 16.697 - posY: 3.047 - posZ: -78.723 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.76 - scaleY: 1.0 - scaleZ: 1.76 - Value: 0 - XmlUI: '' +- !include 'Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet + Keys Scenarios & Case Files c6e8a0.yaml' +- !include 'Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet + Keys Setup and Dossiers abf457.yaml' CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/09%20The%20Scarlet%20Keys.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +53,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 16.97 - posY: 1.06 - posZ: -79.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 65 + posY: 1.25 + posZ: -19 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Scenarios & Case Files c6e8a0.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Scenarios & Case Files c6e8a0.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Scenarios & Case Files c6e8a0.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Scenarios & Case Files c6e8a0.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Scenarios & Case Files c6e8a0.yaml new file mode 100644 index 000000000..86b181775 --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Scenarios & Case Files c6e8a0.yaml @@ -0,0 +1,47 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomPDF: + PDFPage: 0 + PDFPageOffset: 0 + PDFPassword: '' + PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%2009%20The%20Scarlet%20Keys%202%20Scenarios%20and%20Case%20Files.pdf?raw=true +Description: '' +DragSelectable: true +GMNotes: '' +GUID: c6e8a0 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Custom_PDF 09 The Scarlet Keys Scenarios & Case Files c6e8a0.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_PDF +Nickname: '09 The Scarlet Keys: Scenarios & Case Files' +Snap: true +Sticky: true +Tags: +- CleanUpHelper_ignore +Tooltip: true +Transform: + posX: 66.59 + posY: 3.04 + posZ: -20.3 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.76 + scaleY: 1 + scaleZ: 1.76 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Setup and Dossiers abf457.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Setup and Dossiers abf457.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Setup and Dossiers abf457.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Setup and Dossiers abf457.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Setup and Dossiers abf457.yaml new file mode 100644 index 000000000..03ab10e2d --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 09 The Scarlet Keys 11d148/Custom_PDF 09 The Scarlet Keys Setup and Dossiers abf457.yaml @@ -0,0 +1,47 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomPDF: + PDFPage: 0 + PDFPageOffset: 0 + PDFPassword: '' + PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%2009%20The%20Scarlet%20Keys%201%20Setup%20and%20Dossiers.pdf?raw=true +Description: '' +DragSelectable: true +GMNotes: '' +GUID: abf457 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Custom_PDF 09 The Scarlet Keys Setup and Dossiers abf457.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_PDF +Nickname: '09 The Scarlet Keys: Setup and Dossiers' +Snap: true +Sticky: true +Tags: +- CleanUpHelper_ignore +Tooltip: true +Transform: + posX: 66.34 + posY: 3.04 + posZ: -20.77 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.76 + scaleY: 1 + scaleZ: 1.76 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 10 The Feast of Hemlock Vale 2e50cf.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 10 The Feast of Hemlock Vale 2e50cf.yaml new file mode 100644 index 000000000..a2a12b8d3 --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag 10 The Feast of Hemlock Vale 2e50cf.yaml @@ -0,0 +1,130 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +Bag: + Order: 0 +ColorDiffuse: + b: 1 + g: 1 + r: 1 +ContainedObjects: +- AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + CustomPDF: + PDFPage: 0 + PDFPageOffset: 0 + PDFPassword: '' + PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%2010%20The%20Feast%20of%20Hemlock%20Vale.pdf?raw=true + Description: '' + DragSelectable: true + GMNotes: '' + GUID: cecfc9 + Grid: true + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" + LuaScriptState: '' + MeasureMovement: false + Name: Custom_PDF + Nickname: '10 The Feast of Hemlock Vale: Placeholder' + Snap: true + Sticky: true + Tags: + - CleanUpHelper_ignore + Tooltip: true + Transform: + posX: 66.083 + posY: 3.036 + posZ: -28.162 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.76 + scaleY: 1 + scaleZ: 1.76 + Value: 0 + XmlUI: '' +CustomMesh: + CastShadows: true + ColliderURL: '' + Convex: true + CustomShader: + FresnelStrength: 0 + SpecularColor: + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 + DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/10%20The%20Feast%20of%20Hemlock%20Vale.jpg?raw=true + MaterialIndex: 3 + MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true + NormalURL: '' + TypeIndex: 6 +Description: Not Released Yet +DragSelectable: true +GMNotes: '' +GUID: 2e50cf +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MaterialIndex: -1 +MeasureMovement: false +MeshIndex: -1 +Name: Custom_Model_Bag +Nickname: 10 The Feast of Hemlock Vale +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 65 + posY: 1.25 + posZ: -25 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C1 Dark Matter 3a08d9.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C1 Dark Matter 3a08d9.yaml index edae579b4..93da4aeb7 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C1 Dark Matter 3a08d9.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C1 Dark Matter 3a08d9.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -27,7 +27,7 @@ ContainedObjects: Description: Designed by Axolotl DragSelectable: true GMNotes: '' - GUID: 409b50 + GUID: 602e48 Grid: true GridProjection: false Hands: false @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: C1 Dark Matter Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: 10.122 - posY: 2.511 - posZ: 0.255 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 47.575 + posY: 3.038 + posZ: 36.067 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/C1%20Dark%20Matter.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 8.97 - posY: 1.07 - posZ: -79.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 48 + posY: 1.25 + posZ: 35 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C2 Alice in Wonderland ed1d0c.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C2 Alice in Wonderland ed1d0c.yaml index eb51da05f..8e88b514b 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C2 Alice in Wonderland ed1d0c.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C2 Alice in Wonderland ed1d0c.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -27,7 +27,7 @@ ContainedObjects: Description: Designed by Tyler Gotch DragSelectable: true GMNotes: '' - GUID: 409b50 + GUID: 4cf017 Grid: true GridProjection: false Hands: false @@ -35,23 +35,46 @@ ContainedObjects: IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false - LuaScript: '' + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: C2 Alice in Wonderland Snap: true Sticky: true + Tags: + - CleanUpHelper_ignore Tooltip: true Transform: - posX: 8.969 - posY: 1.174 - posZ: -79.104 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 48.535 + posY: 3.038 + posZ: 29.793 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' @@ -60,13 +83,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/C2%20Alice%20in%20Wonderland.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -94,14 +117,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 8.97 - posY: 1.07 - posZ: -85.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 48 + posY: 1.25 + posZ: 29 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C3 Cyclopean Foundations f72800.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C3 Cyclopean Foundations f72800.yaml new file mode 100644 index 000000000..747afd24c --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag C3 Cyclopean Foundations f72800.yaml @@ -0,0 +1,130 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +Bag: + Order: 0 +ColorDiffuse: + b: 1 + g: 1 + r: 1 +ContainedObjects: +- AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + CustomPDF: + PDFPage: 0 + PDFPageOffset: 0 + PDFPassword: '' + PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%20C3%20Cyclopean%20Foundations.pdf?raw=true + Description: Designed by Tyler Gotch + DragSelectable: true + GMNotes: '' + GUID: 0be2cd + Grid: true + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: "function onLoad()\n self.createInput({\n input_function = + \"jumpToPage\",\n function_owner = self,\n label = \"jump + to page\",\n alignment = 3,\n position = Vector(-1.6,0.1,-2.2),\n + \ rotation = Vector(0,0,0),\n scale = Vector(0.5,0.5,0.5),\n + \ width = 2000,\n height = 300,\n font_size + \ = 250,\n font_color = {0.95,0.95,0.95,0.9},\n color = + {0.3,0.3,0.3,0.6},\n tooltip = \"Type which page you wish to jump + to, then click off\",\n value = \"\",\n validation = + 1,\n tab = 1,\n })\nend\n\nfunction jumpToPage(_, _, inputValue, + stillEditing)\n if inputValue == \"\" or inputValue == nil then return end + -- do nothing if input is empty\n \n if not stillEditing then -- jump to + page if not selecting the textbox anymore\n jump((tonumber(inputValue) + + 2)/2)\n return\n elseif string.find(inputValue, \"%\\n\") ~= nil then + -- jump to page if enter is pressed\n inputValue = inputValue.gsub(inputValue, + \"%\\n\", \"\")\n jump((tonumber(inputValue) + 2)/2)\n return\n + \ end\n \n if (tonumber(inputValue:sub(-1)) == nil) then -- check and + remove non numeric character\n Wait.time(function()\n self.editInput({\n + \ index = 0,\n value = inputValue:sub(1,-2)\n })\n + \ end, 0.01)\n return\n end\nend\n\nfunction jump(page)\n self.Book.setPage(page + - 1) -- offset since 0 index\n Wait.time(function() -- clear page search\n + \ self.editInput({\n index = 0,\n value = \"\",\n + \ })\n end, 0.01)\nend" + LuaScriptState: '' + MeasureMovement: false + Name: Custom_PDF + Nickname: C3 Cyclopean Foundations + Snap: true + Sticky: true + Tags: + - CleanUpHelper_ignore + Tooltip: true + Transform: + posX: 48.615 + posY: 3.038 + posZ: 22.463 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.76 + scaleY: 1 + scaleZ: 1.76 + Value: 0 + XmlUI: '' +CustomMesh: + CastShadows: true + ColliderURL: '' + Convex: true + CustomShader: + FresnelStrength: 0 + SpecularColor: + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 + DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/C3%20Cyclopean%20Foundations.jpg?raw=true + MaterialIndex: 3 + MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true + NormalURL: '' + TypeIndex: 6 +Description: Designed by Tyler Gotch +DragSelectable: true +GMNotes: '' +GUID: f72800 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MaterialIndex: -1 +MeasureMovement: false +MeshIndex: -1 +Name: Custom_Model_Bag +Nickname: C3 Cyclopean Foundations +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 48 + posY: 1.25 + posZ: 23 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04.yaml index 83bfc414f..d43dfd023 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 05 Red Tide Rising f053b0.yaml' @@ -31,13 +31,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/P1%20Challenge%20Scenarios.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -65,14 +65,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 8.97 - posY: 1.08 - posZ: -73.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 56.5 + posY: 1.25 + posZ: 11 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 01 Read or Die 8994ea.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 01 Read or Die 8994ea.yaml index c27dcb1de..e47967275 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 01 Read or Die 8994ea.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 01 Read or Die 8994ea.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: P1 01 Read or Die Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 9.66 - posY: 2.86 - posZ: -72.19 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 56.9 + posY: 3.04 + posZ: 11.16 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 02 All or Nothing 8950c7.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 02 All or Nothing 8950c7.yaml index 79a5fe59f..c767562f3 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 02 All or Nothing 8950c7.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 02 All or Nothing 8950c7.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: P1 02 All or Nothing Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 9.93 - posY: 2.86 - posZ: -71.82 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 56.42 + posY: 3.04 + posZ: 12.97 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 03 Bad Blood b5fcf1.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 03 Bad Blood b5fcf1.yaml index d8b47386a..aa048815c 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 03 Bad Blood b5fcf1.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 03 Bad Blood b5fcf1.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: P1 03 Bad Blood Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 9.89 - posY: 2.86 - posZ: -72.85 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 58.34 + posY: 3.04 + posZ: 11.89 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 04 By the Book a37a83.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 04 By the Book a37a83.yaml index 6d465eb0a..045399a5d 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 04 By the Book a37a83.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 04 By the Book a37a83.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: P1 04 By the Book Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 11.12 - posY: 2.86 - posZ: -72.56 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 58.04 + posY: 3.04 + posZ: 11.82 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 05 Red Tide Rising f053b0.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 05 Red Tide Rising f053b0.yaml index cf4d57c0e..ceb531c40 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 05 Red Tide Rising f053b0.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 05 Red Tide Rising f053b0.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: P1 05 Red Tide Rising Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 8.56 - posY: 2.86 - posZ: -73.32 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 56.93 + posY: 3.04 + posZ: 10.53 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 Challenge Scenarios 409b50.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 Challenge Scenarios 409b50.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 Challenge Scenarios 409b50.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 Challenge Scenarios 409b50.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 Challenge Scenarios 409b50.yaml index 34bc98861..1fcb2150b 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 Challenge Scenarios 409b50.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 Challenge Scenarios 409b50.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF P1 Challenge Scenarios 409b50.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: P1 Challenge Scenarios Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 9.93 - posY: 2.86 - posZ: -70.77 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 55.95 + posY: 3.04 + posZ: 11.9 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Death Itself 443855.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Death Itself 443855.yaml index 609d9874b..43305dd8b 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Death Itself 443855.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Death Itself 443855.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: P1 DC Death Itself Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 10.16 - posY: 2.86 - posZ: -72.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 57.26 + posY: 3.04 + posZ: 11.84 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Then it Multiplied d72c48.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Then it Multiplied d72c48.yaml index d8f7a3425..38a33488d 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Then it Multiplied d72c48.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios 8f7e04/Custom_PDF P1 DC Then it Multiplied d72c48.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: P1 DC Then it Multiplied Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 8.45 - posY: 2.86 - posZ: -73.66 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 56.6 + posY: 3.04 + posZ: 10.86 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492.yaml new file mode 100644 index 000000000..a0b7f7d3a --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492.yaml @@ -0,0 +1,66 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +Bag: + Order: 0 +ColorDiffuse: + b: 1 + g: 1 + r: 1 +ContainedObjects: +- !include 'Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 02 Relics + of the Past 8950c7.yaml' +- !include 'Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 01 Laid to + Rest 8994ea.yaml' +CustomMesh: + CastShadows: true + ColliderURL: '' + Convex: true + CustomShader: + FresnelStrength: 0 + SpecularColor: + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 + DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/P2%20Challenge%20Scenarios.jpg?raw=true + MaterialIndex: 3 + MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true + NormalURL: '' + TypeIndex: 6 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: dcf492 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MaterialIndex: -1 +MeasureMovement: false +MeshIndex: -1 +Name: Custom_Model_Bag +Nickname: P1 Challenge Scenarios +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 56.5 + posY: 1.25 + posZ: 5 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Dunwich Legacy Campaign Guide 8e1339.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 01 Laid to Rest 8994ea.yaml similarity index 50% rename from unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Dunwich Legacy Campaign Guide 8e1339.yaml rename to unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 01 Laid to Rest 8994ea.yaml index 703b55c9b..bebc60c93 100644 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Dunwich Legacy Campaign Guide 8e1339.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 01 Laid to Rest 8994ea.yaml @@ -1,21 +1,21 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 PDFPassword: '' - PDFUrl: https://images-cdn.fantasyflightgames.com/filer_public/30/64/30640944-6e5c-4605-8406-6a1eb2e46a3f/dunwich_legacy_campaign_guide_eng.pdf -Description: '' + PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%20P2%2001%20Laid%20to%20Rest.pdf?raw=true +Description: Jim Culver DragSelectable: true GMNotes: '' -GUID: 8e1339 +GUID: 8994ea Grid: true GridProjection: false Hands: false @@ -27,19 +27,21 @@ LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF -Nickname: The Dunwich Legacy Campaign Guide +Nickname: P2 01 Laid to Rest Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 14.89 - posY: 3.58 - posZ: 40.66 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.18 - scaleY: 1.0 - scaleZ: 2.18 + posX: 56.65 + posY: 3.04 + posZ: 4.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.76 + scaleY: 1 + scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Path to Carcosa Campaign Guide ea71cc.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 02 Relics of the Past 8950c7.yaml similarity index 50% rename from unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Path to Carcosa Campaign Guide ea71cc.yaml rename to unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 02 Relics of the Past 8950c7.yaml index cf8670d7f..c0502810b 100644 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Path to Carcosa Campaign Guide ea71cc.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag P1 Challenge Scenarios dcf492/Custom_PDF P2 02 Relics of the Past 8950c7.yaml @@ -1,21 +1,21 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 PDFPassword: '' - PDFUrl: https://images-cdn.fantasyflightgames.com/filer_public/46/60/4660dc1b-9b7a-42c0-9331-687561e11151/path_to_carcosa_campaign_guide_eng.pdf -Description: '' + PDFUrl: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Dual%20Pages%20P2%2002%20Relics%20of%20the%20Past.pdf?raw=true +Description: Monteray Jack DragSelectable: true GMNotes: '' -GUID: ea71cc +GUID: 8950c7 Grid: true GridProjection: false Hands: false @@ -27,19 +27,21 @@ LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF -Nickname: The Path to Carcosa Campaign Guide +Nickname: P2 02 Relics of the Past Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 15.58 - posY: 3.58 - posZ: 41.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.18 - scaleY: 1.0 - scaleZ: 2.18 + posX: 55.59 + posY: 3.04 + posZ: 3.22 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.76 + scaleY: 1 + scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad.yaml index 4800a1ede..b205dbd47 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 06 The Blob that Ate Everything 6ad284.yaml' @@ -29,13 +29,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/S1%202016-2020.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -63,14 +63,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 16.97 - posY: 1.06 - posZ: -85.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 56.5 + posY: 1.25 + posZ: 35 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S01 02 Carinvale of Horrors 538f32.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S01 02 Carinvale of Horrors 538f32.yaml index df3f2f004..8ef32558b 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S01 02 Carinvale of Horrors 538f32.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S01 02 Carinvale of Horrors 538f32.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S01 02 Carinvale of Horrors Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 9.31 - posY: 2.51 - posZ: -1.4 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 58.34 + posY: 3.04 + posZ: 37.61 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 01 Curse of the Rougarou 39bf7c.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 01 Curse of the Rougarou 39bf7c.yaml index 8a8ea49fa..964f07ab9 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 01 Curse of the Rougarou 39bf7c.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 01 Curse of the Rougarou 39bf7c.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S1 01 Curse of the Rougarou Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 8.76 - posY: 2.79 - posZ: -0.99 - rotX: 5.0 - rotY: 270.0 - rotZ: 0.0 + posX: 59.5 + posY: 3.04 + posZ: 38.6 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 03 The Labyrinths of Lunacy d014ce.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 03 The Labyrinths of Lunacy d014ce.yaml index f09a11abe..547b47735 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 03 The Labyrinths of Lunacy d014ce.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 03 The Labyrinths of Lunacy d014ce.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S1 03 The Labyrinths of Lunacy Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 6.48 - posY: 2.51 - posZ: -0.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 58.24 + posY: 3.04 + posZ: 35.68 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 04 Guardians of the Abyss 6611a9.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 04 Guardians of the Abyss 6611a9.yaml index df1999c45..58a105544 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 04 Guardians of the Abyss 6611a9.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 04 Guardians of the Abyss 6611a9.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S1 04 Guardians of the Abyss Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 7.32 - posY: 2.66 - posZ: -1.47 - rotX: 3.0 - rotY: 270.0 - rotZ: 0.0 + posX: 59.32 + posY: 3.04 + posZ: 38.13 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 05 Murder at the Excelsior Hotel b13297.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 05 Murder at the Excelsior Hotel b13297.yaml index 8b1668fc7..56c69f66b 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 05 Murder at the Excelsior Hotel b13297.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 05 Murder at the Excelsior Hotel b13297.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S1 05 Murder at the Excelsior Hotel Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 8.41 - posY: 2.59 - posZ: -0.94 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 + posX: 57.92 + posY: 3.04 + posZ: 37.36 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 06 The Blob that Ate Everything 6ad284.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 06 The Blob that Ate Everything 6ad284.yaml index f12ba7f49..3d1bff466 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 06 The Blob that Ate Everything 6ad284.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 06 The Blob that Ate Everything 6ad284.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S1 06 The Blob that Ate Everything Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 7.82 - posY: 2.65 - posZ: 0.8 - rotX: 0.0 - rotY: 270.0 - rotZ: 2.0 + posX: 56.81 + posY: 3.04 + posZ: 36.98 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.ttslua new file mode 100644 index 000000000..ae329750f --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.ttslua @@ -0,0 +1,53 @@ +function onLoad() + self.createInput({ + input_function = "jumpToPage", + function_owner = self, + label = "jump to page", + alignment = 3, + position = Vector(-1.6,0.1,-2.2), + rotation = Vector(0,0,0), + scale = Vector(0.5,0.5,0.5), + width = 2000, + height = 300, + font_size = 250, + font_color = {0.95,0.95,0.95,0.9}, + color = {0.3,0.3,0.3,0.6}, + tooltip = "Type which page you wish to jump to, then click off", + value = "", + validation = 1, + tab = 1, + }) +end + +function jumpToPage(_, _, inputValue, stillEditing) + if inputValue == "" or inputValue == nil then return end -- do nothing if input is empty + + if not stillEditing then -- jump to page if not selecting the textbox anymore + jump((tonumber(inputValue) + 2)/2) + return + elseif string.find(inputValue, "%\n") ~= nil then -- jump to page if enter is pressed + inputValue = inputValue.gsub(inputValue, "%\n", "") + jump((tonumber(inputValue) + 2)/2) + return + end + + if (tonumber(inputValue:sub(-1)) == nil) then -- check and remove non numeric character + Wait.time(function() + self.editInput({ + index = 0, + value = inputValue:sub(1,-2) + }) + end, 0.01) + return + end +end + +function jump(page) + self.Book.setPage(page - 1) -- offset since 0 index + Wait.time(function() -- clear page search + self.editInput({ + index = 0, + value = "", + }) + end, 0.01) +end \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.yaml index a6f23b289..816987e12 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S1 Stand-Alones 2016-2020 e227ad/Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -23,23 +23,25 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: '' +LuaScript: !include 'Custom_PDF S1 Stand-Alone Scenarios 2016-2020 00a430.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_PDF Nickname: S1 Stand-Alone Scenarios 2016-2020 Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 7.13 - posY: 2.51 - posZ: 0.02 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 57.75 + posY: 3.04 + posZ: 37.91 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8.yaml index 4b96af42d..96a99828b 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 10 Fortune and Folly e19e46.yaml' @@ -23,13 +23,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/S2%202020-202.jpg?raw=true MaterialIndex: 3 MeshURL: https://github.com/Antimarkovnikov/TTS_AHC_CYOA/blob/master/Book%20Model.obj?raw=true @@ -57,14 +57,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 16.97 - posY: 1.06 - posZ: -91.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: 56.5 + posY: 1.25 + posZ: 29 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 07 Barkham Horror 409b50.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 07 Barkham Horror 409b50.yaml index d03281f83..0d589e68c 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 07 Barkham Horror 409b50.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 07 Barkham Horror 409b50.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S2 07 Barkham Horror Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 16.58 - posY: 2.85 - posZ: -90.92 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 57.28 + posY: 3.04 + posZ: 27.32 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 08 War of the Outer Gods bffa04.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 08 War of the Outer Gods bffa04.yaml index 77a97b35d..6736e253c 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 08 War of the Outer Gods bffa04.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 08 War of the Outer Gods bffa04.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S2 08 War of the Outer Gods Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: -15.98 - posY: 2.51 - posZ: -13.36 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 58.22 + posY: 3.04 + posZ: 27.81 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 09 Machinations Through Time f5dbf1.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 09 Machinations Through Time f5dbf1.yaml index 7c866a146..bfa06d3f4 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 09 Machinations Through Time f5dbf1.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 09 Machinations Through Time f5dbf1.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S2 09 Machinations Through Time Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: -15.36 - posY: 2.51 - posZ: -15.28 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 57.54 + posY: 3.04 + posZ: 27.5 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 10 Fortune and Folly e19e46.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 10 Fortune and Folly e19e46.yaml index 56a1b1854..4ac498372 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 10 Fortune and Folly e19e46.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Custom_Model_Bag S2 Stand-Alones 2020-202 4c47d8/Custom_PDF S2 10 Fortune and Folly e19e46.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -30,16 +30,18 @@ Name: Custom_PDF Nickname: S2 10 Fortune and Folly Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: - posX: 17.32 - posY: 2.85 - posZ: -92.94 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 55.41 + posY: 3.04 + posZ: 27.01 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.76 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Return to Expansions 2275ed.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Return to Expansions 2275ed.yaml index 5c26d060d..5df6f993d 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Return to Expansions 2275ed.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Return to Expansions 2275ed.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: "When playing with the Return to Versions of the CYOA guides you will need to use the Return to setup card avaliable above the scenario card to modify the original setup of the game.\r\n\r\nEither version can be used to play a Standard @@ -31,12 +31,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 29.34 - posY: 1.37 - posZ: -65.81 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + posX: 50 + posY: 1.57 + posZ: -26 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 1.25 scaleY: 1.25 scaleZ: 1.25 diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Updating to New Versions a1b358.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Updating to New Versions a1b358.yaml new file mode 100644 index 000000000..2375483be --- /dev/null +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Model_Bag CYOA Campaign Guides e87ea2/Notecard Updating to New Versions a1b358.yaml @@ -0,0 +1,43 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +Description: "To Update to the latest version of my campaign guides and their respective + covers. On windows go to...\r\nC:\\Users\\[USERNAME]\\Documents\\My Games\\Tabletop + Simulator\\Mods\\PDF\r\nAnd search for httpsgithubcomAntimarkovnikov and delete + all files find with that in the filename and reload the MOD." +DragSelectable: true +GMNotes: '' +GUID: a1b358 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Notecard +Nickname: Updating to New Versions +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 44 + posY: 1.57 + posZ: -26 + rotX: 0 + rotY: 90 + rotZ: 0 + scaleX: 1.25 + scaleY: 1.25 + scaleZ: 1.25 +Value: 0 +XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.ttslua index a8aa88960..d18b081d8 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.ttslua +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.ttslua @@ -41,6 +41,74 @@ 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("accessories/HandHelper") end) @@ -164,219 +232,321 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.yaml index e76e454b8..4915bb8c9 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Hand Helper 450688.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1704036721123215146/E44A3B99EACF310E49E94977151A03C9A3DC7F17/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1704036721123215146/E44A3B99EACF310E49E94977151A03C9A3DC7F17/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Displays the hand size (total or by title for "Dream Enhancing Serum"), hover over it to briefly toggle counting method. @@ -47,11 +47,11 @@ Transform: posX: 37.61 posY: 2.21 posZ: -51.97 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.ttslua index 788bc077d..1ba1e0adc 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.ttslua +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.ttslua @@ -41,231 +41,57 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local GUIDReferenceApi = {} - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end - else - if startPos.z > 0 then - return "Green" - else - return "Red" - end - end + local function getGuidHandler() + return getObjectFromGUID("123456") end - -- Returns the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type) + return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) end - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" + -- returns all matching objects as a table with references + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectsByType = function(type) + return getGuidHandler().call("getObjectsByType", type) end - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + GUIDReferenceApi.getObjectsByOwner = function(owner) + return getGuidHandler().call("getObjectsByOwner", owner) end - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat - PlaymatApi.isDES = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + -- 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 draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") - end - - -- Returns the position of the discard pile of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") - end - - -- Transforms a local position into a global position - ---@param localPos Table Local position to be transformed - ---@param matColor String Color of the playermat - PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) - end - - -- Returns the rotation of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() - end - - -- Triggers the Upkeep for the requested playmat - ---@param matColor String Color of the playermat - ---@param playerColor String Color of the calling player (for messages) - PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", playerColor) - end - - -- Returns the active investigator id - ---@param matColor String Color of the playermat - PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") - end - - -- Sets the requested playermat'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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("setLimitSnapsByType", matchCardTypes) - end - end - - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("showDrawButton", isDrawButtonVisible) - end - end - - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.clickableClues = function(showCounter, matColor) - for _, mat in ipairs(internal.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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.removeClues = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("removeClues") - end - end - - -- Reports the clue count for the requested playermat - ---@param useClickableCounters Boolean Controls which type of counter is getting checked - PlaymatApi.getClueCount = function(useClickableCounters, matColor) - local count = 0 - for _, mat in ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) - end - return count - end - - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) - end - end - - -- Discard a non-hidden card from the corresponding player's hand - PlaymatApi.doDiscardOne = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("doDiscardOne") - end - end - - PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do - mat.call("syncAllCustomizableCards") - end - end - - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - - return PlaymatApi + return GUIDReferenceApi end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("accessories/SearchAssistant") end) __bundle_register("accessories/SearchAssistant", function(require, _LOADED, __bundle_register, __bundle_modules) +local searchLib = require("util/SearchLib") local playmatApi = require("playermat/PlaymatApi") -- forward declaration of variables that are used across functions -local matColor, handColor, setAsidePosition, setAsideRotation, drawDeckPosition +local matColor, handColor, setAsidePosition, setAsideRotation, drawDeckPosition, topCardDetected local quickParameters = {} quickParameters.function_owner = self @@ -365,15 +191,18 @@ end function startSearch(messageColor, number) matColor = playmatApi.getMatColorByPosition(self.getPosition()) handColor = playmatApi.getPlayerColor(matColor) + topCardDetected = false -- get draw deck - local drawDeck = playmatApi.getDrawDeck(matColor) - if drawDeck == nil then + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + if deckAreaObjects.draw == nil then printToColor(matColor .. " draw deck could not be found!", messageColor, "Red") return end - drawDeckPosition = drawDeck.getPosition() + -- get bounds to know the height of the deck + local bounds = deckAreaObjects.draw.getBounds() + drawDeckPosition = bounds.center + Vector(0, bounds.size.y / 2 + 0.2, 0) printToColor("Place target(s) of search on set aside hand.", messageColor, "Green") -- get playmat orientation @@ -388,23 +217,26 @@ function startSearch(messageColor, number) setAsidePosition = handData.position + offset * handData.right setAsideRotation = { handData.rotation.x, handData.rotation.y + 180, 180 } + -- set y-value + setAsidePosition.y = 1.5 + for i = #handCards, 1, -1 do - handCards[i].setPosition(setAsidePosition - Vector(0, i * 0.3, 0)) + handCards[i].setPosition(setAsidePosition + Vector(0, (#handCards - i) * 0.1, 0)) handCards[i].setRotation(setAsideRotation) end -- handling for Norman Withers - for _, v in ipairs(searchArea(drawDeckPosition)) do - local object = v.hit_object - if object.tag == "Card" and not object.is_face_down then - object.flip() - Wait.time(function() drawDeck = playmatApi.getDrawDeck(matColor) end, 1) - break - end + if deckAreaObjects.topCard then + deckAreaObjects.topCard.flip() + topCardDetected = true end - Wait.time(function() drawDeck.deal(number, handColor) end, 1) searchView() + + Wait.time(function() + deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + deckAreaObjects.draw.deal(number, handColor) + end, 1) end -- place handCards back into deck and optionally shuffle @@ -412,46 +244,381 @@ function endSearch(_, _, isRightClick) local handCards = Player[handColor].getHandObjects() for i = #handCards, 1, -1 do - handCards[i].setPosition(drawDeckPosition + Vector(0, 6 - i * 0.3, 0)) + handCards[i].setPosition(drawDeckPosition + Vector(0, (#handCards - i) * 0.1, 0)) handCards[i].setRotation(setAsideRotation) end - if not isRightClick then - Wait.time(function() - local deck = playmatApi.getDrawDeck(matColor) - if deck ~= nil then - deck.shuffle() - end - end, 2) - end - -- draw set aside cards (from the ground!) - for _, v in ipairs(searchArea(setAsidePosition - Vector(0, 5, 0))) do - local obj = v.hit_object - if obj.tag == "Deck" then - Wait.time(function() - obj.deal(#obj.getObjects(), handColor) - end, 1) - break - elseif obj.tag == "Card" then + for _, obj in ipairs(searchLib.atPosition(setAsidePosition, "isCardOrDeck")) do + if obj.type == "Deck" then + Wait.time(function() obj.deal(#obj.getObjects(), handColor) end, 1) + elseif obj.type == "Card" then obj.setPosition(Player[handColor].getHandTransform().position) obj.flip() - break end end normalView() -end --- utility function -function searchArea(position) - return Physics.cast({ - origin = position, - direction = { 0, 1, 0 }, - type = 3, - size = { 2, 2, 2 }, - max_distance = 0 - }) + -- delay is to wait for cards to enter deck + if not isRightClick then + Wait.time(function() + local deckAreaObjects = playmatApi.getDeckAreaObjects(matColor) + if deckAreaObjects.draw then + deckAreaObjects.draw.shuffle() + end + end, #handCards * 0.1) + end + + -- Norman Withers handling + if topCardDetected then + Wait.time(function() playmatApi.flipTopCardFromDeck(matColor) end, #handCards * 0.1) + end +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.yaml index 676f14318..fe7c851f1 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Tile Search Assistant 17aed0.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1838053776205435595/ECFB88938ADBD1EF7AEF713111A11330FD9FAA5A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1838053776205435595/ECFB88938ADBD1EF7AEF713111A11330FD9FAA5A/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Searches the top X cards of the nearest playmat by setting your hand aside and putting the cards into your hand. @@ -47,11 +47,11 @@ Transform: posX: 29.25 posY: 8.4 posZ: -27.09 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.ttslua index 1f014627e..9fa6e42fd 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.ttslua +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.ttslua @@ -44,11 +44,15 @@ end)(nil) __bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + 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 = getObjectFromGUID(MANAGER_GUID) + 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) @@ -56,73 +60,167 @@ do -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + getManager().call("sealedToken", { type = type, guid = guid }) end -- updates the internal count (called by cards that seal bless/curse tokens) BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + getManager().call("releasedToken", { type = type, guid = guid }) + end + + -- updates the internal count (called by cards that seal bless/curse tokens) + 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + getManager().call("doRemove", playerColor) end - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + -- adds bless / curse sealing to the hovered card + ---@param playerColor String Color of the player to show the broadcast to + ---@param hoveredObject TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end return BlessCurseManagerApi end end) -__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local ChaosBagApi = {} + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - -- respawns the chaos bag with a new state of tokens - ---@param tokenList Table List of chaos token ids - ChaosBagApi.setChaosBagState = function(tokenList) - return Global.call("setChaosBagState", tokenList) + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") end - -- returns a Table List of chaos token ids in the current chaos bag - -- requires copying the data into a new table because TTS is weird about handling table return values in Global - ChaosBagApi.getChaosBagState = function() - local chaosBagContentsCatcher = Global.call("getChaosBagState") - local chaosBagContents = {} - for _, v in ipairs(chaosBagContentsCatcher) do - table.insert(chaosBagContents, v) - end - return chaosBagContents + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") end - -- checks scripting zone for chaos bag (also called by a lot of objects!) - ChaosBagApi.findChaosBag = function() - return Global.call("findChaosBag") + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") end - -- returns all sealed tokens on cards to the chaos bag - ChaosBagApi.releaseAllSealedTokens = function(playerColor) - return Global.call("releaseAllSealedTokens", playerColor) + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) end - return ChaosBagApi + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi end end) __bundle_register("core/SoundCubeApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local SoundCubeApi = {} - local internal = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- this table links the name of a trigger effect to its index local soundIndices = { @@ -131,14 +229,15 @@ do ["Dark Souls"] = 2 } - internal.playTriggerEffect = function(index) - getObjectsWithTag("SoundCube")[1].AssetBundle.playTriggerEffect(index) + local function playTriggerEffect(index) + local SoundCube = guidReferenceApi.getObjectByOwnerAndType("Mythos", "SoundCube") + SoundCube.AssetBundle.playTriggerEffect(index) end -- plays the by name requested sound ---@param soundName String Name of the sound to play SoundCubeApi.playSoundByName = function(soundName) - internal.playTriggerEffect(soundIndices[soundName]) + playTriggerEffect(soundIndices[soundName]) end return SoundCubeApi @@ -146,327 +245,133 @@ end end) __bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenSpawnTracker = { } + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local SPAWN_TRACKER_GUID = "e3ffc9" + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) end TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) end TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) end TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") + return getSpawnTracker().call("resetAllAssetAndEvents") end TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") + return getSpawnTracker().call("resetAllLocations") end TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") + return getSpawnTracker().call("resetAll") end return TokenSpawnTracker end end) -__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } - - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" + 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 CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } + -- performs the actual search and returns a filtered list of object references + ---@param pos Table Global position + ---@param rot Table 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) + if filter then filter = 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 + }) - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end - else - if startPos.z > 0 then - return "Green" - else - return "Red" + -- filtering the result + local objList = {} + for _, v in ipairs(searchResult) do + if not filter or filter(v.hit_object) then + table.insert(objList, v.hit_object) end end + return objList end - -- Returns the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") + -- searches the specified area + SearchLib.inArea = function(pos, rot, size, filter) + return returnSearchResult(pos, rot, size, filter) end - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" + -- 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 - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") + -- searches the specified position (a single point) + SearchLib.atPosition = function(pos, filter) + size = { 0.1, 2, 0.1 } + return returnSearchResult(pos, _, size, filter) end - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat - PlaymatApi.isDES = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + -- 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 - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") - end - - -- Returns the position of the discard pile of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") - end - - -- Transforms a local position into a global position - ---@param localPos Table Local position to be transformed - ---@param matColor String Color of the playermat - PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) - end - - -- Returns the rotation of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() - end - - -- Triggers the Upkeep for the requested playmat - ---@param matColor String Color of the playermat - ---@param playerColor String Color of the calling player (for messages) - PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", playerColor) - end - - -- Returns the active investigator id - ---@param matColor String Color of the playermat - PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") - end - - -- Sets the requested playermat'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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("setLimitSnapsByType", matchCardTypes) - end - end - - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("showDrawButton", isDrawButtonVisible) - end - end - - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.clickableClues = function(showCounter, matColor) - for _, mat in ipairs(internal.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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. - PlaymatApi.removeClues = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("removeClues") - end - end - - -- Reports the clue count for the requested playermat - ---@param useClickableCounters Boolean Controls which type of counter is getting checked - PlaymatApi.getClueCount = function(useClickableCounters, matColor) - local count = 0 - for _, mat in ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) - end - return count - end - - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) - end - end - - -- Discard a non-hidden card from the corresponding player's hand - PlaymatApi.doDiscardOne = function(matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("doDiscardOne") - end - end - - PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do - mat.call("syncAllCustomizableCards") - end - end - - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - - return PlaymatApi + return SearchLib end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("accessories/CleanUpHelper") -end) __bundle_register("accessories/CleanUpHelper", function(require, _LOADED, __bundle_register, __bundle_modules) ---[[ -Cleans up the table for the next scenario in a campaign: +--[[ Cleans up the table for the next scenario in a campaign: - sets counters to default values (resources and doom) or trauma values (health and sanity, if not disabled) from campaign log - puts everything on playmats and hands into respective trashcans - use the IGNORE_TAG to exclude objects from tidying (default: "CleanUpHelper_Ignore")]] -local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") -local soundCubeApi = require("core/SoundCubeApi") -local playmatApi = require("playermat/PlaymatApi") -local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") -local chaosBagApi = require("chaosbag/ChaosBagApi") --- these objects will be ignored -local IGNORE_GUIDS = { - -- big playmat, change image panel and investigator counter - "b7b45b", "f182ee", "721ba2", - -- bless/curse manager - "afa06b", "bd0253", "5933fb", - -- stuff on agenda/act playmat - "85c4c6", "4a3aa4", "fea079", "b015d8", "11e0cf", "9f334f", "70b9f6", "0a5a29", - -- doom/location token bag - "47ffc3", "170f10", - -- table - "4ee1f2" -} +local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") +local guidReferenceApi = require("core/GUIDReferenceApi") +local playAreaApi = require("core/PlayAreaApi") +local playmatApi = require("playermat/PlaymatApi") +local searchLib = require("util/SearchLib") +local soundCubeApi = require("core/SoundCubeApi") +local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") -- objects with this tag will be ignored local IGNORE_TAG = "CleanUpHelper_ignore" -- colors and order for following tables -local COLORS = { "White", "Orange", "Green", "Red", "Agenda" } - --- counter GUIDS (4x damage and 4x horror) -local DAMAGE_HORROR_GUIDS = { - "eb08d6", "e64eec", "1f5a0a", "591a45", - "468e88", "0257d9", "7b5729", "beb964", -} - +local COLORS = { "White", "Orange", "Green", "Red", "Mythos" } +local campaignLog local RESET_VALUES = {} - --- GUIDS of objects (in order of ownership relating to 'COLORS') -local PLAYERMAT_GUIDS = { "8b081b", "bd0ff4", "383d8b", "0840d5" } -local RESOURCE_GUIDS = { "4406f0", "816d84", "cd15ac", "a4b60d" } -local TRACKER_GUIDS = { "e598c2", "b4a5f7", "af7ed7", "e74881" } -local CLUE_GUIDS = { "d86b7c", "1769ed", "032300", "37be78" } -local CLUE_CLICKER_GUIDS = { "db85d6", "3f22e5", "891403", "4111de" } -local TRASHCAN_GUIDS = { "147e80", "f7b6c8", "5f896a", "4b8594", "70b9f6" } - --- values for physics.cast (4 entries for player zones, 5th entry for agenda/act deck, 6th for campaign log) -local PHYSICS_POSITION = { - { -54.5, 2, 21 }, - { -54.5, 2, -21 }, - { -27.0, 2, 26 }, - { -27.0, 2, -26 }, - { -02.0, 2, 10 }, - { -00.0, 2, -27 } -} - -local PHYSICS_ROTATION = { 270, 270, 0, 180, 270, 0 } - -local PHYSICS_SCALE = { - { 36.6, 1, 14.5 }, - { 36.6, 1, 14.5 }, - { 34.0, 1, 14.5 }, - { 34.0, 1, 14.5 }, - { 55.0, 1, 13.5 }, - { 05.0, 1, 05.0 } -} - +local loadingFailedBefore = false local optionsVisible = false + local options = {} options["importTrauma"] = true options["tidyPlayermats"] = true @@ -475,6 +380,7 @@ options["removeDrawnLines"] = false local buttonParameters = {} buttonParameters.function_owner = self + --------------------------------------------------------- -- option loading and GUI setup --------------------------------------------------------- @@ -520,14 +426,6 @@ function onLoad(savedData) buttonParameters.position.z = 1.1 buttonParameters.width = 1550 self.createButton(buttonParameters) - - -- create single table for ignoring - for _, v in ipairs(CLUE_GUIDS) do table.insert(IGNORE_GUIDS, v) end - for _, v in ipairs(CLUE_CLICKER_GUIDS) do table.insert(IGNORE_GUIDS, v) end - for _, v in ipairs(RESOURCE_GUIDS) do table.insert(IGNORE_GUIDS, v) end - for _, v in ipairs(TRASHCAN_GUIDS) do table.insert(IGNORE_GUIDS, v) end - for _, v in ipairs(PLAYERMAT_GUIDS) do table.insert(IGNORE_GUIDS, v) end - for _, v in ipairs(DAMAGE_HORROR_GUIDS) do table.insert(IGNORE_GUIDS, v) end end --------------------------------------------------------- @@ -565,15 +463,15 @@ function cleanUp(_, color) soundCubeApi.playSoundByName("Vacuum") ignoreCustomDataHelper() getTrauma() - updateCounters(DAMAGE_HORROR_GUIDS, RESET_VALUES, "Damage / Horror") - updateCounters(RESOURCE_GUIDS, 5, "Resources") - updateCounters(CLUE_CLICKER_GUIDS, 0, "Clue clickers") - resetSkillTrackers() + + -- delay to account for potential state change + Wait.time(updateCounters, 0.2) + resetDoomCounter() blessCurseManagerApi.removeAll(color) removeLines() discardHands() - tokenSpawnTrackerApi.resetAll() + chaosBagApi.returnChaosTokens() chaosBagApi.releaseAllSealedTokens(color) printToAll("Tidying main play area...", "White") @@ -584,62 +482,40 @@ end -- modular functions, called by other functions --------------------------------------------------------- -function updateCounters(tableOfGUIDs, tableOfNewValues, info) - if tonumber(tableOfNewValues) then - local value = tableOfNewValues - tableOfNewValues = {} - for i = 1, #tableOfGUIDs do - table.insert(tableOfNewValues, value) - end - end +function updateCounters() + playmatApi.updateCounter("All", "ResourceCounter" , 5) + playmatApi.updateCounter("All", "ClickableClueCounter" , 0) + playmatApi.resetSkillTracker("All") - for i, guid in ipairs(tableOfGUIDs) do - local TOKEN = getObjectFromGUID(guid) - - if TOKEN ~= nil then - TOKEN.call("updateVal", tableOfNewValues[i]) - else - printToAll(info .. ": No. " .. i .. " could not be found.", "Yellow") - end - end -end - --- set investigator skill trackers to "1, 1, 1, 1" -function resetSkillTrackers() - for i, guid in ipairs(TRACKER_GUIDS) do - local obj = getObjectFromGUID(guid) - - if obj ~= nil then - obj.call("updateStats", { 1, 1, 1, 1 }) - else - printToAll("Skill tracker for " .. COLORS[i] .. " playmat could not be found.", "Yellow") - end + for i = 1, 4 do + playmatApi.updateCounter(COLORS[i], "DamageCounter", RESET_VALUES.Damage[i]) + playmatApi.updateCounter(COLORS[i], "HorrorCounter", RESET_VALUES.Horror[i]) end end -- reset doom on agenda function resetDoomCounter() - local doomcounter = getObjectFromGUID("85c4c6") - - if doomcounter ~= nil then - doomcounter.call("updateVal") + local doomCounter = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DoomCounter") + if doomCounter ~= nil then + doomCounter.call("updateVal") else printToAll("Doom counter could not be found.", "Yellow") end end --- gets the GUID of a custom data helper (if present) and adds it to the ignore list +-- adds the ignore tag to the custom data helper function ignoreCustomDataHelper() - local playArea = getObjectFromGUID("721ba2") - local customDataHelper = playArea.getVar("customDataHelper") - if customDataHelper then table.insert(IGNORE_GUIDS, customDataHelper.getGUID()) end + local customDataHelper = playAreaApi.getCustomDataHelper() + if customDataHelper then + customDataHelper.addTag(IGNORE_TAG) + end end -- read values for trauma from campaign log if enabled function getTrauma() RESET_VALUES = { - 0, 0, 0, 0, - 0, 0, 0, 0 + Damage = { 0, 0, 0, 0 }, + Horror = { 0, 0, 0, 0 } } -- stop here if trauma import is disabled @@ -649,31 +525,53 @@ function getTrauma() end -- get campaign log - local campaignLog = findObjects(6)[1] + campaignLog = getObjectsWithTag("CampaignLog")[1] if campaignLog == nil then printToAll("Campaign log not found in standard position!", "Yellow") printToAll("Default values for health and sanity loaded.", "Yellow") return end + loadTrauma() +end - -- get data from campaign log if possible - local counterData = campaignLog.hit_object.getVar("ref_buttonData") - if counterData ~= nil then +-- gets data from campaign log if possible +function loadTrauma() + -- check if "returnTrauma" function exists to avoid calling nil + local trauma = campaignLog.getVar("returnTrauma") + + if trauma ~= nil then printToAll("Trauma values found in campaign log!", "Green") - for i = 1, 10, 3 do - RESET_VALUES[1 + (i - 1) / 3] = counterData.counter[i].value - RESET_VALUES[5 + (i - 1) / 3] = counterData.counter[i + 1].value + trauma = campaignLog.call("returnTrauma") + for i = 1, 8 do + if i < 5 then + RESET_VALUES.Damage[i] = trauma[i] + else + RESET_VALUES.Horror[i-4] = trauma[i] + end end - else + loadingFailedBefore = false + elseif loadingFailedBefore then printToAll("Trauma values could not be found in campaign log!", "Yellow") printToAll("Default values for health and sanity loaded.", "Yellow") + loadingFailedBefore = false + else + -- set campaign log to first state + local stateId = campaignLog.getStateId() + + if stateId ~= 1 then + campaignLog = campaignLog.setState(1) + end + loadingFailedBefore = true + + -- small delay to account for potential state change + Wait.time(loadTrauma, 0.1) end end -- remove drawn lines function removeLines() if options["removeDrawnLines"] then - printToAll("Removing vector lines...", "White") + printToAll("Removing global vector lines...", "White") Global.setVectorLines({}) end end @@ -682,40 +580,45 @@ end function discardHands() if not options["tidyPlayermats"] then return end for i = 1, 4 do - local trashcan = getObjectFromGUID(TRASHCAN_GUIDS[i]) - if trashcan == nil then return end + local trash = guidReferenceApi.getObjectByOwnerAndType(COLORS[i], "Trash") + if trash == nil then return end local hand = Player[playmatApi.getPlayerColor(COLORS[i])].getHandObjects() for j = #hand, 1, -1 do - trashcan.putObject(hand[j]) + trash.putObject(hand[j]) end end end -- clean up for play area function tidyPlayareaCoroutine() - local trashcan = getObjectFromGUID(TRASHCAN_GUIDS[5]) - local PLAYMATZONE = getObjectFromGUID("a2f932") + local trash = guidReferenceApi.getObjectByOwnerAndType("Mythos", "Trash") + local playAreaZone = guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayAreaZone") - if PLAYMATZONE == nil then + -- reset the playarea image by not providing an image + playAreaApi.updateSurface() + + if playAreaZone == nil then printToAll("Scripting zone for main play area could not be found!", "Red") - elseif trashcan == nil then + elseif trash == nil then printToAll("Trashcan for main play area could not be found!", "Red") else - for _, obj in ipairs(PLAYMATZONE.getObjects()) do + for _, obj in ipairs(playAreaZone.getObjects()) do -- ignore these elements - if not tableContains(IGNORE_GUIDS, obj.getGUID()) and obj.hasTag(IGNORE_TAG) == false then + if obj.hasTag(IGNORE_TAG) == false + and obj.locked == false + and obj.interactable == true then coroutine.yield(0) - trashcan.putObject(obj) + trash.putObject(obj) end end end - printToAll("Tidying playermats and agenda mat...", "White") + printToAll("Tidying playermats and mythos area...", "White") startLuaCoroutine(self, "tidyPlayerMatCoroutine") return 1 end --- clean up for the four playermats and the agenda/act playmat +-- clean up for the four playermats and the mythos area function tidyPlayerMatCoroutine() for i = 1, 5 do -- only continue for playermat (1-4) if option enabled @@ -723,32 +626,40 @@ function tidyPlayerMatCoroutine() -- delay for animation purpose for k = 1, 30 do coroutine.yield(0) end - -- get respective trashcan - local trashcan = getObjectFromGUID(TRASHCAN_GUIDS[i]) - if trashcan == nil then + -- get respective trash + local trash = guidReferenceApi.getObjectByOwnerAndType(COLORS[i], "Trash") + if trash == nil then printToAll("Trashcan for " .. COLORS[i] .. " playmat could not be found!", "Red") - return 1 + break end - for _, entry in ipairs(findObjects(i)) do - local obj = entry.hit_object - local desc_low = string.lower(obj.getDescription()) + local objList + if i < 5 then + objList = playmatApi.searchAroundPlaymat(COLORS[i]) + else + -- Victory Display + Mythos Area + objList = searchLib.inArea({ -2, 2, 10 }, { 0, 270, 0 }, { 55, 1, 13.5 }) + end + for _, obj in ipairs(objList) do -- ignore these elements - if not tableContains(IGNORE_GUIDS, obj.getGUID()) and obj.hasTag(IGNORE_TAG) == false and - desc_low ~= "chaos bag" and desc_low ~= "action token" then + if obj.hasTag(IGNORE_TAG) == false + and obj.getDescription() ~= "Action Token" + and obj.hasTag("chaosBag") == false + and obj.locked == false + and obj.interactable == true then coroutine.yield(0) - trashcan.putObject(obj) + trash.putObject(obj) - -- flip action tokens back to ready - elseif desc_low == "action token" and obj.is_face_down then + -- flip action tokens back to ready + elseif obj.getDescription() == "Action Token" and obj.is_face_down then obj.flip() end end -- reset "activeInvestigatorId" if i < 5 then - local playermat = getObjectFromGUID(PLAYERMAT_GUIDS[i]) + local playermat = guidReferenceApi.getObjectByOwnerAndType(COLORS[i], "Playermat") if playermat then playermat.setVar("activeInvestigatorId", "00000") end @@ -756,7 +667,9 @@ function tidyPlayerMatCoroutine() end end - local datahelper = getObjectFromGUID("708279") + -- reset spawned data + tokenSpawnTrackerApi.resetAll() + local datahelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") if datahelper then datahelper.setTable("SPAWNED_PLAYER_CARD_GUIDS", {}) end @@ -764,32 +677,409 @@ function tidyPlayerMatCoroutine() printToAll("Clean up completed!", "Green") return 1 end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} ---------------------------------------------------------- --- helper functions ---------------------------------------------------------- - --- find objects depending on index (1 to 4 for playermats, 5 for agenda/act playmat, 6 for campaign log) -function findObjects(num) - return Physics.cast({ - direction = { 0, 1, 0 }, - max_distance = 1, - type = 3, - size = PHYSICS_SCALE[num], - origin = PHYSICS_POSITION[num], - orientation = { 0, PHYSICS_ROTATION[num], 0 }, - debug = false - }) -end - --- search a table for a value, return true if found (else returns false) -function tableContains(table, value) - for _, v in ipairs(table) do - if v == value then - return true - end + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) end - return false + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +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 array 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("accessories/CleanUpHelper") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.xml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.xml index c16a8e3f2..abb9d9ab7 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.xml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.xml @@ -1,3 +1,4 @@ + @@ -67,4 +68,5 @@ - \ No newline at end of file + + \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.yaml index 1e9c20802..0efdf70e8 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Clean Up Helper 26cf4b.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1850441528393599634/FA79B99F5544D16D38DCC8A26F1CEB3E7D9FED17/ - WidthScale: 0.0 + WidthScale: 0 CustomUIAssets: - Name: font_teutonic-arkham Type: 1 @@ -56,11 +56,11 @@ Transform: posX: 30.96 posY: 4.13 posZ: -20.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.5 Value: 0 XmlUI: !include 'Custom_Token Clean Up Helper 26cf4b.xml' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Custom Playmat Images 004fe7.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Custom Playmat Images 004fe7.ttslua deleted file mode 100644 index f118e2680..000000000 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Custom Playmat Images 004fe7.ttslua +++ /dev/null @@ -1,868 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("accessories/CustomPlaymatImages", function(require, _LOADED, __bundle_register, __bundle_modules) -local DATA = { - ["Arkham Locations"] = { { - Name = "Downtown 1", - URL = "https://i.ibb.co/FzRk98n/Arkham-Downtown-Cristi-Balanescu.jpg" - }, { - Name = "Downtown 2", - URL = "https://i.ibb.co/W2yJ5QZ/Arkham-Downtown-Jokubas-Uogintas.jpg" - }, { - Name = "Eastside 1", - URL = "https://i.ibb.co/W3QvdZW/Arkham-Eastside-Cristi-Balanescu.jpg" - }, { - Name = "Eastside 2", - URL = "https://i.ibb.co/xfn1Fp8/Arkham-Eastside-Jokubas-Uogintas.jpg" - }, { - Name = "French Hill", - URL = "https://i.ibb.co/N7Lk7jc/Arkham-French-Hill-Cristi-Balanescu.jpg" - }, { - Name = "Merchant District", - URL = "https://i.ibb.co/HTNCCq4/Arkham-Merchant-District-Jokubas-Uogintas.jpg" - }, { - Name = "Generic 1", - URL = "https://i.ibb.co/hswfZD6/Arkham-Guillem-H-Pongiluppi.jpg" - }, { - Name = "Generic 2", - URL = "https://i.ibb.co/5h5cMyF/Arkham-Guillem-H-Pongiluppi-2.jpg" - }, { - Name = "Generic 3", - URL = "https://i.ibb.co/ZBdVsWt/Arkham-Guillem-H-Pongiluppi-3.jpg" - }, { - Name = "Generic 4", - URL = "https://i.ibb.co/6NwbM59/Arkham-Michele-Botticelli.jpg" - }, { - Name = "Generic 5", - URL = "https://i.ibb.co/N6sxyq5/Arkham-Mihail-Bila.jpg" - }, { - Name = "Generic 6", - URL = "https://i.ibb.co/B393zxv/Arkham-Tomasz-Jedruszek.jpg" - }, { - Name = "Generic 7", - URL = "https://i.ibb.co/2WQ2Vt6/Arkham-Tomasz-Jedruszek-2.jpg" - }, { - Name = "Generic 8", - URL = "https://i.ibb.co/R7pQ9Y7/Arkham-Tomasz-Jedruszek-3.jpg" - }, { - Name = "Miskatonic University", - URL = "https://i.ibb.co/ncz9xjP/Arkham-Miskatonic-University-Jokubas-Uogintas.jpg" - }, { - Name = "Northside", - URL = "https://i.ibb.co/sVWx1R3/Arkham-Northside-Jokubas-Uogintas.jpg" - }, { - Name = "Rivertown", - URL = "https://i.ibb.co/RyJnHmz/Arkham-Rivertown-Jokubas-Uogintas.jpg" - }, { - Name = "Southside", - URL = "https://i.ibb.co/5GW5jg5/Arkham-Southside-Jokubas-Uogintas.jpg" - }, { - Name = "Uptown", - URL = "https://i.ibb.co/YXjvkMn/Arkham-Uptown-Jokubas-Uogintas.jpg" - } }, - ["Side Scenarios"] = { { - Name = "Blob That Ate Everything 1", - URL = "https://i.ibb.co/JxFV4ZN/Blob-That-Ate-Everything-Emilio-Rodriguez.jpg" - }, { - Name = "Blob That Ate Everything 2", - URL = "https://i.ibb.co/qJzstWF/Blob-That-Ate-Everything-Emilio-Rodriguez.jpg" - }, { - Name = "Carnevale of Horrors 1", - URL = "https://i.ibb.co/ZchJBpz/Carnevale-of-Horrors.jpg" - }, { - Name = "Curse of the Rougarou 1", - URL = "https://i.ibb.co/Qf7Sr7P/Curse-of-the-Rougarou.jpg" - }, { - Name = "Curse of the Rougarou 2", - URL = "https://i.ibb.co/hs1Qjp0/Curse-of-the-Rougarou-Ann-Kovaleva.jpg" - }, { - Name = "Curse of the Rougarou 3", - URL = "https://i.ibb.co/BK7rmJ9/Curse-of-the-Rougarou-Karine-Villette.jpg" - }, { - Name = "Curse of the Rougarou 4", - URL = "https://i.ibb.co/ZxGTC1w/Curse-of-the-Rougarou-Lachlan-Page.jpg" - }, { - Name = "Curse of the Rougarou 5", - URL = "https://i.ibb.co/HgNXJhW/Curse-of-the-Rougarou-Vladimir-Manyukhin.jpg" - }, { - Name = "Guardians of the Abyss 1", - URL = "https://i.ibb.co/gD3R6cw/Guardians-of-the-Abyss-Jake-Murray.jpg" - }, { - Name = "Guardians of the Abyss 2", - URL = "https://i.ibb.co/jMHPcvz/Guardians-of-the-Abyss-Jose-Vega.jpg" - }, { - Name = "Guardians of the Abyss 3", - URL = "https://i.ibb.co/99pqXQP/Guardians-of-the-Abyss-Koke-Nunez.jpg" - }, { - Name = "Guardians of the Abyss 4", - URL = "https://i.ibb.co/QbMvjbx/Guardians-of-the-Abyss-Mike-Szabados.jpg" - }, { - Name = "Guardians of the Abyss 5", - URL = "https://i.ibb.co/zFDt9Q8/Guardians-of-the-Abyss-Nele-Diel.jpg" - }, { - Name = "Guardians of the Abyss 6", - URL = "https://i.ibb.co/Vpzptmt/Guardians-of-the-Abyss-Yujin-Choo.jpg" - }, { - Name = "Kingsport", - URL = "https://i.ibb.co/rbkk7ys/Kingsport-Tomasz-Jedruszek.jpg" - }, { - Name = "Labyrinths of Lunacy 1", - URL = "https://i.ibb.co/f17PMCC/Labyrinths-of-Lunacy-Cordelia-Wolf.jpg" - }, { - Name = "Labyrinths of Lunacy 2", - URL = "https://i.ibb.co/44DXfWw/Labyrinths-of-Lunacy-Richard-Wright.jpg" - }, { - Name = "Labyrinths of Lunacy 3", - URL = "https://i.ibb.co/jMQhs68/Labyrinths-of-Lunacy-Robert-Berg.jpg" - }, { - Name = "Murder at Excelsior Hotel 1", - URL = "https://i.ibb.co/5cQ6LvN/Murder-at-Excelsior-Hotel-Alistair-Mitchell.jpg" - }, { - Name = "Murder at Excelsior Hotel 2", - URL = "https://i.ibb.co/vBQRHNS/Murder-at-Excelsior-Hotel-Romain-Bayle.jpg" - }, { - Name = "War of the Outer Gods", - URL = "https://i.ibb.co/wLNGFTG/War-of-the-Outer-Gods-Joshua-Cairos.jpg" - } }, - ["The Path to Carcosa"] = { { - Name = "I - Curtain Call", - URL = "https://i.ibb.co/TcnKXJD/Carcosa-1-Curtain-Call-Mark-Molnar.jpg" - }, { - Name = "II - Last King 1", - URL = "https://i.ibb.co/JRQJKR8/Carcosa-2-Last-King-Cristi-Balanescu.jpg" - }, { - Name = "II - Last King 2", - URL = "https://i.ibb.co/NZzBwgv/Carcosa-2-Last-King-Cristi-Balanescu-2.jpg" - }, { - Name = "II - Last King 3", - URL = "https://i.ibb.co/x56ZHt7/Carcosa-2-Last-King-Wu-Mengjia.jpg" - }, { - Name = "III - Echoes of the Past", - URL = "https://i.ibb.co/R6gSm0D/Carcosa-3-Echoes-of-the-Past-Heather-Savage.jpg" - }, { - Name = "IV - Unspeakable Oath 1", - URL = "https://i.ibb.co/DzzDQQQ/Carcosa-4-Unspeakable-Oath.jpg" - }, { - Name = "IV - Unspeakable Oath 2", - URL = "https://i.ibb.co/9gqBzXr/Carcosa-4-Unspeakable-Oath-2-Mark-Molnar.jpg" - }, { - Name = "IV - Unspeakable Oath 3", - URL = "https://i.ibb.co/wWL73c9/Carcosa-4-Unspeakable-Oath-Paul-Fairbairn.jpg" - }, { - Name = "V - Phantom of Truth 1", - URL = "https://i.ibb.co/mzpz1Dd/Carcosa-5-Phantom-of-Truth-Lucas-Staniec.jpg" - }, { - Name = "V - Phantom of Truth 2", - URL = "https://i.ibb.co/Vp1wNbT/Carcosa-5-Phantom-of-Truth-Tomasz-Jedruszek.jpg" - }, { - Name = "VI - Pallid Mask 1", - URL = "https://i.ibb.co/Bf5LByY/Carcosa-6-Pallid-Mask-Greg-Bobrowski.jpg" - }, { - Name = "VI - Pallid Mask 2", - URL = "https://i.ibb.co/1v1J9Xx/Carcosa-6-Pallid-Mask-Rafal-Pyra.jpg" - }, { - Name = "VII - Black Star Rises 1", - URL = "https://i.ibb.co/TB451t7/Carcosa-7-Black-Star-Rises-Audric-Gatoux.jpg" - }, { - Name = "VII - Black Star Rises 2", - URL = "https://i.ibb.co/nC8Ncxx/Carcosa-7-Black-Star-Rises-Chris-Kintner.jpg" - }, { - Name = "VIII - Dim Carcosa 1", - URL = "https://i.ibb.co/QvS4y3D/Carcosa-8-Dim-Carcosa-Alexandr-Elichev.jpg" - }, { - Name = "VIII - Dim Carcosa 2", - URL = "https://i.ibb.co/hR95x7k/Carcosa-8-Dim-Carcosa-Yuri-Shepherd.jpg" - } }, - ["The Circle Undone"] = { { - Name = "0 - Prologue", - URL = "https://i.ibb.co/gm4C6yy/Circle-Undone-0-Prologue-Ted-Galaday.jpg" - }, { - Name = "I - Witching Hour", - URL = "https://i.ibb.co/kgJ34WS/Circle-Undone-1-Witching-Hour-Nele-Diel.jpg" - }, { - Name = "II - At Death's Doorstep 1", - URL = "https://i.ibb.co/qNWzH0Y/Circle-Undone-2-At-Death-039-s-Doorstep-Emilio-Rodriguez.jpg" - }, { - Name = "II - At Death's Doorstep 2", - URL = "https://i.ibb.co/T1zp1QN/Circle-Undone-2-At-Death-039-s-Doorstep-Emilio-Rodriguez-2.jpg" - }, { - Name = "II - At Death's Doorstep 3", - URL = "https://i.ibb.co/ZJfYZ1w/Circle-Undone-2-At-Death-039-s-Doorstep-Majid-Azim.jpg" - }, { - Name = "III - The Secret Name 1", - URL = "https://i.ibb.co/hsBw4JQ/Circle-Undone-3-Secret-Name-Jeff-Jumper.jpg" - }, { - Name = "III - The Secret Name 2", - URL = "https://i.ibb.co/MpcPXR5/Circle-Undone-3-Secret-Name-Pierre-Santamaria.jpg" - }, { - Name = "III - The Secret Name 3", - URL = "https://i.ibb.co/LQ8rdKs/Circle-Undone-3-The-Secret-Name-Greg-Bobrowski.jpg" - }, { - Name = "III - The Secret Name 4", - URL = "https://i.ibb.co/0D7LzxV/Circle-Undone-3-The-Secret-Name-Robert-Laskey.jpg" - }, { - Name = "IV - Wages of Sin 1", - URL = "https://i.ibb.co/fDMqH1C/Circle-Undone-4-Wages-of-Sin-Emilio-Rodriguez.jpg" - }, { - Name = "IV - Wages of Sin 2", - URL = "https://i.ibb.co/HDrKkZF/Circle-Undone-4-Wages-of-Sin-Emilio-Rodriguez-2.jpg" - }, { - Name = "IV - Wages of Sin 3", - URL = "https://i.ibb.co/vkpG8cM/Circle-Undone-4-Wages-of-Sin-Greg-Bobrowski.jpg" - }, { - Name = "IV - Wages of Sin 4", - URL = "https://i.ibb.co/CMj007q/Circle-Undone-4-Wages-of-Sin-Mateusz-Michalski.jpg" - }, { - Name = "IV - Wages of Sin 5", - URL = "https://i.ibb.co/sj1bS5x/Circle-Undone-4-Wages-of-Sin-Serge-Da-Silva-Dias.jpg" - }, { - Name = "V - For the Greater Good 1", - URL = "https://i.ibb.co/LDyqjbj/Circle-Undone-5-For-the-Greater-Good.jpg" - }, { - Name = "V - For the Greater Good 2", - URL = "https://i.ibb.co/pPzXNd1/Circle-Undone-5-For-the-Greater-Good-2.jpg" - }, { - Name = "V - For the Greater Good 3", - URL = "https://i.ibb.co/8rMLvJH/Circle-Undone-5-For-the-Greater-Good-Greg-Bobrowski.jpg" - }, { - Name = "V - For the Greater Good 4", - URL = "https://i.ibb.co/vj1q4Cm/Circle-Undone-5-For-the-Greater-Good-Robert-Laskey.jpg" - }, { - Name = "VI - Union and Disillusioned", - URL = "https://i.ibb.co/n7SD1tB/Circle-Undone-6-Union-amp-Disillusioned-Andreas-Rocha.jpg" - }, { - Name = "VII - In the Clutches of Chaos 1", - URL = "https://i.ibb.co/bFXBNh7/Circle-Undone-7-In-the-Clutches-of-Chaos.jpg" - }, { - Name = "VII - In the Clutches of Chaos 2", - URL = "https://i.ibb.co/m6DshNg/Circle-Undone-7-In-the-Clutches-of-Chaos-Alexandr-Elichev.jpg" - }, { - Name = "VII - In the Clutches of Chaos 3", - URL = "https://i.ibb.co/k2p4yfG/Circle-Undone-7-In-the-Clutches-of-Chaos-Jokubas-Uogintas.jpg" - }, { - Name = "VIII - Before the Black Throne 1", - URL = "https://i.ibb.co/9TPwvP6/Circle-Undone-8-Before-the-Black-Throne-Aaron-Luke-Wilson.jpg" - }, { - Name = "VIII - Before the Black Throne 2", - URL = "https://i.ibb.co/VNtgH4v/Circle-Undone-8-Before-the-Black-Throne-Greg-Bobrowski.jpg" - } }, - ["Side Scenarios (FM)"] = { { - Name = "Consternation on the Constellation", - URL = "https://i.ibb.co/Tw2xBP1/Consternation-Constellation.jpg" - }, { - Name = "Symphony of Erich Zann", - URL = "https://i.ibb.co/SNr8tqN/Symphony-of-Erich-Zann-Hazel-Yingling.jpg" - } }, - ["Cyclopean Foundations (FM)"] = { { - Name = "I - Lost Moorings 1", - URL = "https://i.ibb.co/DQ76z3c/Cyclopean-1-Lost-Moorings-Care-Line-Art.png" - }, { - Name = "I - Lost Moorings 2", - URL = "https://i.ibb.co/c6LJNfr/Cyclopean-1-Lost-Moorings-Jake-Murray.png" - }, { - Name = "II - Going Twice", - URL = "https://i.ibb.co/P6h3vbm/Cyclopean-2-Going-Twice-Quentin-Bouilloud.png" - }, { - Name = "III - Private Lives", - URL = "https://i.ibb.co/9qK9Fzd/Cyclopean-3-Private-Lives-Christian-Bravery.png" - }, { - Name = "IV - Crumbling Masonry 1", - URL = "https://i.ibb.co/pdrGK6p/Cyclopean-4-Crumbling-Masonry-Pete-Amachree.png" - }, { - Name = "IV - Crumbling Masonry 2", - URL = "https://i.ibb.co/5RFcGyP/Cyclopean-4-Crumbling-Masonry-Simon-Craghead.png" - }, { - Name = "V - Across Dreadful Waters", - URL = "https://i.ibb.co/3mYfFNB/Cyclopean-5-Across-Dreadful-Waters-Ev-Shipard.png" - }, { - Name = "VI - Blood From Stones", - URL = "https://i.ibb.co/ynmQNSB/Cyclopean-6-Blood-From-Stones-Marc-Simonetti.png" - }, { - Name = "VII - Pyroclastic Flow 1", - URL = "https://i.ibb.co/s1JDkFv/Cyclopean-7-Pyroclastic-Flow-Bastien-Grivet.png" - }, { - Name = "VII - Pyroclastic Flow 2", - URL = "https://i.ibb.co/qs8Sk2N/Cyclopean-7-Pyroclastic-Flow-Rachid-Lotf.png" - }, { - Name = "VIII - Tomb of Dead Dreams 1", - URL = "https://i.ibb.co/0MwX460/Cyclopean-8-Tomb-of-Dead-Dreams-Guillem-H-Pongiluppi.png" - }, { - Name = "VIII - Tomb of Dead Dreams 2", - URL = "https://i.ibb.co/mGnKNcy/Cyclopean-8-Tomb-of-Dead-Dreams-Richard-Benning.png" - }, { - Name = "VIII - Tomb of Dead Dreams 3", - URL = "https://i.ibb.co/vmBM8x2/Cyclopean-8-Tomb-of-Dead-Dreams-Walter-Brocca.png" - } }, - ["Dark Matter (FM)"] = { { - Name = "I - Tatterdemalion 1", - URL = "https://i.ibb.co/DRMPGVt/Dark-Matter-1-Tatterdemalion-Andrey-Vozny.jpg" - }, { - Name = "I - Tatterdemalion 2", - URL = "https://i.ibb.co/1JzrrX2/Dark-Matter-1-Tatterdemalion-Brian-Taylor.jpg" - }, { - Name = "I - Tatterdemalion 3", - URL = "https://i.ibb.co/DzvvgGf/Dark-Matter-1-Tatterdemalion-John-Wallin-Liberto.jpg" - }, { - Name = "I - Tatterdemalion 4", - URL = "https://i.ibb.co/sQf85b8/Dark-Matter-1-Tatterdemalion-Paul-Pepera.jpg" - }, { - Name = "II - Electric Nightmares 1", - URL = "https://i.ibb.co/hLGVBt7/Dark-Matter-2-Electric-Nightmares-Dean-Lawrence.jpg" - }, { - Name = "II - Electric Nightmares 2", - URL = "https://i.ibb.co/cTKZQ61/Dark-Matter-2-Electric-Nightmares-Robert-Thoma.jpg" - }, { - Name = "IIIa - Lost Quantum", - URL = "https://i.ibb.co/6vyXv90/Dark-Matter-3-Lost-Quantum-Michael-Rajecki.jpg" - }, { - Name = "IIIb - In the Shadow of Earth 1", - URL = "https://i.ibb.co/DfbTKHP/Dark-Matter-4-In-the-Shadow-of-Earth-Jihoo-Kim.jpg" - }, { - Name = "IIIb - In the Shadow of Earth 2", - URL = "https://i.ibb.co/MCvPmCb/Dark-Matter-4-In-the-Shadow-of-Earth-N5-Luckybuuncle.jpg" - }, { - Name = "IIIc - Strange Moons", - URL = "https://i.ibb.co/b2d8qvg/Dark-Matter-5-Strange-Moons-Hongyu-Yin.jpg" - }, { - Name = "V - Fragment of Carcosa 1", - URL = "https://i.ibb.co/7WnTyYT/Dark-Matter-7-Fragment-of-Carcosa-Colin-Moore.jpg" - }, { - Name = "V - Fragment of Carcosa 2", - URL = "https://i.ibb.co/mG2Brrd/Dark-Matter-7-Fragments-of-Carcosa-Matthieu-Rebuffat.jpg" - }, { - Name = "VI - Starfall 1", - URL = "https://i.ibb.co/CJ3LKL7/Dark-Matter-8-Starfall-Vadim-Sadovski.jpg" - }, { - Name = "VI - Starfall 2", - URL = "https://i.ibb.co/Njd1FcB/Dark-Matter-8-Starfall-Vadim-Sadovski-2.jpg" - }, { - Name = "VI - Starfall 3", - URL = "https://i.ibb.co/W0Cx7bb/Dark-Matter-8-Starfall-Vadim-Sadovski-3.jpg" - } }, - ["The Dream-Eaters"] = { { - Name = "I-A - Beyond the Gates of Sleep 1", - URL = "https://i.ibb.co/S6sCy7G/Dream-Eaters-1-A-Beyond-the-Gates-of-Sleep-Phoebe-Herring.jpg" - }, { - Name = "I-A - Beyond the Gates of Sleep 2", - URL = "https://i.ibb.co/kBfW9SC/Dream-Eaters-1-A-Beyond-the-Gates-of-Sleep-Regina-Kurnya.jpg" - }, { - Name = "I-A - Beyond the Gates of Sleep 3", - URL = "https://i.ibb.co/HGvnxdX/Dream-Eaters-1-A-Beyond-the-Gates-of-Sleep-Jason-Scheier.jpg" - }, { - Name = "I-B - Waking Nightmare", - URL = "https://i.ibb.co/sWsZCv8/Dream-Eaters-1-B-Waking-Nightmare-Josh-Gould-jpg.jpg" - }, { - Name = "II-A - Search for Kadath 1", - URL = "https://i.ibb.co/4SwzCD8/Dream-Eaters-2-A-Search-for-Kadath-Andrei-Khrutskii.jpg" - }, { - Name = "II-A - Search for Kadath 2", - URL = "https://i.ibb.co/WpZ4fMc/Dream-Eaters-2-A-Search-for-Kadath-Dan-Iorgulescu.jpg" - }, { - Name = "II-A - Search for Kadath 3", - URL = "https://i.ibb.co/jwsn0jf/Dream-Eaters-2-A-Search-for-Kadath-Diana-Tsareva.jpg" - }, { - Name = "II-A - Search for Kadath 4", - URL = "https://i.ibb.co/pd9vxmL/Dream-Eaters-2-A-Search-for-Kadath-Helen-Ilnytska.jpg" - }, { - Name = "II-A - Search for Kadath 5", - URL = "https://i.ibb.co/MZ7Qtcc/Dream-Eaters-2-A-Search-for-Kadath-Nele-Diel.jpg" - }, { - Name = "II-B - Thousand Shapes of Horror 1", - URL = "https://i.ibb.co/9s7M0PP/Dream-Eaters-2-B-Thousand-Shapes-of-Horror-Nele-Diel-2.jpg" - }, { - Name = "II-B - Thousand Shapes of Horror 2", - URL = "https://i.ibb.co/T4Pqx0H/Dream-Eaters-2-B-Thousand-Shapes-of-Horror-Nele-Diel.jpg" - }, { - Name = "II-B - Thousand Shapes of Horror 3", - URL = "https://i.ibb.co/VJFQVYd/Dream-Eaters-2-B-Thousand-Shapes-of-Horror-Greg-Bobrowski.jpg" - }, { - Name = "III-A - Dark Side of the Moon 1", - URL = "https://i.ibb.co/B2DfXLZ/Dream-Eaters-3-A-Dark-Side-of-the-Moon-Dabanli.jpg" - }, { - Name = "III-A - Dark Side of the Moon 2", - URL = "https://i.ibb.co/c27JRvv/Dream-Eaters-3-A-Dark-Side-of-the-Moon-Frej-Agelii.jpg" - }, { - Name = "III-B - Point of No Return 1", - URL = "https://i.ibb.co/dMGNB9Y/Dream-Eaters-3-B-Point-of-No-Return-Daria-Khlebnikova.jpg" - }, { - Name = "III-B - Point of No Return 2", - URL = "https://i.ibb.co/dpXxPmz/Dream-Eaters-3-B-Point-of-No-Return-Karine-Villette.jpg" - }, { - Name = "IV-A - Where the Gods Dwell", - URL = "https://i.ibb.co/v4nqw6G/Dream-Eaters-4-A-Where-the-Gods-Dwell-Samantha-Franco.jpg" - }, { - Name = "IV-B - Weaver of the Cosmos 1", - URL = "https://i.ibb.co/7btNBS1/Dream-Eaters-4-B-Weaver-of-the-Cosmos-Diana-Franco.jpg" - }, { - Name = "IV-B - Weaver of the Cosmos 2", - URL = "https://i.ibb.co/RY7y22b/Dream-Eaters-4-B-Weaver-of-the-Cosmos-Leanna-Crossan.jpg" - }, { - Name = "IV-B - Weaver of the Cosmos 3", - URL = "https://i.ibb.co/f8LBbFW/Dream-Eaters-4-B-Weaver-of-the-Cosmos-Nele-Diel.jpg" - } }, - ["The Dunwich Legacy"] = { { - Name = "I-A - Extracurricular Activity 1", - URL = "https://i.ibb.co/tDxX8KS/Dunwich-1-Extracurricular-Activity-Igor-Kirdeika.jpg" - }, { - Name = "I-A - Extracurricular Activity 2", - URL = "https://i.ibb.co/RQ6z0pj/Dunwich-1-Extracurricular-Activity-Joseph-Diaz.jpg" - }, { - Name = "I-A - Extracurricular Activity 3", - URL = "https://i.ibb.co/nnJdwL2/Dunwich-1-Extracurricular-Activity-Tomasz-Jedruszek.jpg" - }, { - Name = "I-B - House Always Wins 1", - URL = "https://i.ibb.co/8XPLdr9/Dunwich-2-House-Always-Wins-Jonny-Klein.jpg" - }, { - Name = "I-B - House Always Wins 2", - URL = "https://i.ibb.co/HtX95GK/Dunwich-2-House-Always-Wins-Robert-Laskey.jpg" - }, { - Name = "I-B - House Always Wins 3", - URL = "https://i.ibb.co/MCLP3Sz/Dunwich-2-House-Always-Wins-XX-l.jpg" - }, { - Name = "I-B - House Always Wins 4", - URL = "https://i.ibb.co/w7Pf5sd/Dunwich-2-House-Always-Wins-XX-l-2.jpg" - }, { - Name = "II - Miskatonic Museum 1", - URL = "https://i.ibb.co/x1Kf7qG/Dunwich-3-Miskatonic-Museum-Emre-Aktuna.jpg" - }, { - Name = "II - Miskatonic Museum 2", - URL = "https://i.ibb.co/yWXVPcN/Dunwich-3-Miskatonic-Museum-Richard-Wright.jpg" - }, { - Name = "III - Essex County Express", - URL = "https://i.ibb.co/602CMZb/Dunwich-4-Essex-County-Express-David-Alvarez.jpg" - }, { - Name = "IV - Blood on the Altar 1", - URL = "https://i.ibb.co/3CYHDhf/Dunwich-5-Blood-on-the-Altar.jpg" - }, { - Name = "IV - Blood on the Altar 2", - URL = "https://i.ibb.co/FbxcCY2/Dunwich-5-Blood-on-the-Altar-Chris-Ostrowski.jpg" - }, { - Name = "IV - Blood on the Altar 3", - URL = "https://i.ibb.co/sJf6YsZ/Dunwich-5-Blood-on-the-Altar-Lucas-Staniec.jpg" - }, { - Name = "IV - Blood on the Altar 4", - URL = "https://i.ibb.co/kBPNGBd/Dunwich-5-Blood-on-the-Altar-Mark-Molnar.jpg" - }, { - Name = "V - Undimensioned and Unseen 1", - URL = "https://i.ibb.co/QvfhjDv/Dunwich-6-Undimensioned-and-Unseen-Frej-Agelii.jpg" - }, { - Name = "V - Undimensioned and Unseen 2", - URL = "https://i.ibb.co/4VL9gSK/Dunwich-6-Undimensioned-and-Unseen-Lucas-Staniec.jpg" - }, { - Name = "V - Undimensioned and Unseen 3", - URL = "https://i.ibb.co/wBFsS8P/Dunwich-6-Undimensioned-and-Unseen-Michal-Teliga-jpg.jpg" - }, { - Name = "V - Undimensioned and Unseen 4", - URL = "https://i.ibb.co/wwGDcq6/Dunwich-6-Undimensioned-and-Unseen-Tomasz-Jedruszek.jpg" - }, { - Name = "VI - Where Doom Awaits 1", - URL = "https://i.ibb.co/TvMwqj4/Dunwich-7-Where-Doom-Awaits.jpg" - }, { - Name = "VI - Where Doom Awaits 2", - URL = "https://i.ibb.co/S6cSLH9/Dunwich-7-Where-Doom-Awaits-3.jpg" - }, { - Name = "VI - Where Doom Awaits 3", - URL = "https://i.ibb.co/khBX32g/Dunwich-7-Where-Doom-Awaits-4.jpg" - }, { - Name = "VI - Where Doom Awaits 4", - URL = "https://i.ibb.co/S0hcwN8/Dunwich-7-Where-Doom-Awaits-5.jpg" - }, { - Name = "VI - Where Doom Awaits 5", - URL = "https://i.ibb.co/Lxv1Bjp/Dunwich-7-Where-Doom-Awaits-Luca-Trentin.jpg" - }, { - Name = "VII - Lost in Time and Space 1", - URL = "https://i.ibb.co/rtTpbDx/Dunwich-8-Lost-in-Time-amp-Space.jpg" - }, { - Name = "VII - Lost in Time and Space 2", - URL = "https://i.ibb.co/dBXP0GL/Dunwich-8-Lost-in-Time-amp-Space-Chris-Ostrowski.jpg" - }, { - Name = "VII - Lost in Time and Space 3", - URL = "https://i.ibb.co/0XcnxFD/Dunwich-8-Lost-in-Time-amp-Space-Lino-Drieghe.jpg" - } }, - ["Edge of the Earth"] = { { - Name = "I - Ice and Death 1", - URL = "https://i.ibb.co/FWZMWtW/Edge-1-Ice-and-Death-David-Frasheski.png" - }, { - Name = "I - Ice and Death 2", - URL = "https://i.ibb.co/QDGV0jQ/Edge-1-Ice-and-Death-Felix-Riano.png" - }, { - Name = "I - Ice and Death 3", - URL = "https://i.ibb.co/hFJQM8v/Edge-1-Ice-and-Death-Mike-Gizienski.png" - }, { - Name = "??? - Fatal Mirage", - URL = "https://i.ibb.co/KzwvjJN/Edge-2-Fatal-Mirage-David-Frasheski.png" - }, { - Name = "II - Forbidden Peaks 1", - URL = "https://i.ibb.co/C2SLByt/Edge-2-Forbidden-Peaks-David-Frasheski-2.png" - }, { - Name = "II - Forbidden Peaks 2", - URL = "https://i.ibb.co/0cGkkBL/Edge-3-Forbidden-Peaks-David-Frasheski.png" - }, { - Name = "III - City of Elder Things 1", - URL = "https://i.ibb.co/FbpgBD3/Edge-4-City-Francois-Baranger.png" - }, { - Name = "III - City of Elder Things 2", - URL = "https://i.ibb.co/ncRvHr3/Edge-4-City-Francois-Baranger-2.png" - }, { - Name = "IV - Heart of Madness 1", - URL = "https://i.ibb.co/rk0qR4z/Edge-5-Heart-of-Madness-Karol-Sollich.png" - }, { - Name = "IV - Heart of Madness 2", - URL = "https://i.ibb.co/NVFjx6N/Edge-5-Heart-of-Madness-Miguel-Coimbra.png" - } }, - ["The Forgotten Age"] = { { - Name = "I - Untamed Wilds 1", - URL = "https://i.ibb.co/BLhwCG1/Forgotten-Age-1-Untamed-Wilds-David-Frasheski.jpg" - }, { - Name = "I - Untamed Wilds 2", - URL = "https://i.ibb.co/SnJfsNy/Forgotten-Age-1-Untamed-Wilds-David-Frasheski-2.jpg" - }, { - Name = "I - Untamed Wilds 3", - URL = "https://i.ibb.co/kcx1tvp/Forgotten-Age-1-Untamed-Wilds-Ethan-Patrick-Harris.jpg" - }, { - Name = "I - Untamed Wilds 4", - URL = "https://i.ibb.co/HPbJwXk/Forgotten-Age-1-Untamed-Wilds-Lucas-Staniec.jpg" - }, { - Name = "I - Untamed Wilds 5", - URL = "https://i.ibb.co/bbq1ZrK/Forgotten-Age-1-Untamed-Wilds-Nele-Diel.jpg" - }, { - Name = "II - Doom of Etzli 1", - URL = "https://i.ibb.co/Pw4by4q/Forgotten-Age-2-Doom-of-Eztli-Cristi-Balanescu.jpg" - }, { - Name = "II - Doom of Etzli 2", - URL = "https://i.ibb.co/xqW6cXR/Forgotten-Age-2-Doom-of-Eztli-Greg-Bobrowski.jpg" - }, { - Name = "II - Doom of Etzli 3", - URL = "https://i.ibb.co/kgsC3pb/Forgotten-Age-2-Doom-of-Eztli-Nele-Diel.jpg" - }, { - Name = "III - Threads of Fate", - URL = "https://i.ibb.co/Bn0Pjng/Forgotten-Age-3-Threads-of-Fate-Jokubas-Uogintas.jpg" - }, { - Name = "IV - Boundary Beyond 1", - URL = "https://i.ibb.co/yPZ9v2X/Forgotten-Age-4-Boundary-Beyond-Greg-Bobrowski-2-jpg.jpg" - }, { - Name = "IV - Boundary Beyond 2", - URL = "https://i.ibb.co/vm0JgFs/Forgotten-Age-4-Boundary-Beyond-Greg-Bobrowski-jpg.jpg" - }, { - Name = "IV - Boundary Beyond 3", - URL = "https://i.ibb.co/D1rh9Ry/Forgotten-Age-4-Boundary-Beyond-Nele-Diel.jpg" - }, { - Name = "V - Heart of the Elders I-1", - URL = "https://i.ibb.co/jzKvv6P/Forgotten-Age-5-Heart-of-the-Elders-I-Lucas-Staniec.jpg" - }, { - Name = "V - Heart of the Elders I-2", - URL = "https://i.ibb.co/mR79MX4/Forgotten-Age-5-Heart-of-the-Elders-I-Lucas-Staniec-2.jpg" - }, { - Name = "V - Heart of the Elders II", - URL = "https://i.ibb.co/pQSbL0t/Forgotten-Age-5-Heart-of-the-Elders-II-Nele-Diel.jpg" - }, { - Name = "VI - City of Archives 1", - URL = "https://i.ibb.co/f04DSPb/Forgotten-Age-6-City-of-Archives.jpg" - }, { - Name = "VI - City of Archives 2", - URL = "https://i.ibb.co/WsSBrYj/Forgotten-Age-6-City-of-Archives-2.jpg" - }, { - Name = "VI - City of Archives 3", - URL = "https://i.ibb.co/qdPbSZ8/Forgotten-Age-6-City-of-Archives-Chris-Ostrowski.jpg" - }, { - Name = "VII - Depths of Yoth 1", - URL = "https://i.ibb.co/dbLKgGv/Forgotten-Age-7-Depths-of-Yoth-Diego-Arbetta.jpg" - }, { - Name = "VII - Depths of Yoth 2", - URL = "https://i.ibb.co/NW7Wp98/Forgotten-Age-7-Depths-of-Yoth-Greg-Bobrowski.jpg" - }, { - Name = "VII - Depths of Yoth 3", - URL = "https://i.ibb.co/257zr7c/Forgotten-Age-7-Depths-of-Yoth-Greg-Bobrowski-2-jpg.jpg" - }, { - Name = "VIII - Shattered Aeons 1", - URL = "https://i.ibb.co/KwnWTGR/Forgotten-Age-8-Shattered-Aeons.jpg" - }, { - Name = "VIII - Shattered Aeons 2", - URL = "https://i.ibb.co/b7kVd4F/Forgotten-Age-8-Shattered-Aeons-Alexandr-Elichev.jpg" - } }, - ["The Innsmouth Conspiracy"] = { { - Name = "I - Pit of Despair 1", - URL = "https://i.ibb.co/2sc0F61/Innsmouth-1-Pit-of-Despair-Amanda-Castrillo.jpg" - }, { - Name = "I - Pit of Despair 2", - URL = "https://i.ibb.co/Nj9JLBQ/Innsmouth-1-Pit-of-Despair-J-Mill.jpg" - }, { - Name = "II - Vanishing of Elina Harper 1", - URL = "https://i.ibb.co/2j74cVn/Innsmouth-2-Vanishing-of-Elina-Harper-Konstantin-Vohwinkel.jpg" - }, { - Name = "II - Vanishing of Elina Harper 2", - URL = "https://i.ibb.co/r2VqHSn/Innsmouth-2-Vanishing-of-Elina-Harper-Mihail-Bila.jpg" - }, { - Name = "II - Vanishing of Elina Harper 3", - URL = "https://i.ibb.co/hFQMm7N/Innsmouth-2-Vanishing-of-Elina-Harper-Richard-Wright.jpg" - }, { - Name = "II - Vanishing of Elina Harper 4", - URL = "https://i.ibb.co/2nZKGN6/Innsmouth-2-Vanishing-of-Elina-Harper-Tomasz-Jedruszek-1.jpg" - }, { - Name = "II - Vanishing of Elina Harper 5", - URL = "https://i.ibb.co/WxLpKrM/Innsmouth-2-Vanishing-of-Elina-Harper-Tomasz-Jedruszek-2.jpg" - }, { - Name = "III - In Too Deep 1", - URL = "https://i.ibb.co/SsQ3my4/Innsmouth-3-In-Too-Deep-David-Frasheski.jpg" - }, { - Name = "III - In Too Deep 2", - URL = "https://i.ibb.co/jgQ8zQN/Innsmouth-3-In-Too-Deep-Klaudia-Bezak.jpg" - }, { - Name = "III - In Too Deep 3", - URL = "https://i.ibb.co/VVgtNM1/Innsmouth-3-In-Too-Deep-Patrik-Antonescu.jpg" - }, { - Name = "IV - Devil Reef 1", - URL = "https://i.ibb.co/Jrf6CJ0/Innsmouth-4-Devil-Reef-Ludovic-Sanson.jpg" - }, { - Name = "IV - Devil Reef 2", - URL = "https://i.ibb.co/4jfwDZR/Innsmouth-4-Devil-Reef-Marc-Stewart.jpg" - }, { - Name = "V - Horror in High Gear 1", - URL = "https://i.ibb.co/vqYJjYJ/Innsmouth-5-Horror-in-High-Gear-Greg-Bobrowski.jpg" - }, { - Name = "V - Horror in High Gear 2", - URL = "https://i.ibb.co/yYrzbYS/Innsmouth-5-Horror-in-High-Gear-Greg-Bobrowski-2.jpg" - }, { - Name = "V - Horror in High Gear 3", - URL = "https://i.ibb.co/fpKWhGY/Innsmouth-5-Horror-in-High-Gear-Guillem-H-Pongiluppi.jpg" - }, { - Name = "V - Horror in High Gear 4", - URL = "https://i.ibb.co/YkLFy7y/Innsmouth-5-Horror-in-High-Gear-Rostyslav-Zagornov.jpg" - }, { - Name = "VI - Light in the Fog 1", - URL = "https://i.ibb.co/v1rhgqJ/Innsmouth-6-Light-in-the-Fog-Florian-Aupetit.jpg" - }, { - Name = "VI - Light in the Fog 2", - URL = "https://i.ibb.co/Db2pRd6/Innsmouth-6-Light-in-the-Fog-JB-Caillet.jpg" - }, { - Name = "VII - Lair of Dagon 1", - URL = "https://i.ibb.co/QPwzQL5/Innsmouth-7-Lair-of-Dagon-Daria-Khlebnikova.jpg" - }, { - Name = "VII - Lair of Dagon 2", - URL = "https://i.ibb.co/MZBpCbs/Innsmouth-7-Lair-of-Dagon-Guillem-H-Pongiluppi.jpg" - }, { - Name = "VIII - Into the Maelstrom 1", - URL = "https://i.ibb.co/fkSXDgs/Innsmouth-8-Into-the-Maelstrom-Dimitri-Bielak.jpg" - }, { - Name = "VIII - Into the Maelstrom 2", - URL = "https://i.ibb.co/k56Dn9q/Innsmouth-8-Into-the-Maelstrom-Mateusz-Michalski.jpg" - } }, - ["Night of the Zealot"] = { { - Name = "I - The Gathering 1", - URL = "https://i.ibb.co/6NWqg1K/Zealot-Gathering.jpg" - }, { - Name = "III - Devourer Below 1", - URL = "https://i.ibb.co/x5QFzrx/Zealot-3-Devourer-Below-Helen-Castelow.png" - }, { - Name = "III - Devourer Below 2", - URL = "https://i.ibb.co/6r6LFGz/Zealot-3-Devourer-Below-Sarah-Miller.png" - } }, - ["The Ghosts of Onigawa (FM)"] = { { - Name = "I - The Ghosts of Onigawa", - URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-01.png?raw=true" - }, { - Name = "II - In The Shadow Of Mount Kokoro", - URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-02.png?raw=true" - }, { - Name = "III - The Onigawa River", - URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-03.png?raw=true" - }, { - Name = "IV - The Crimson Butterfly", - URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-04.png?raw=true" - }, { - Name = "V - The Koi Conspiracy", - URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-05.png?raw=true" - } }, - ["The Scarlet Keys"] = { { - Name = "5-A Riddles and Rain", - URL = "http://cloud-3.steamusercontent.com/ugc/2037357792057358580/E9E5FE4028C08B3D4883406821221B73C8B5B2C7/" - }, { - Name = "11-B Dead Heat", - URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566443853/CAD7771D90141EA6D5FFAFE1EC5E7AD9647C82DB/" - }, { - Name = "16-D Sanguine Shadows", - URL = "http://cloud-3.steamusercontent.com/ugc/2037357792057358704/4A7261EB31511467CBC46E876476DD205F528A4B/" - }, { - Name = "21-F Dealings in the Dark", - URL = "http://cloud-3.steamusercontent.com/ugc/2037357792057358816/7C9FE4C34CD0A7AE87EF054742D878F310C71AA7/" - }, { - Name = "28-I Dancing Mad", - URL = "http://cloud-3.steamusercontent.com/ugc/2037357792056955518/EAB857DD5629EC6A3078FB0A3A703B85B5F514B9/" - }, { - Name = "23-K On Thin Ice", - URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444026/EB5628E254AE25DA89A9C999EAAD995ECF67068E/" - }, { - Name = "38-N Dogs of War", - URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444199/194FD9A713907197471A55411AE300B62C5F5278/" - }, { - Name = "46-Q Shades of Suffering", - URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444330/3ED2CCE95DE933546E1B5CBBF445D773E6D65465/" - }, { - Name = "56-Y ???", - URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444450/FE4C335B0F72E83900A4EED0FD1A1D304D70D6B7/" - }, { - Name = "59-Z Congress of Keys I", - URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444576/5BB32469ED412D59BB0A46E57D226500B1D0568B/" - }, { - Name = "59-Z Congress of Keys II", - URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444690/B01A1FEAB57473D9B6DF11B92D62C214AA1C2C02/" - } } -} - -local verticalOffset = 0.5 - -local buttonParameters = {} -buttonParameters.function_owner = self -buttonParameters.width = 1200 -buttonParameters.height = 300 -buttonParameters.position = { x = -0.2, y = 0.06, z = -verticalOffset } - -local CycleIndex = 1 -local CycleList = { - "Arkham Locations", - "Night of the Zealot", - "The Dunwich Legacy", - "The Path to Carcosa", - "The Forgotten Age", - "The Circle Undone", - "The Dream-Eaters", - "The Innsmouth Conspiracy", - "Edge of the Earth", - "The Scarlet Keys", - "Side Scenarios", - "Cyclopean Foundations (FM)", - "Dark Matter (FM)", - "The Ghosts of Onigawa (FM)", - "Side Scenarios (FM)" -} - --- save the index of selected cycle and table with spawnData -function onSave() return JSON.encode({ CycleIndex, spawnData }) end - -function onLoad(savedData) - if savedData == nil then - print("Error: Saved Data was not found.") - else - local loadedData = JSON.decode(savedData) - CycleIndex = loadedData[1] - spawnData = loadedData[2] - end - - --spawnData = getObjectFromGUID("f4a462").getData() - - -- index 0: cycle selection button - buttonParameters.click_function = "selectCycle" - buttonParameters.tooltip = "Select a cycle" - buttonParameters.label = CycleList[CycleIndex] - buttonParameters.font_size = 90 - self.createButton(buttonParameters) - - -- index 1: display button - buttonParameters.click_function = "showImages" - buttonParameters.tooltip = "Right-Click to remove displayed tiles" - buttonParameters.label = "Display available images" - buttonParameters.position.z = buttonParameters.position.z + 2 * verticalOffset - self.createButton(buttonParameters) -end - --- open option dialog to select cycle -function selectCycle(_, color) - Player[color].showOptionsDialog("Select cycle:", CycleList, CycleIndex, optionCallback) -end - --- update CycleIndex based on selection in the option dialog -function optionCallback(_, optionIndex) - CycleIndex = optionIndex - self.editButton({ - index = 0, - label = CycleList[CycleIndex] - }) - showImages() -end - --- triggered by clicking the "display" button -function showImages(_, _, isRightClick) - removeImages() - - -- don't display new tiles when right-clicked - if isRightClick then return end - - local pos = self.getPosition() - local rot = self.getRotation() - local offset = 3.7 - pos.z = pos.z - 1 - offset - - -- loop over respective entries in DATA - for i, entry in ipairs(DATA[CycleList[CycleIndex]]) do - spawnData.CustomImage.ImageURL = entry.URL - spawnData.Nickname = entry.Name - - spawnObjectData({ - data = spawnData, - position = pos, - rotation = rot, - scale = { 0.9, 1, 0.9 } - }) - - -- display 20 tiles in a row, move then to next row - if i % 20 == 0 then - pos.x = pos.x - offset - pos.z = self.getPosition().z - 1 - offset - else - pos.z = pos.z - offset - end - end -end - --- remove already laid out image tiles by tag -function removeImages() - for _, tile in ipairs(getObjectsWithTag("ImageSwapperTile")) do - tile.destruct() - end -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("accessories/CustomPlaymatImages") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Custom Playmat Images 004fe7.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Custom Playmat Images 004fe7.yaml deleted file mode 100644 index 7f344992f..000000000 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Custom Playmat Images 004fe7.yaml +++ /dev/null @@ -1,63 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -CustomImage: - CustomToken: - MergeDistancePixels: 15.0 - Stackable: false - StandUp: false - Thickness: 0.1 - ImageScalar: 1.0 - ImageSecondaryURL: '' - ImageURL: http://cloud-3.steamusercontent.com/ugc/2026086584367391757/2E37A1020563AA528471DA7425B8E58343E2BAF7/ - WidthScale: 0.0 -Description: Change playmat image to a custom one made by Mint Tea Fan. -DragSelectable: true -GMNotes: '' -GUID: 004fe7 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Token Custom Playmat Images 004fe7.ttslua' -LuaScriptState: "[1,{\"AltLookAngle\":{\"x\":0,\"y\":0,\"z\":0},\"Autoraise\":true,\"ColorDiffuse\":{\"a\":1,\"b\":1,\"g\":1,\"r\":1},\"CustomImage\":{\"CustomToken\":{\"MergeDistancePixels\":15,\"Stackable\":false,\"StandUp\":false,\"Thickness\":0.1},\"ImageScalar\":1,\"ImageSecondaryURL\":\"\",\"ImageURL\":\"https://i.ibb.co/YXjvkMn/Arkham-Uptown-Jokubas-Uogintas.jpg\",\"WidthScale\":0},\"Description\":\"Click - the 'Apply' button to load this image.\",\"DragSelectable\":true,\"GMNotes\":\"\",\"Grid\":true,\"GridProjection\":false,\"GUID\":\"f4a462\",\"Hands\":true,\"HideWhenFaceDown\":false,\"IgnoreFoW\":false,\"LayoutGroupSortIndex\":0,\"Locked\":false,\"LuaScript\":\"function - onLoad()\\n local params = {}\\n params.click_function = 'updatePlayarea'\\n - \ params.function_owner = self\\n params.label = 'Apply'\\n params.tooltip - \ = 'Left-Click: Apply image\\\\nRight-Click: Revert to default'\\n params.position - \ = { 0, 0.06, -1.45 }\\n params.height = 300\\n params.width = - 675\\n params.color = { 0, 0, 0 }\\n params.font_size = 200\\n - \ params.font_color = { 1, 1, 1 }\\n self.createButton(params)\\nend\\n\\nfunction - updatePlayarea(_, _, isRightClick)\\n local imageswapper = getObjectFromGUID(\\\"b7b45b\\\")\\n\\n - \ -- error handling\\n if imageswapper == nil then\\n printToAll(\\\"Image - swapper could not be found!\\\", \\\"Orange\\\")\\n return\\n end\\n\\n -- - get default image when right-clicked, else load its own image\\n if isRightClick - then\\n imageswapper.call(\\\"updateSurface\\\")\\n else\\n imageswapper.call(\\\"updateSurface\\\", - self.getCustomObject().image)\\n end\\nend\\n\",\"LuaScriptState\":\"\",\"MeasureMovement\":false,\"Name\":\"Custom_Token\",\"Nickname\":\"Uptown\",\"Snap\":true,\"Sticky\":true,\"Tags\":[\"ImageSwapperTile\"],\"Tooltip\":true,\"Transform\":{\"posX\":0,\"posY\":2,\"posZ\":0,\"rotX\":0,\"rotY\":270,\"rotZ\":0,\"scaleX\":1,\"scaleY\":1,\"scaleZ\":1},\"Value\":0,\"XmlUI\":\"\"}]\r" -MeasureMovement: false -Name: Custom_Token -Nickname: Custom Playmat Images -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 44.32 - posY: 2.29 - posZ: -60.49 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.33 - scaleY: 1.0 - scaleZ: 1.33 -Value: 0 -XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.ttslua b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.ttslua index e1f1f1a94..8684d0080 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.ttslua +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.ttslua @@ -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("accessories/DisplacementTool") +end) __bundle_register("accessories/DisplacementTool", function(require, _LOADED, __bundle_register, __bundle_modules) local playAreaApi = require("core/PlayAreaApi") @@ -89,104 +92,166 @@ function shift_down(color) playAreaApi.shiftContentsDown(color) end end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("accessories/DisplacementTool") +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.yaml b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.yaml index 9e63936f1..d0cde4b2a 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Custom_Token Displacement Tool 0f1374.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1915746489209870095/5F6A6F2946DBEB81667C15B112F9E35943E61A97/ - WidthScale: 0.0 + WidthScale: 0 Description: Moves all objects on the playmat in the chosen direction. DragSelectable: true GMNotes: '' @@ -43,11 +43,11 @@ Transform: posX: 31.48 posY: 4.2 posZ: -20.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.5 Value: 0 XmlUI: '' diff --git a/unpacked/Bag OptionPanel Source 830bd0/Infinite_Bag Attachment Helper 7f4976.yaml b/unpacked/Bag OptionPanel Source 830bd0/Infinite_Bag Attachment Helper 7f4976.yaml index 09ee3c33a..062d23b47 100644 --- a/unpacked/Bag OptionPanel Source 830bd0/Infinite_Bag Attachment Helper 7f4976.yaml +++ b/unpacked/Bag OptionPanel Source 830bd0/Infinite_Bag Attachment Helper 7f4976.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.37256 r: 0.30589 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/1754695414379239413/0B8E68F3B7311DCF2138FB701F78D1D93FBA4CAB/ @@ -59,129 +59,151 @@ ContainedObjects: = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"accessories/AttachmentHelper\")\nend)\n__bundle_register(\"accessories/AttachmentHelper\", - function(require, _LOADED, __bundle_register, __bundle_modules)\nlocal fontColor\r\nlocal - BACKGROUNDS = {\r\n {\r\n title = \"Ancestral Knowledge\",\r\n url - \ = \"http://cloud-3.steamusercontent.com/ugc/1915746489207287888/2F9F6F211ED0F98E66C9D35D93221E4C7FB6DD3C/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Astronomical Atlas\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/1754695853007989004/9153BC204FC707AE564ECFAC063A11CB8C2B5D1E/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Backpack\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/2018212896278691928/F55BEFFC2540109C6333179532F583B367FF2EBC/\",\r\n - \ fontcolor = { 0, 0, 0 }\r\n },\r\n {\r\n title = \"Binder's Jar\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/2021606446228642191/4C149527851C1DBB3015F93DE91667937A3F91DD/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Crystallizer of - Dreams\",\r\n url = \"http://cloud-3.steamusercontent.com/ugc/1915746489207280958/100F16441939E5E23818651D1EB5C209BF3125B9/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Diana Stanley\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/1754695635919071208/1AB7222850201630826BFFBA8F2BD0065E2D572F/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Gloria Goldberg\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/1754695635919102502/453D4426118C8A6DE2EA281184716E26CA924C84/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Ikiaq\",\r\n url - \ = \"http://cloud-3.steamusercontent.com/ugc/2021606446228198966/5A408D8D760221DEA164E986B9BE1F79C4803071/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Katja Eastbank\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/2021606446228203475/62EEE12F4DB1EB80D79B087677459B954380215F/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Ravenous\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/2021606446228208075/EAC598A450BEE504A7FE179288F1FBBF7ABFA3E0/\",\r\n - \ fontcolor = { 0, 0, 0 }\r\n },\r\n {\r\n title = \"Sefina Rousseau\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/1754695635919099826/3C3CBFFAADB2ACA9957C736491F470AE906CC953/\",\r\n - \ fontcolor = { 0, 0, 0 }\r\n },\r\n {\r\n title = \"Stick to the Plan\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/2018214163838897493/8E38B96C5A8D703A59009A932432CBE21ABE63A2/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Subject 5U-21\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/2021606446228199363/CE43D58F37C9F48BDD6E6E145FE29BADEFF4DBC5/\",\r\n - \ fontcolor = { 1, 1, 1 }\r\n },\r\n {\r\n title = \"Wooden Sledge\",\r\n - \ url = \"http://cloud-3.steamusercontent.com/ugc/1750192233783143973/D526236AAE16BDBB98D3F30E27BAFC1D3E21F4AC/\",\r\n - \ fontcolor = { 0, 0, 0 }\r\n }\r\n}\r\n\r\n-- save state and options to restore - onLoad\r\nfunction onSave() return JSON.encode({ cardsInBag, showCost, showIcons - }) end\r\n\r\n-- load variables and create context menu\r\nfunction onLoad(savedData)\r\n - \ local loadedData = JSON.decode(savedData)\r\n cardsInBag = loadedData[1] - or {}\r\n showCost = loadedData[2] or true\r\n showIcons = loadedData[3] - or true\r\n fontColor = getFontColor()\r\n recreateButtons()\r\n\r\n - \ self.addContextMenuItem(\"Select image\", selectImage)\r\n self.addContextMenuItem(\"Toggle - cost\", function(color)\r\n showCost = not showCost\r\n printToColor(\"Show - cost of cards: \" .. tostring(showCost), color, \"White\")\r\n refresh()\r\n - \ end)\r\n\r\n self.addContextMenuItem(\"Toggle skill icons\", function(color)\r\n - \ showIcons = not showIcons\r\n printToColor(\"Show skill icons of cards: - \" .. tostring(showIcons), color, \"White\")\r\n refresh()\r\n end)\r\nend\r\n\r\n-- - gets the font color based on background url\r\nfunction getFontColor()\r\n local - customInfo = self.getCustomObject()\r\n for i = 1, #BACKGROUNDS do\r\n if - BACKGROUNDS[i].url == customInfo.diffuse then\r\n return BACKGROUNDS[i].fontcolor\r\n - \ end\r\n end\r\n return { 1, 1, 1 }\r\nend\r\n\r\n-- attempt to load image - from below card when dropped\r\nfunction onDrop(playerColor)\r\n local pos = - self.getPosition():setAt(\"y\", 2)\r\n local search = Physics.cast({\r\n direction - \ = { 0, -1, 0 },\r\n max_distance = 2,\r\n type = 3,\r\n size - \ = { 0.1, 0.1, 0.1 },\r\n origin = pos\r\n })\r\n\r\n local - syncName\r\n for _, v in ipairs(search) do\r\n if v.hit_object.tag == \"Card\" - then\r\n syncName = v.hit_object.getName()\r\n break\r\n end\r\n - \ end\r\n\r\n if not syncName then return end\r\n\r\n -- remove level information - fron syncName\r\n syncName = syncName:gsub(\"%s%(%d%)\", \"\")\r\n\r\n -- loop - through background table\r\n for _, bgInfo in ipairs(BACKGROUNDS) do\r\n if - bgInfo.title == syncName then\r\n printToColor(\"Background for '\" .. syncName - .. \"' loaded!\", playerColor, \"Green\")\r\n updateImage(bgInfo.url)\r\n - \ return\r\n end\r\n end\r\n printToColor(\"Didn't find background for - '\" .. syncName .. \"'!\", playerColor, \"Orange\")\r\nend\r\n\r\n-- called by - context menu to change background image\r\nfunction selectImage(color)\r\n -- - generate list of options\r\n local options = {}\r\n for i = 1, #BACKGROUNDS - do\r\n options[i] = BACKGROUNDS[i].title\r\n end\r\n\r\n -- prompt user to - select option\r\n Player[color].showOptionsDialog(\"Select image:\", options, - 1, function(_, optionIndex)\r\n updateImage(BACKGROUNDS[optionIndex].url)\r\n - \ end)\r\nend\r\n\r\n-- sets background to the provided URL\r\nfunction updateImage(url)\r\n - \ self.script_state = JSON.encode({ cardsInBag, showCost, showIcons })\r\n local - customInfo = self.getCustomObject()\r\n customInfo.diffuse = url\r\n self.setCustomObject(customInfo)\r\n - \ self.reload()\r\nend\r\n\r\n-- only allow cards to enter, split decks and reject - other objects\r\nfunction onObjectEnterContainer(container, object)\r\n if container - ~= self then return end\r\n if object.tag == \"Deck\" then\r\n takeDeckOut(object.getGUID(), - self.getPosition() + Vector(0, 0.1, 0))\r\n elseif object.tag ~= \"Card\" then\r\n + function(require, _LOADED, __bundle_register, __bundle_modules)\nlocal searchLib + = require(\"util/SearchLib\")\nlocal fontColor\nlocal BACKGROUNDS = {\n {\n title + \ = \"Ancestral Knowledge\",\n url = \"http://cloud-3.steamusercontent.com/ugc/1915746489207287888/2F9F6F211ED0F98E66C9D35D93221E4C7FB6DD3C/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Astronomical Atlas\",\n + \ url = \"http://cloud-3.steamusercontent.com/ugc/1754695853007989004/9153BC204FC707AE564ECFAC063A11CB8C2B5D1E/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Backpack\",\n url + \ = \"http://cloud-3.steamusercontent.com/ugc/2018212896278691928/F55BEFFC2540109C6333179532F583B367FF2EBC/\",\n + \ fontcolor = { 0, 0, 0 }\n },\n {\n title = \"Binder's Jar\",\n url + \ = \"http://cloud-3.steamusercontent.com/ugc/2021606446228642191/4C149527851C1DBB3015F93DE91667937A3F91DD/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Crystallizer of Dreams\",\n + \ url = \"http://cloud-3.steamusercontent.com/ugc/1915746489207280958/100F16441939E5E23818651D1EB5C209BF3125B9/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Diana Stanley\",\n url + \ = \"http://cloud-3.steamusercontent.com/ugc/1754695635919071208/1AB7222850201630826BFFBA8F2BD0065E2D572F/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Gloria Goldberg\",\n + \ url = \"http://cloud-3.steamusercontent.com/ugc/1754695635919102502/453D4426118C8A6DE2EA281184716E26CA924C84/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Ikiaq\",\n url = + \"http://cloud-3.steamusercontent.com/ugc/2021606446228198966/5A408D8D760221DEA164E986B9BE1F79C4803071/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Katja Eastbank\",\n + \ url = \"http://cloud-3.steamusercontent.com/ugc/2021606446228203475/62EEE12F4DB1EB80D79B087677459B954380215F/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Ravenous\",\n url + \ = \"http://cloud-3.steamusercontent.com/ugc/2021606446228208075/EAC598A450BEE504A7FE179288F1FBBF7ABFA3E0/\",\n + \ fontcolor = { 0, 0, 0 }\n },\n {\n title = \"Sefina Rousseau\",\n + \ url = \"http://cloud-3.steamusercontent.com/ugc/1754695635919099826/3C3CBFFAADB2ACA9957C736491F470AE906CC953/\",\n + \ fontcolor = { 0, 0, 0 }\n },\n {\n title = \"Stick to the Plan\",\n + \ url = \"http://cloud-3.steamusercontent.com/ugc/2018214163838897493/8E38B96C5A8D703A59009A932432CBE21ABE63A2/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Subject 5U-21\",\n url + \ = \"http://cloud-3.steamusercontent.com/ugc/2021606446228199363/CE43D58F37C9F48BDD6E6E145FE29BADEFF4DBC5/\",\n + \ fontcolor = { 1, 1, 1 }\n },\n {\n title = \"Wooden Sledge\",\n url + \ = \"http://cloud-3.steamusercontent.com/ugc/1750192233783143973/D526236AAE16BDBB98D3F30E27BAFC1D3E21F4AC/\",\n + \ fontcolor = { 0, 0, 0 }\n }\n}\n\n-- save state and options to restore onLoad\nfunction + onSave() return JSON.encode({ cardsInBag, showCost, showIcons }) end\n\n-- load + variables and create context menu\nfunction onLoad(savedData)\n local loadedData + = JSON.decode(savedData)\n cardsInBag = loadedData[1] or {}\n showCost + \ = loadedData[2] or true\n showIcons = loadedData[3] or true\n + \ fontColor = getFontColor()\n recreateButtons()\n\n self.addContextMenuItem(\"Select + image\", selectImage)\n self.addContextMenuItem(\"Toggle cost\", function(color)\n + \ showCost = not showCost\n printToColor(\"Show cost of cards: \" .. tostring(showCost), + color, \"White\")\n refresh()\n end)\n\n self.addContextMenuItem(\"Toggle + skill icons\", function(color)\n showIcons = not showIcons\n printToColor(\"Show + skill icons of cards: \" .. tostring(showIcons), color, \"White\")\n refresh()\n + \ end)\nend\n\n-- gets the font color based on background url\nfunction getFontColor()\n + \ local customInfo = self.getCustomObject()\n for i = 1, #BACKGROUNDS do\n if + BACKGROUNDS[i].url == customInfo.diffuse then\n return BACKGROUNDS[i].fontcolor\n + \ end\n end\n return { 1, 1, 1 }\nend\n\n-- attempt to load image from below + card when dropped\nfunction onDrop(playerColor)\n local pos = self.getPosition():setAt(\"y\", + 2)\n local searchResult = searchLib.belowPosition(pos, \"isCard\")\n if #searchResult + == 0 then return end\n local syncName = searchResult[1].getName()\n\n -- remove + level information from syncName\n syncName = syncName:gsub(\"%s%(%d%)\", \"\")\n\n + \ -- loop through background table\n for _, bgInfo in ipairs(BACKGROUNDS) do\n + \ if bgInfo.title == syncName then\n printToColor(\"Background for '\" + .. syncName .. \"' loaded!\", playerColor, \"Green\")\n updateImage(bgInfo.url)\n + \ return\n end\n end\n printToColor(\"Didn't find background for '\" + .. syncName .. \"'!\", playerColor, \"Orange\")\nend\n\n-- called by context menu + to change background image\nfunction selectImage(color)\n -- generate list of + options\n local options = {}\n for i = 1, #BACKGROUNDS do\n options[i] = + BACKGROUNDS[i].title\n end\n\n -- prompt user to select option\n Player[color].showOptionsDialog(\"Select + image:\", options, 1, function(_, optionIndex)\n updateImage(BACKGROUNDS[optionIndex].url)\n + \ end)\nend\n\n-- sets background to the provided URL\nfunction updateImage(url)\n + \ self.script_state = JSON.encode({ cardsInBag, showCost, showIcons })\n local + customInfo = self.getCustomObject()\n customInfo.diffuse = url\n self.setCustomObject(customInfo)\n + \ self.reload()\nend\n\n-- only allow cards to enter, split decks and reject other + objects\nfunction onObjectEnterContainer(container, object)\n if container ~= + self then return end\n if object.type == \"Deck\" then\n takeDeckOut(object.getGUID(), + self.getPosition() + Vector(0, 0.1, 0))\n elseif object.type ~= \"Card\" then\n \ broadcastToAll(\"The 'Attachment Helper' is meant to be used for cards.\", - \"White\")\r\n else\r\n findCard(object.getGUID(), object.getName(), object.getGMNotes())\r\n - \ recreateButtons()\r\n end\r\nend\r\n\r\n-- takes the deck out and splits - in into single cards\r\nfunction takeDeckOut(guid, pos)\r\n local deck = self.takeObject({ - guid = guid, position = pos, smooth = false })\r\n for i = 1, #deck.getObjects() - do\r\n self.putObject(deck.takeObject({ position = pos + Vector(0, 0.1 * i, - 0), smooth = false }))\r\n end\r\nend\r\n\r\n-- removes leaving cards from the - \"cardInBag\" table\r\nfunction onObjectLeaveContainer(container, object)\r\n - \ if container == self then\r\n local guid = object.getGUID()\r\n local - found = false\r\n for i, card in ipairs(cardsInBag) do\r\n if card.id - == guid then\r\n table.remove(cardsInBag, i)\r\n found = true\r\n - \ break\r\n end\r\n end\r\n\r\n if found ~= true then\r\n local - name = object.getName()\r\n for i, card in ipairs(cardsInBag) do\r\n if - card.name == name then\r\n table.remove(cardsInBag, i)\r\n break\r\n - \ end\r\n end\r\n end\r\n recreateButtons()\r\n end\r\nend\r\n\r\n-- - refreshes displayed buttons based on contained cards\r\nfunction refresh()\r\n - \ cardsInBag = {}\r\n for _, object in ipairs(self.getObjects()) do\r\n findCard(object.guid, - object.name, object.gm_notes)\r\n end\r\n recreateButtons()\r\nend\r\n\r\n-- - gets cost and icons for a card\r\nfunction findCard(guid, name, GMNotes)\r\n local - cost = \"\"\r\n local icons = {}\r\n local metadata = {}\r\n local displayName - = name\r\n\r\n if displayName == nil or displayName == \"\" then displayName - = \"unnamed\" end\r\n if showCost or showIcons then metadata = JSON.decode(GMNotes) - end\r\n\r\n if showCost then\r\n if GMNotes ~= \"\" then cost = metadata.cost - end\r\n if cost == nil or cost == \"\" then cost = \"\u2013\" end\r\n displayName - = \"[\" .. cost .. \"] \" .. displayName\r\n end\r\n\r\n if showIcons then\r\n - \ if GMNotes ~= \"\" then\r\n icons[1] = metadata.wildIcons\r\n icons[2] - = metadata.willpowerIcons\r\n icons[3] = metadata.intellectIcons\r\n icons[4] - = metadata.combatIcons\r\n icons[5] = metadata.agilityIcons\r\n end\r\n\r\n - \ local IconTypes = { \"Wild\", \"Willpower\", \"Intellect\", \"Combat\", \"Agility\" - }\r\n local found = false\r\n for i = 1, 5 do\r\n if icons[i] ~= nil - and icons[i] ~= \"\" then\r\n if found == false then\r\n displayName - = displayName .. \"\\n\" .. IconTypes[i] .. \": \" .. icons[i]\r\n found - = true\r\n else\r\n displayName = displayName .. \" \" .. IconTypes[i] - .. \": \" .. icons[i]\r\n end\r\n end\r\n end\r\n end\r\n table.insert(cardsInBag, - { name = name, displayName = displayName, id = guid })\r\nend\r\n\r\n-- recreates - buttons with up-to-date labels\r\nfunction recreateButtons()\r\n self.clearButtons()\r\n - \ local verticalPosition = 1.65\r\n\r\n for _, card in ipairs(cardsInBag) do\r\n - \ local id = card.id\r\n local funcName = \"removeCard\" .. id\r\n self.setVar(funcName, - function() removeCard(id) end)\r\n self.createButton({\r\n label = - card.displayName,\r\n click_function = funcName,\r\n function_owner - = self,\r\n position = { 0, -0.1, verticalPosition },\r\n height - \ = 200,\r\n width = 1200,\r\n font_size = string.len(card.displayName) - > 20 and 75 or 100\r\n })\r\n verticalPosition = verticalPosition - 0.5\r\n - \ end\r\n\r\n local countLabel = #cardsInBag\r\n local fontSize = 250\r\n if - #cardsInBag == 0 then\r\n countLabel = \"Attachment Helper\"\r\n fontSize - \ = 150\r\n end\r\n\r\n self.createButton({\r\n label = countLabel,\r\n - \ click_function = \"none\",\r\n function_owner = self,\r\n position = - { 0, -0.1, -1.7 },\r\n height = 0,\r\n width = 0,\r\n font_size - \ = fontSize,\r\n font_color = fontColor\r\n })\r\nend\r\n\r\n-- click-function - for buttons to take a card out of the bag\r\nfunction removeCard(cardGUID)\r\n - \ self.takeObject({\r\n guid = cardGUID,\r\n rotation = self.getRotation(),\r\n - \ position = self.getPosition() + Vector(0, 0.25, 0),\r\n callback_function - = function(obj) obj.resting = true end\r\n })\r\nend\r\nend)\nreturn __bundle_require(\"__root\")" + \"White\")\n else\n findCard(object.getGUID(), object.getName(), object.getGMNotes())\n + \ recreateButtons()\n end\nend\n\n-- takes the deck out and splits in into + single cards\nfunction takeDeckOut(guid, pos)\n local deck = self.takeObject({ + guid = guid, position = pos, smooth = false })\n for i = 1, #deck.getObjects() + do\n self.putObject(deck.takeObject({ position = pos + Vector(0, 0.1 * i, 0), + smooth = false }))\n end\nend\n\n-- removes leaving cards from the \"cardInBag\" + table\nfunction onObjectLeaveContainer(container, object)\n if container == self + then\n local guid = object.getGUID()\n local found = false\n for i, card + in ipairs(cardsInBag) do\n if card.id == guid then\n table.remove(cardsInBag, + i)\n found = true\n break\n end\n end\n\n if found ~= + true then\n local name = object.getName()\n for i, card in ipairs(cardsInBag) + do\n if card.name == name then\n table.remove(cardsInBag, i)\n + \ break\n end\n end\n end\n recreateButtons()\n end\nend\n\n-- + refreshes displayed buttons based on contained cards\nfunction refresh()\n cardsInBag + = {}\n for _, object in ipairs(self.getObjects()) do\n findCard(object.guid, + object.name, object.gm_notes)\n end\n recreateButtons()\nend\n\n-- gets cost + and icons for a card\nfunction findCard(guid, name, GMNotes)\n local cost = \"\"\n + \ local icons = {}\n local metadata = {}\n local displayName = name\n\n if + displayName == nil or displayName == \"\" then displayName = \"unnamed\" end\n + \ if showCost or showIcons then metadata = JSON.decode(GMNotes) end\n\n if showCost + then\n if GMNotes ~= \"\" then cost = metadata.cost end\n if cost == nil + or cost == \"\" then cost = \"\u2013\" end\n displayName = \"[\" .. cost .. + \"] \" .. displayName\n end\n\n if showIcons then\n if GMNotes ~= \"\" then\n + \ icons[1] = metadata.wildIcons\n icons[2] = metadata.willpowerIcons\n + \ icons[3] = metadata.intellectIcons\n icons[4] = metadata.combatIcons\n + \ icons[5] = metadata.agilityIcons\n end\n\n local IconTypes = { \"Wild\", + \"Willpower\", \"Intellect\", \"Combat\", \"Agility\" }\n local found = false\n + \ for i = 1, 5 do\n if icons[i] ~= nil and icons[i] ~= \"\" then\n if + found == false then\n displayName = displayName .. \"\\n\" .. IconTypes[i] + .. \": \" .. icons[i]\n found = true\n else\n displayName + = displayName .. \" \" .. IconTypes[i] .. \": \" .. icons[i]\n end\n end\n + \ end\n end\n table.insert(cardsInBag, { name = name, displayName = displayName, + id = guid })\nend\n\n-- recreates buttons with up-to-date labels\nfunction recreateButtons()\n + \ self.clearButtons()\n local verticalPosition = 1.65\n\n for _, card in ipairs(cardsInBag) + do\n local id = card.id\n local funcName = \"removeCard\" .. id\n self.setVar(funcName, + function() removeCard(id) end)\n self.createButton({\n label = + card.displayName,\n click_function = funcName,\n function_owner = self,\n + \ position = { 0, -0.1, verticalPosition },\n height = + 200,\n width = 1200,\n font_size = string.len(card.displayName) + > 20 and 75 or 100\n })\n verticalPosition = verticalPosition - 0.5\n end\n\n + \ local countLabel = #cardsInBag\n local fontSize = 250\n if #cardsInBag == + 0 then\n countLabel = \"Attachment Helper\"\n fontSize = 150\n end\n\n + \ self.createButton({\n label = countLabel,\n click_function = + \"none\",\n function_owner = self,\n position = { 0, -0.1, -1.7 },\n + \ height = 0,\n width = 0,\n font_size = fontSize,\n + \ font_color = fontColor\n })\nend\n\n-- click-function for buttons to + take a card out of the bag\nfunction removeCard(cardGUID)\n self.takeObject({\n + \ guid = cardGUID,\n rotation = self.getRotation(),\n position = self.getPosition() + + Vector(0, 0.25, 0),\n callback_function = function(obj) obj.resting = true + end\n })\nend\nend)\n__bundle_register(\"util/SearchLib\", function(require, + _LOADED, __bundle_register, __bundle_modules)\ndo\n local SearchLib = {}\n local + filterFunctions = {\n isActionToken = function(x) return x.getDescription() + == \"Action Token\" end,\n isCard = function(x) return x.type == \"Card\" end,\n + \ isDeck = function(x) return x.type == \"Deck\" end,\n isCardOrDeck = function(x) + return x.type == \"Card\" or x.type == \"Deck\" end,\n isClue = function(x) + return x.memo == \"clueDoom\" and x.is_face_down == false end,\n isTileOrToken + = function(x) return x.type == \"Tile\" end\n }\n\n -- performs the actual search + and returns a filtered list of object references\n ---@param pos Table Global + position\n ---@param rot Table Global rotation\n ---@param size Table Size\n + \ ---@param filter String Name of the filter function\n ---@param direction Table + Direction (positive is up)\n ---@param maxDistance Number Distance for the cast\n + \ local function returnSearchResult(pos, rot, size, filter, direction, maxDistance)\n + \ if filter then filter = filterFunctions[filter] end\n local searchResult + = Physics.cast({\n origin = pos,\n direction = direction or + { 0, 1, 0 },\n orientation = rot or { 0, 0, 0 },\n type = 3,\n + \ size = size,\n max_distance = maxDistance or 0\n })\n\n + \ -- filtering the result\n local objList = {}\n for _, v in ipairs(searchResult) + do\n if not filter or filter(v.hit_object) then\n table.insert(objList, + v.hit_object)\n end\n end\n return objList\n end\n\n -- searches + the specified area\n SearchLib.inArea = function(pos, rot, size, filter)\n return + returnSearchResult(pos, rot, size, filter)\n end\n\n -- searches the area on + an object\n SearchLib.onObject = function(obj, filter)\n pos = obj.getPosition()\n + \ size = obj.getBounds().size:setAt(\"y\", 1)\n return returnSearchResult(pos, + _, size, filter)\n end\n\n -- searches the specified position (a single point)\n + \ SearchLib.atPosition = function(pos, filter)\n size = { 0.1, 2, 0.1 }\n return + returnSearchResult(pos, _, size, filter)\n end\n\n -- searches below the specified + position (downwards until y = 0)\n SearchLib.belowPosition = function(pos, filter)\n + \ direction = { 0, -1, 0 }\n maxDistance = pos.y\n return returnSearchResult(pos, + _, size, filter, direction, maxDistance)\n end\n\n return SearchLib\nend\nend)\nreturn + __bundle_require(\"__root\")" LuaScriptState: '[[],true,true]' MaterialIndex: -1 MeasureMovement: false @@ -198,11 +220,11 @@ ContainedObjects: posX: 19.228 posY: 3.822 posZ: -19.636 - rotX: 0.0 - rotY: 270.0 - rotZ: 359.0 + rotX: 0 + rotY: 270 + rotZ: 359 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' @@ -232,11 +254,11 @@ Transform: posX: 27.68 posY: 4.47 posZ: -31.03 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9.yaml index 1a2b6d096..03da8ae13 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.94118 - g: 0.125479937 + g: 0.12548 r: 0.62745 ContainedObjects: - !include "Bag Tarot Deck (Scripted) a230f9/Card The Magician \xB7 I 0fd716.yaml" @@ -57,9 +57,9 @@ Transform: posX: -55.03 posY: 1.41 posZ: -78.77 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.45 scaleY: 0.45 scaleZ: 0.45 diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Death · XIII a00798.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Death · XIII a00798.yaml index 5978a0acf..bd1c119cf 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Death · XIII a00798.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Death · XIII a00798.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266313 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -12.35 posY: 3.34 posZ: 54.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Judgement · XX e5e392.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Judgement · XX e5e392.yaml index fdc940df2..c54c3510c 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Judgement · XX e5e392.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Judgement · XX e5e392.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266320 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 3.08 posZ: 64.41 - rotX: 0.0 - rotY: 270.0 - rotZ: 178.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 178 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Justice · XI c4282a.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Justice · XI c4282a.yaml index f897036e4..e99fdd6be 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Justice · XI c4282a.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Justice · XI c4282a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266311 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 16.04 posY: 3.39 posZ: 45.85 - rotX: 1.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 1 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Strength · VIII e0ad3b.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Strength · VIII e0ad3b.yaml index 48a34590a..b73865f5b 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Strength · VIII e0ad3b.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Strength · VIII e0ad3b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266308 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -12.35 posY: 3.34 posZ: 52.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Temperance · XIV ffb72a.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Temperance · XIV ffb72a.yaml index 67d24ca98..6f46f89ec 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Temperance · XIV ffb72a.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Temperance · XIV ffb72a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266314 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 17.19 posY: 3.16 posZ: 48.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 356.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 356 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Chariot · VII f633db.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Chariot · VII f633db.yaml index 15897e766..c09ddb99f 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Chariot · VII f633db.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Chariot · VII f633db.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266307 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 21.65 posY: 3.33 posZ: 44.49 - rotX: 0.0 - rotY: 270.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Devil · XV 8328fd.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Devil · XV 8328fd.yaml index c4ff6808b..ecebe4075 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Devil · XV 8328fd.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Devil · XV 8328fd.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266315 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -12.35 posY: 3.58 posZ: 46.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Emperor · IV 8be589.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Emperor · IV 8be589.yaml index 60944f0c1..4331ee781 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Emperor · IV 8be589.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Emperor · IV 8be589.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266304 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -11.97 posY: 3.34 posZ: 57.31 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 90 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Empress · III ee4a47.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Empress · III ee4a47.yaml index 5bbda3d1d..33e01395b 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Empress · III ee4a47.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Empress · III ee4a47.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266303 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -12.35 posY: 3.34 posZ: 48.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Fool · 0 01cd9f.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Fool · 0 01cd9f.yaml index e55c69698..f0a3fa7fb 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Fool · 0 01cd9f.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Fool · 0 01cd9f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266300 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 3.56 posZ: 59.35 - rotX: 2.0 - rotY: 0.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 2 + rotY: 0 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hanged Man · XII 522d77.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hanged Man · XII 522d77.yaml index 5f96a0dbf..fe2452c06 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hanged Man · XII 522d77.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hanged Man · XII 522d77.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266312 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 20.96 posY: 3.21 posZ: 48.65 - rotX: 0.0 - rotY: 270.0 - rotZ: 353.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 353 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hermit · IX e2e3a0.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hermit · IX e2e3a0.yaml index 863f9e6db..165f1f2c5 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hermit · IX e2e3a0.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hermit · IX e2e3a0.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266309 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 20.95 posY: 3.12 posZ: 50.18 - rotX: 0.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 358 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hierophant · V 2f9064.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hierophant · V 2f9064.yaml index a12eb7804..9efd2d409 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hierophant · V 2f9064.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Hierophant · V 2f9064.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266305 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 17.93 posY: 3.33 posZ: 44.63 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.ttslua b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.ttslua index 8fddee22b..85990f2b9 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.ttslua +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.ttslua @@ -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/Tarotcard") +end) __bundle_register("playercards/Tarotcard", function(require, _LOADED, __bundle_register, __bundle_modules) -- context menu to manually fix rotation function onLoad() @@ -65,7 +68,4 @@ function rotateSelfAndPreview() rotatePreview() end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/Tarotcard") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.yaml index 820cf3edb..5df0a6ec9 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The High Priestess · II a6d017.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266302 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -12.11 posY: 3.34 posZ: 55.8 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Lovers · VI d5d07a.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Lovers · VI d5d07a.yaml index 1ad574bf6..8b9a21205 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Lovers · VI d5d07a.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Lovers · VI d5d07a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266306 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 17.61 posY: 3.36 posZ: 46.71 - rotX: 359.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 359 + rotY: 270 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.ttslua b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.ttslua index 8fddee22b..85990f2b9 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.ttslua +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.ttslua @@ -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/Tarotcard") +end) __bundle_register("playercards/Tarotcard", function(require, _LOADED, __bundle_register, __bundle_modules) -- context menu to manually fix rotation function onLoad() @@ -65,7 +68,4 @@ function rotateSelfAndPreview() rotatePreview() end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/Tarotcard") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.yaml index 78cac6aa6..c51d217bf 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Magician · I 0fd716.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266301 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 2.98 posZ: 65.42 - rotX: 0.0 - rotY: 270.0 - rotZ: 178.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 178 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Moon · XVIII 37c24c.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Moon · XVIII 37c24c.yaml index 921d1deb7..8a1331cde 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Moon · XVIII 37c24c.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Moon · XVIII 37c24c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266318 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 4.15 posZ: 52.3 - rotX: 2.0 - rotY: 0.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 2 + rotY: 0 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Star · XVII 37153b.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Star · XVII 37153b.yaml index f55bfc0d7..359b113a5 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Star · XVII 37153b.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Star · XVII 37153b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266317 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 4.24 posZ: 51.29 - rotX: 2.0 - rotY: 0.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 2 + rotY: 0 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Sun · XIX 65b6cb.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Sun · XIX 65b6cb.yaml index 935eec783..a0d5d17d8 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Sun · XIX 65b6cb.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Sun · XIX 65b6cb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266319 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 3.9 posZ: 55.32 - rotX: 2.0 - rotY: 0.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 2 + rotY: 0 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Tower · XVI 25ae32.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Tower · XVI 25ae32.yaml index 6e20ea51f..753c913d6 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Tower · XVI 25ae32.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The Tower · XVI 25ae32.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266316 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 2.56 posZ: 70.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 178.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 178 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The World · XXI dacc75.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The World · XXI dacc75.yaml index e448384b3..1732546e7 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The World · XXI dacc75.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card The World · XXI dacc75.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266321 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: -13.79 posY: 2.64 posZ: 69.45 - rotX: 0.0 - rotY: 270.0 - rotZ: 178.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 178 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Wheel of Fortune · X 00f067.yaml b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Wheel of Fortune · X 00f067.yaml index 7f4e86300..50169d898 100644 --- a/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Wheel of Fortune · X 00f067.yaml +++ b/unpacked/Bag Tarot Deck (Scripted) a230f9/Card Wheel of Fortune · X 00f067.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266310 ColorDiffuse: @@ -41,11 +41,11 @@ Transform: posX: 19.68 posY: 3.3 posZ: 41.77 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Token Source 124381.yaml b/unpacked/Bag Token Source 124381.yaml index 6312869c5..9b673cc91 100644 --- a/unpacked/Bag Token Source 124381.yaml +++ b/unpacked/Bag Token Source 124381.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.63589 - g: 0.167289943 - r: 0.158419937 + g: 0.16729 + r: 0.15842 ContainedObjects: - !include 'Bag Token Source 124381/Custom_Tile ClueDoom a3fb6c.yaml' - !include 'Bag Token Source 124381/Custom_Token Damage cd2a02.yaml' @@ -38,12 +38,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.05 posZ: -1.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.53 scaleY: 0.53 scaleZ: 0.53 diff --git a/unpacked/Bag Token Source 124381/Custom_Tile ClueDoom a3fb6c.yaml b/unpacked/Bag Token Source 124381/Custom_Tile ClueDoom a3fb6c.yaml index 54f4cd5b8..a4f18865a 100644 --- a/unpacked/Bag Token Source 124381/Custom_Tile ClueDoom a3fb6c.yaml +++ b/unpacked/Bag Token Source 124381/Custom_Tile ClueDoom a3fb6c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -41,11 +41,11 @@ Transform: posX: 78.66 posY: 2.4 posZ: -1.06 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Token Source 124381/Custom_Tile Path 7234af.yaml b/unpacked/Bag Token Source 124381/Custom_Tile Path 7234af.yaml index 6f865fd2b..c5cf65c92 100644 --- a/unpacked/Bag Token Source 124381/Custom_Tile Path 7234af.yaml +++ b/unpacked/Bag Token Source 124381/Custom_Tile Path 7234af.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.60453 @@ -13,10 +13,10 @@ CustomImage: Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/vppt2my.png ImageURL: https://i.imgur.com/vppt2my.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -38,9 +38,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.6045295 @@ -52,10 +52,10 @@ States: Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/HyfE8m8.png ImageURL: https://i.imgur.com/HyfE8m8.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: path @@ -85,16 +85,16 @@ States: rotX: 359.9201 rotY: 269.9961 rotZ: 0.0168742146 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.6045295 @@ -106,10 +106,10 @@ States: Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/HyfE8m8.png ImageURL: https://i.imgur.com/dHKBLoD.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: path @@ -140,7 +140,7 @@ States: rotY: 272.9828 rotZ: 0.01687373 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' @@ -152,11 +152,11 @@ Transform: posX: -50.37 posY: 1.75 posZ: -0.17 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Token Source 124381/Custom_Token Damage cd2a02.yaml b/unpacked/Bag Token Source 124381/Custom_Token Damage cd2a02.yaml index c585408c1..64c7b0db0 100644 --- a/unpacked/Bag Token Source 124381/Custom_Token Damage cd2a02.yaml +++ b/unpacked/Bag Token Source 124381/Custom_Token Damage cd2a02.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974350/E16168497E847B690A16F1C0914E4F5C872555B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -38,24 +38,24 @@ Snap: false States: '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975474/DFCA4DBDEDCC936D2A2888A98C9B2FEBCD30C22B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -80,34 +80,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975559/D34362DF759435E36BF4109C8EE397D96EDE6B56/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -132,34 +132,34 @@ States: posX: -26.8049335 posY: 1.00999987 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975658/F7CBB1000A579C9642A259174E611C0118190022/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -184,34 +184,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975808/E0965014A9756E7CB50A144006363535D43BA6F5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -236,34 +236,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975959/B5BB691A4BF8E83DD2B514C81EC38E8E082ED787/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -288,34 +288,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976119/2EFDA564FE2E9F58EB47F21B4CB69117876DCC7A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -340,34 +340,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976252/7FE12F57BD8ED418097467B0472B2B510C5B3D05/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -392,34 +392,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976402/BFC6C6655B0EB1C3DFD3819AFEA599F8D42CEB64/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -444,34 +444,34 @@ States: posX: -26.8049335 posY: 1.00999987 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976543/32E963CDBABCDEBEF3FB499670577A19689E1D8B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -496,34 +496,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976679/9CFECB352760F82A558905BC6874DD47F807F785/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -548,34 +548,34 @@ States: posX: -26.8049335 posY: 1.01000011 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974497/B53160AEF67C32741FB7393B887A745C5A0403A6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -600,34 +600,34 @@ States: posX: -26.8049335 posY: 1.00999987 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976805/C81E859758C7B35531566E99CFFDC10626F184D2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -652,34 +652,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '21': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976909/640634C5EC652071E14B8EDDEB8800ED4CFECBE3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -704,34 +704,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '22': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977001/6854680D0F7FE536050A1FDDC5A31B642BAA82FB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -756,34 +756,34 @@ States: posX: -26.8049335 posY: 1.00999987 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '23': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977114/58B8C6AFC58BEC7F5CDA992B399235E1D1CE216A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -808,34 +808,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '24': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977249/7D1F115182E691E90A505760A3349D237C0F16E1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -860,34 +860,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '25': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977373/3EB829A410A896DFBA803FB029394976F6AE0CCB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -912,34 +912,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '26': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977465/9CA5019A545C6BF2AA1BBB3112267EACAF52C01E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -964,34 +964,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '27': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977563/7037BEF939CFBDC031481366476C44C7C3EF322D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1016,34 +1016,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '28': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977715/F7661D4ADB8F7071FB4E836B2BAF43C3820848E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1068,34 +1068,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '29': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977844/58C1F8974EEF4961249B44B8517B350F18753379/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1120,34 +1120,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974625/F8D98C87DCB93C8CDF106FFAB3DA836B22DA8BEB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1172,34 +1172,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '30': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977960/7AC1D20BCD93FD3D035EC26A4C108A82E72EBA86/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1224,34 +1224,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '31': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978096/D6F6F7EDF5E14EE6B9EE21F807E7CF4F9F9EC028/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1276,34 +1276,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '32': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978200/E6CDADB9AAB0A79E8526D7A4A1F49471893F7947/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1328,34 +1328,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '33': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978337/818E96F0D2BCB45CC90CEE863677312245594B4C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1380,34 +1380,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '34': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978437/B98FDAB4D1EBC1D40E969DEF9CA7143C8D251BB4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1432,34 +1432,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '35': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978553/9A27448271331CDD6292E14F2CB49D71C50CEBF3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1484,34 +1484,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '36': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978668/D56BF0309ECBDDC4DC4C8FFB71C8B80B320A5E11/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1536,34 +1536,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '37': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978779/A532740121C41FEF6E30A9E98F933AE1D15907CB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1588,34 +1588,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '38': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978910/695348D90CBB1D5EF857964662D3D29478FAECC2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1640,34 +1640,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '39': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979053/575819DDF05E4E6FBFA296DD68E7AF6A764CE2B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1692,34 +1692,34 @@ States: posX: -26.8049335 posY: 1.00999987 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974789/EC9F446EA2DF1E2AE8369138E6873B28852469F1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1744,34 +1744,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '40': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979152/FFC073DECEC5837E340C37F6CE4F40938E40C514/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1796,34 +1796,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '41': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979285/C69BFF8D1ECC77BF0F5DAD355DD6E84A6A268731/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1848,34 +1848,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '42': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979439/375AE4A39169F62B3447BDC1AA4A26A6690A66D7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1900,34 +1900,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '43': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979609/C5BFCF1A87F14282C61EC920FD21D9B25E883693/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1952,34 +1952,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '44': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979713/BEB28A94C343F57F6DC3A81F32DDB657CD896EBC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2004,34 +2004,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '45': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979797/B27B29B4FF6D550F532D46CD0F7A3EDF984FD39A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2056,34 +2056,34 @@ States: posX: -26.8049335 posY: 1.00999987 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '46': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979901/BA1482E12F3DB002FADB2F5C74FA48EA8DE1E31F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2108,34 +2108,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '47': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980020/3756AD3A8C521914A763443EC79407CB6F38B8E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2160,34 +2160,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '48': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980124/599CAF38B47AD4B29319213CD65C40946DF84777/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2212,34 +2212,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '49': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980220/D3682CD04922D7709D49C1066AD921221AD92F74/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2264,34 +2264,34 @@ States: posX: -26.8049335 posY: 1.01000011 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974892/4AFA955A876D8E5BD28DA6164F38EDFBC9988E0F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2316,34 +2316,34 @@ States: posX: -26.8049335 posY: 1.00999987 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '50': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980328/86FB8E62D4EAD71432622244C92A7B261D1D2F6A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2368,34 +2368,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975047/33060EB9820DE72C983844818A81444377736BB1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2420,34 +2420,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975160/6B9DD5F5EBFF943633F1A97D4F2D5EAA15D2E3CA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2472,34 +2472,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975274/4E93F71661D310DB5FB0472E49E935F16AD0B16E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2524,34 +2524,34 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975360/E524936A793CC5871EE74EBE75388A61ABDD44D0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2576,11 +2576,11 @@ States: posX: -26.8049335 posY: 1.01 posZ: 9.519388 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' @@ -2590,11 +2590,11 @@ Transform: posX: 78.67 posY: 2.35 posZ: -1.21 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.24 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.24 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Token Source 124381/Custom_Token Horror 36be72.yaml b/unpacked/Bag Token Source 124381/Custom_Token Horror 36be72.yaml index fc1d0fc34..1224a3552 100644 --- a/unpacked/Bag Token Source 124381/Custom_Token Horror 36be72.yaml +++ b/unpacked/Bag Token Source 124381/Custom_Token Horror 36be72.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163535/6D9E0756503664D65BDB384656AC6D4BD713F5FC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -38,24 +38,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163230/ED46F8BBAEDB4D3C96C654D48C56110D35F3F54F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -80,34 +80,34 @@ States: posX: -27.7533741 posY: 1.210006 posZ: 15.9442654 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357162977/E5D453CC14394519E004B4F8703FC425A7AE3D6C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -132,34 +132,34 @@ States: posX: -27.7533741 posY: 1.210006 posZ: 15.9442368 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164483/5E22FEAE253AE65BDE3FA09E4EE7133569F7E194/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -184,34 +184,34 @@ States: posX: -27.7533741 posY: 1.21000612 posZ: 15.9442348 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164251/34DC7172A2B433047DA853796DB52AECE019F99F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -236,34 +236,34 @@ States: posX: -27.7533741 posY: 1.21000612 posZ: 15.9442024 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164030/0A12FD352F28A560EA7E7952D8CA618A5245F1E0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -288,34 +288,34 @@ States: posX: -27.7533741 posY: 1.21000624 posZ: 15.94415 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357114485/8B2B8A9F61CC2D8C1F10977ABDB4BA2423AD143F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -340,34 +340,34 @@ States: posX: -27.7533741 posY: 1.21000612 posZ: 15.944108 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163806/F397C22A8DDB8F22E08E42E6449C3B5D8CFDB313/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -392,34 +392,34 @@ States: posX: -27.753376 posY: 1.210006 posZ: 15.9440966 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357110165/AD791E6817304851C0ABD7AE97AA60326AC14538/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: horror @@ -444,11 +444,11 @@ States: posX: -27.753376 posY: 1.21000612 posZ: 15.9440622 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -458,11 +458,11 @@ Transform: posX: 79.03 posY: 2.31 posZ: -1.38 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' diff --git a/unpacked/Bag Token Source 124381/Custom_Token Resource 910e09.yaml b/unpacked/Bag Token Source 124381/Custom_Token Resource 910e09.yaml index bb4caa9cb..661642d87 100644 --- a/unpacked/Bag Token Source 124381/Custom_Token Resource 910e09.yaml +++ b/unpacked/Bag Token Source 124381/Custom_Token Resource 910e09.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -38,24 +38,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230067/741BC33D398801C4BC8368C345EAEF3BE2522823/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -77,12 +77,12 @@ States: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -90,24 +90,24 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808233/22B6C4A9FEE0814E6A9BDB2C833C79D66F8100B8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -129,12 +129,12 @@ States: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -142,24 +142,24 @@ States: XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230179/E3A30A2D661A12205D98D4D0E374591586C5C486/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -181,12 +181,12 @@ States: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -194,24 +194,24 @@ States: XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808359/FA36A27E47F940D14B4C45809BF1A0CD7783C8EB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -233,12 +233,12 @@ States: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -246,24 +246,24 @@ States: XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230311/11AD08ED0D8BF5B237444DAD0AF4F8144297A485/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -285,12 +285,12 @@ States: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -298,24 +298,24 @@ States: XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230402/6486457CE96C04945473D4E079CBFFAF54C7EE1B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -337,12 +337,12 @@ States: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -351,12 +351,12 @@ States: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 diff --git a/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.ttslua b/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.ttslua +++ b/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.yaml b/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.yaml index e003f64a1..030dad210 100644 --- a/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.yaml +++ b/unpacked/Bag Token Source 124381/Custom_Token Resource Counter 498ec0.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663401115/EAA6D40FC6E15204BBE551BCDED35CC8C75111BF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -38,14 +38,14 @@ Snap: false Sticky: true Tooltip: false Transform: - posX: 0.0 - posY: 3.0 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 0 + posY: 3 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model Circus Ex Mortis Campaign 93b8cb.ttslua b/unpacked/BlockRectangle Placeholder Box Dummy a93466.ttslua similarity index 100% rename from unpacked/Custom_Model Circus Ex Mortis Campaign 93b8cb.ttslua rename to unpacked/BlockRectangle Placeholder Box Dummy a93466.ttslua diff --git a/unpacked/BlockRectangle Placeholder Box Dummy a93466.yaml b/unpacked/BlockRectangle Placeholder Box Dummy a93466.yaml new file mode 100644 index 000000000..86e2acbf9 --- /dev/null +++ b/unpacked/BlockRectangle Placeholder Box Dummy a93466.yaml @@ -0,0 +1,41 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 0.82353 + g: 0.20157 + r: 0 +Description: This dummy is there to hold the up-to-date script file for placeholder + boxes to be available for placeholder box spawning. +DragSelectable: true +GMNotes: '' +GUID: a93466 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: !include 'BlockRectangle Placeholder Box Dummy a93466.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: BlockRectangle +Nickname: Placeholder Box Dummy +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.65 + posZ: -33 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/BlockRectangle Table Divider 612072.yaml b/unpacked/BlockRectangle Table Divider 612072.yaml index 62d94191d..7d2d6232a 100644 --- a/unpacked/BlockRectangle Table Divider 612072.yaml +++ b/unpacked/BlockRectangle Table Divider 612072.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.7451 @@ -32,14 +32,14 @@ Tags: - displacement_excluded Tooltip: false Transform: - posX: 0.0 + posX: 0 posY: 1.44 - posZ: 42.0 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + posZ: 42 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.25 scaleY: 0.1 - scaleZ: 70.0 + scaleZ: 70 Value: 0 XmlUI: '' diff --git a/unpacked/BlockRectangle Table Divider 75937e.yaml b/unpacked/BlockRectangle Table Divider 75937e.yaml index fcf8024f2..e29f839c1 100644 --- a/unpacked/BlockRectangle Table Divider 75937e.yaml +++ b/unpacked/BlockRectangle Table Divider 75937e.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.7451 @@ -34,12 +34,12 @@ Tooltip: false Transform: posX: -16.81 posY: 1.55 - posZ: -71.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + posZ: -71 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 scaleY: 0.1 - scaleZ: 25.0 + scaleZ: 25 Value: 0 XmlUI: '' diff --git a/unpacked/BlockRectangle Table Divider 8646eb.yaml b/unpacked/BlockRectangle Table Divider 8646eb.yaml index c78ab664d..386f74385 100644 --- a/unpacked/BlockRectangle Table Divider 8646eb.yaml +++ b/unpacked/BlockRectangle Table Divider 8646eb.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.7451 @@ -34,12 +34,12 @@ Tooltip: false Transform: posX: -29.99 posY: 1.53 - posZ: 71.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + posZ: 71 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 scaleY: 0.1 - scaleZ: 25.0 + scaleZ: 25 Value: 0 XmlUI: '' diff --git a/unpacked/BlockRectangle Table Divider 975c39.yaml b/unpacked/BlockRectangle Table Divider 975c39.yaml index 73be81d54..552ae2cb0 100644 --- a/unpacked/BlockRectangle Table Divider 975c39.yaml +++ b/unpacked/BlockRectangle Table Divider 975c39.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.7451 @@ -32,14 +32,14 @@ Tags: - displacement_excluded Tooltip: false Transform: - posX: 0.0 + posX: 0 posY: 1.44 - posZ: -42.0 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + posZ: -42 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.25 scaleY: 0.1 - scaleZ: 70.0 + scaleZ: 70 Value: 0 XmlUI: '' diff --git a/unpacked/Checker_black Arkham Deck Cutter 445115.ttslua b/unpacked/BlockSquare Physics Detector b300d8.ttslua similarity index 54% rename from unpacked/Checker_black Arkham Deck Cutter 445115.ttslua rename to unpacked/BlockSquare Physics Detector b300d8.ttslua index ef9c31b55..f3b2050d7 100644 --- a/unpacked/Checker_black Arkham Deck Cutter 445115.ttslua +++ b/unpacked/BlockSquare Physics Detector b300d8.ttslua @@ -42,38 +42,15 @@ 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("util/DeckCutter") +require("core/PhysicsDetector") end) -__bundle_register("util/DeckCutter", function(require, _LOADED, __bundle_register, __bundle_modules) --- cut 3 (6) cards from a deck if numpad 1 (2) is pressed -function onScriptingButtonDown(index, player_color) - if not (index >= 1 and index <= 2) then return end +__bundle_register("core/PhysicsDetector", function(require, _LOADED, __bundle_register, __bundle_modules) +-- will notify the user to enable physics if it appears to not be fully enabled - local count = index * 3 - local player = Player[player_color] - local object = player.getHoverObject() - - if not object then - broadcastToColor("Hover over a deck and try again.", player_color, "Orange") - return - end - if object.tag ~= "Deck" then - broadcastToColor("Hover over a deck and try again.", player_color, "Orange") - return - end - if count >= object.getQuantity() then - broadcastToColor("Deck is too small to cut " .. count .. " cards.", player_color, "Orange") - return - end - - local pos = object.positionToWorld(Vector(0, 0, -3.5)) - for _ = 1, count do - object.takeObject { - index = 0, - position = pos, - smooth = false - } - end +-- this event should only fire if physics aren't fully enabled +function onCollisionExit() + broadcastToAll("Physics disabled? Check chat log", "Orange") + printToAll("It seems like you don't have 'Physics' fully enabled. From the top menu bar, open Options > Physics and select 'Full' to experience this mod with all features.") end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/BlockSquare Physics Detector b300d8.yaml b/unpacked/BlockSquare Physics Detector b300d8.yaml new file mode 100644 index 000000000..bec61782e --- /dev/null +++ b/unpacked/BlockSquare Physics Detector b300d8.yaml @@ -0,0 +1,40 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 0 + g: 0 + r: 0.92647 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: b300d8 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'BlockSquare Physics Detector b300d8.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: BlockSquare +Nickname: Physics Detector +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.65 + posZ: 16 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/Card Detailed phase reference 68fe54.yaml b/unpacked/Card Detailed phase reference 68fe54.yaml index 72db180af..6f7740915 100644 --- a/unpacked/Card Detailed phase reference 68fe54.yaml +++ b/unpacked/Card Detailed phase reference 68fe54.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 265902 ColorDiffuse: - b: 0.713235259 - g: 0.713235259 - r: 0.713235259 + b: 0.71324 + g: 0.71324 + r: 0.71324 CustomDeck: '2659': BackIsHidden: false @@ -38,14 +38,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -62.0 + posX: -62 posY: 1.5 - posZ: 71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 71 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 5.88 - scaleY: 1.0 + scaleY: 1 scaleZ: 5.88 Value: 0 XmlUI: '' diff --git a/unpacked/Card Rules Index 91c83e.yaml b/unpacked/Card Rules Index 91c83e.yaml index aa99768b2..3f435bf31 100644 --- a/unpacked/Card Rules Index 91c83e.yaml +++ b/unpacked/Card Rules Index 91c83e.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266103 ColorDiffuse: - b: 0.713235259 - g: 0.713235259 - r: 0.713235259 + b: 0.71324 + g: 0.71324 + r: 0.71324 CustomDeck: '2661': BackIsHidden: false @@ -38,14 +38,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -62.0 + posX: -62 posY: 1.5 - posZ: 89.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 89 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 5.88 - scaleY: 1.0 + scaleY: 1 scaleZ: 5.88 Value: 0 XmlUI: '' diff --git a/unpacked/Checker_black Arkham Deck Cutter 445115.yaml b/unpacked/Checker_black Arkham Deck Cutter 445115.yaml deleted file mode 100644 index 3176b8dbd..000000000 --- a/unpacked/Checker_black Arkham Deck Cutter 445115.yaml +++ /dev/null @@ -1,42 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: '445115' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: true -LuaScript: !include 'Checker_black Arkham Deck Cutter 445115.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Checker_black -Nickname: Arkham Deck Cutter -Snap: true -Sticky: true -Tags: -- arkham_setup_memory_object -Tooltip: true -Transform: - posX: 78.0 - posY: 1.21 - posZ: 6.32 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 0.25 - scaleY: 0.25 - scaleZ: 0.25 -Value: 0 -XmlUI: '' diff --git a/unpacked/Checker_white Configuration 03804b.ttslua b/unpacked/Checker_white Configuration 03804b.ttslua index 2f3aacdc9..a617d963b 100644 --- a/unpacked/Checker_white Configuration 03804b.ttslua +++ b/unpacked/Checker_white Configuration 03804b.ttslua @@ -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/Configuration") -end) __bundle_register("arkhamdb/Configuration", function(require, _LOADED, __bundle_register, __bundle_modules) ---@type ArkhamImportConfiguration configuration = { @@ -60,7 +57,6 @@ function onRotate(spin, flip, player_color, old_spin, old_flip) if flip == 0 then configuration.api_uri = "https://arkhamdb.adamgoldsmith.name/api/public" - local builder = getObjectFromGUID("a28140") builder.UI.setXml('Adam') else configuration.api_uri = "https://arkhamdb.com/api/public" @@ -72,5 +68,8 @@ function onRotate(spin, flip, player_color, old_spin, old_flip) print("Set URL to " .. configuration.api_uri) end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("arkhamdb/Configuration") end) return __bundle_require("__root") diff --git a/unpacked/Checker_white Configuration 03804b.yaml b/unpacked/Checker_white Configuration 03804b.yaml index 2deb5345b..010696a75 100644 --- a/unpacked/Checker_white Configuration 03804b.yaml +++ b/unpacked/Checker_white Configuration 03804b.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: Flip to change between ArkhamDB/AdamDB DragSelectable: true GMNotes: '' @@ -30,13 +30,13 @@ Tags: Tooltip: true Transform: posX: -8.44 - posY: 1.83 - posZ: 77.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posY: 2 + posZ: 77 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Checker_white Token Spawn Tool 36b4ee.ttslua b/unpacked/Checker_white Token Spawn Tool 36b4ee.ttslua index 3f5ff80f5..a9b6345a0 100644 --- a/unpacked/Checker_white Token Spawn Tool 36b4ee.ttslua +++ b/unpacked/Checker_white Token Spawn Tool 36b4ee.ttslua @@ -41,10 +41,47 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end + + TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) + end + + TokenSpawnTracker.markTokensSpawned = function(cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetTokensSpawned = function(cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetAllAssetAndEvents = function() + return getSpawnTracker().call("resetAllAssetAndEvents") + end + + TokenSpawnTracker.resetAllLocations = function() + return getSpawnTracker().call("resetAllLocations") + end + + TokenSpawnTracker.resetAll = function() + return getSpawnTracker().call("resetAll") + end + + return TokenSpawnTracker +end +end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("util/TokenSpawnTool") end) __bundle_register("util/TokenSpawnTool", function(require, _LOADED, __bundle_register, __bundle_modules) +local searchLib = require("util/SearchLib") local tokenManager = require("core/token/TokenManager") local TOKEN_INDEX = {} TOKEN_INDEX[3] = "resourceCounter" @@ -55,23 +92,82 @@ TOKEN_INDEX[7] = "doom" TOKEN_INDEX[8] = "clue" TOKEN_INDEX[9] = "resource" +local stateTable = { + ["resource"] = 1, + ["ammo"] = 2, + ["bounty"] = 3, + ["charge"] = 4, + ["evidence"] = 5, + ["secret"] = 6, + ["supply"] = 7 +} + ---@param index number Index of the pressed key ---@param playerColor string Color of the triggering player function onScriptingButtonDown(index, playerColor) local tokenType = TOKEN_INDEX[index] if not tokenType then return end - local player = Player[playerColor] - local rotation = { x = 0, y = player.getPointerRotation(), z = 0 } - local position = player.getPointerPosition() + Vector(0, 0.2, 0) + local rotation = { x = 0, y = Player[playerColor].getPointerRotation(), z = 0 } + local position = Player[playerColor].getPointerPosition() + Vector(0, 0.2, 0) + local subType = "" + local callback = nil - tokenManager.spawnToken(position, tokenType, rotation) + -- check for subtype of resource based on card below + if tokenType == "resource" then + for _, obj in ipairs(searchLib.belowPosition(position, "isCard")) do + if not obj.is_face_down then + local metadata = JSON.decode(obj.getGMNotes()) or {} + local uses = metadata.uses or {} + for _, useInfo in ipairs(uses) do + if useInfo.token == "resource" then + subType = useInfo.type + break + end + end + break + end + end + + -- this is used to load the correct state for additional resource tokens (e.g. "Ammo") + local stateID = stateTable[string.lower(subType)] + if stateID ~= nil and stateID ~= 1 then + callback = function(spawned) spawned.setState(stateID) end + end + -- check hovered object for "resourceCounter" tokens and increase them instead + elseif tokenType == "resourceCounter" then + local hoverObj = Player[playerColor].getHoverObject() + if hoverObj then + if tokenType == hoverObj.getMemo() then + hoverObj.call("addOrSubtract") + return + end + end + -- check hovered object for "damage" and "horror" tokens and increase them instead + elseif tokenType == "damage" or tokenType == "horror" then + local hoverObj = Player[playerColor].getHoverObject() + if hoverObj then + if tokenType == hoverObj.getMemo() then + local stateInfo = hoverObj.getStates() + local stateId = hoverObj.getStateId() + if stateId <= #stateInfo then + hoverObj.setState(stateId + 1) + return + end + end + end + end + + tokenManager.spawnToken(position, tokenType, rotation, callback) end end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -189,15 +285,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -212,7 +303,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -230,13 +321,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -270,16 +363,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -292,9 +386,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -374,7 +470,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -407,8 +503,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -420,7 +516,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -435,19 +531,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -470,22 +564,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -505,13 +598,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -547,7 +639,6 @@ do local row = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x - 1 + 0.55 * row, pos.y, pos.z - 1.4 - 0.55 * column)) end - return cluePositions end @@ -561,12 +652,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -598,154 +687,257 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, + return TokenManager +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 Table Global position + ---@param rot Table 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) + if filter then filter = filterFunctions[filter] end + local searchResult = Physics.cast({ + origin = pos, + direction = direction or { 0, 1, 0 }, + orientation = rot or { 0, 0, 0 }, type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false + size = size, + max_distance = maxDistance or 0 + }) + + -- filtering the result + local objList = {} + for _, v in ipairs(searchResult) do + if not filter or filter(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("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 - return TokenManager + return GUIDReferenceApi +end +end) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi end end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi end end) -__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local TokenSpawnTracker = { } - - local SPAWN_TRACKER_GUID = "e3ffc9" - - TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) - end - - TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") - end - - TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") - end - - TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") - end - - return TokenSpawnTracker -end -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Checker_white Token Spawn Tool 36b4ee.yaml b/unpacked/Checker_white Token Spawn Tool 36b4ee.yaml index 39e157b2b..5cf649729 100644 --- a/unpacked/Checker_white Token Spawn Tool 36b4ee.yaml +++ b/unpacked/Checker_white Token Spawn Tool 36b4ee.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' @@ -27,12 +27,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.21 posZ: 6.95 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 + rotX: 0 + rotY: 270 + rotZ: 180 scaleX: 0.25 scaleY: 0.25 scaleZ: 0.25 diff --git a/unpacked/Checker_white Token Spawn Tracker e3ffc9.ttslua b/unpacked/Checker_white Token Spawn Tracker e3ffc9.ttslua index 705893be3..8e2f0e046 100644 --- a/unpacked/Checker_white Token Spawn Tracker e3ffc9.ttslua +++ b/unpacked/Checker_white Token Spawn Tracker e3ffc9.ttslua @@ -41,30 +41,22 @@ 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("core/token/TokenSpawnTracker") +end) __bundle_register("core/token/TokenSpawnTracker", function(require, _LOADED, __bundle_register, __bundle_modules) -local spawnedCardGuids = { } +local spawnedCardGuids = {} -local HAND_ZONES = { } -HAND_ZONES["a70eee"] = true -- White -HAND_ZONES["0285cc"] = true -- Green -HAND_ZONES["5fe087"] = true -- Orange -HAND_ZONES["be2f17"] = true -- Red +function onSave() return JSON.encode({ cards = spawnedCardGuids }) end function onLoad(saveState) if saveState ~= nil then - local saveTable = JSON.decode(saveState) or { } - spawnedCardGuids = saveTable.cards or { } + local saveTable = JSON.decode(saveState) or {} + spawnedCardGuids = saveTable.cards or {} end - createResetMenuItems() end -function onSave() - return JSON.encode({ - cards = spawnedCardGuids - }) -end - function createResetMenuItems() self.addContextMenuItem("Reset All", resetAll) self.addContextMenuItem("Reset Locations", resetAllLocations) @@ -83,14 +75,20 @@ function resetTokensSpawned(cardGuid) spawnedCardGuids[cardGuid] = nil end -function resetAllAssetAndEvents() - local resetList = { } +function resetAll() spawnedCardGuids = {} end + +function resetAllLocations() resetSpecificTypes("Location") end + +function resetAllAssetAndEvents() resetSpecificTypes("Asset", "Event") end + +function resetSpecificTypes(type1, type2) + local resetList = {} for cardGuid, _ in pairs(spawnedCardGuids) do local card = getObjectFromGUID(cardGuid) if card ~= nil then - local cardMetadata = JSON.decode(card.getGMNotes()) or { } + local cardMetadata = JSON.decode(card.getGMNotes()) or {} -- Check this by type rather than the PlayerCard tag so we don't reset weaknesses - if cardMetadata.type == "Asset" or cardMetadata.type == "Event" then + if cardMetadata.type == type1 or cardMetadata.type == type2 then resetList[cardGuid] = true end end @@ -100,35 +98,11 @@ function resetAllAssetAndEvents() end end -function resetAllLocations() - local resetList = { } - for cardGuid, _ in pairs(spawnedCardGuids) do - local card = getObjectFromGUID(cardGuid) - if card ~= nil then - local cardMetadata = JSON.decode(card.getGMNotes()) or { } - -- Check this by type rather than the PlayerCard tag so we don't reset weaknesses - if cardMetadata.type == "Location" then - resetList[cardGuid] = true - end - end - end - for cardGuid, _ in pairs(resetList) do - spawnedCardGuids[cardGuid] = nil - end -end - -function resetAll() - spawnedCardGuids = { } -end - -- Listener to reset card token spawns when they enter a hand. function onObjectEnterZone(zone, enterObject) - if HAND_ZONES[zone.getGUID()] then + if zone.type == "Hand" and enterObject.type == "Card" then resetTokensSpawned(enterObject.getGUID()) end end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/token/TokenSpawnTracker") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Checker_white Token Spawn Tracker e3ffc9.yaml b/unpacked/Checker_white Token Spawn Tracker e3ffc9.yaml index 1f2d99e73..fef1e3e23 100644 --- a/unpacked/Checker_white Token Spawn Tracker e3ffc9.yaml +++ b/unpacked/Checker_white Token Spawn Tracker e3ffc9.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.333329916 - g: 0.333329916 - r: 0.353659928 + b: 0.33333 + g: 0.33333 + r: 0.35366 Description: '' DragSelectable: true GMNotes: '' @@ -27,14 +27,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.4 posZ: 1.88 - rotX: 0.0 - rotY: 0.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.ttslua b/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.ttslua index fc8cf0a17..ac87661fe 100644 --- a/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.ttslua +++ b/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.ttslua @@ -509,4 +509,4 @@ ref_playerColor = { } --Dummy function, absorbs unwanted triggers -function none() end \ No newline at end of file +function none() end \ No newline at end of file diff --git a/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.yaml b/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.yaml index 0a8bb7862..1c602024f 100644 --- a/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.yaml +++ b/unpacked/Chinese_Checkers_Piece Flex Table Control bd69bd.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' @@ -32,9 +32,9 @@ Transform: posX: 73.16 posY: -0.26 posZ: -102.22 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 1.65 scaleY: 1.65 scaleZ: 1.65 diff --git a/unpacked/Custom_Assetbundle Decoration - Candle 5706ae.yaml b/unpacked/Custom_Assetbundle Decoration - Candle 5706ae.yaml index 81751e9e7..37fcfa92f 100644 --- a/unpacked/Custom_Assetbundle Decoration - Candle 5706ae.yaml +++ b/unpacked/Custom_Assetbundle Decoration - Candle 5706ae.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.8 @@ -36,11 +36,11 @@ Transform: posX: -50.03 posY: 1.48 posZ: -81.96 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle SoundCube 3c988f.yaml b/unpacked/Custom_Assetbundle SoundCube 3c988f.yaml index 874784f35..f0635c17e 100644 --- a/unpacked/Custom_Assetbundle SoundCube 3c988f.yaml +++ b/unpacked/Custom_Assetbundle SoundCube 3c988f.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.86837 - r: 1.0 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/2037357792047851922/4D45FF1CA6F765ED1BCE935567BE88DED2AC5710/ @@ -31,18 +31,16 @@ Name: Custom_Assetbundle Nickname: SoundCube Snap: true Sticky: true -Tags: -- SoundCube Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.65 - posZ: -27.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posZ: -27 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableBorderBottom 9f95fd.yaml b/unpacked/Custom_Assetbundle TableBorderBottom 9f95fd.yaml index a5aa19abd..bc56178ad 100644 --- a/unpacked/Custom_Assetbundle TableBorderBottom 9f95fd.yaml +++ b/unpacked/Custom_Assetbundle TableBorderBottom 9f95fd.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: -54.0 - posY: -9.0 - posZ: 0.0 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + posX: -54 + posY: -9 + posZ: 0 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 5.45 - scaleY: 1.0 - scaleZ: 1.0 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableBorderLeft 35b95f.yaml b/unpacked/Custom_Assetbundle TableBorderLeft 35b95f.yaml index a9cf84b73..ff6d9f106 100644 --- a/unpacked/Custom_Assetbundle TableBorderLeft 35b95f.yaml +++ b/unpacked/Custom_Assetbundle TableBorderLeft 35b95f.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: 0.0 - posY: -9.0 + posX: 0 + posY: -9 posZ: 80.1 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 4.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 4 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableBorderRight f938a2.yaml b/unpacked/Custom_Assetbundle TableBorderRight f938a2.yaml index 9587095a1..775e22717 100644 --- a/unpacked/Custom_Assetbundle TableBorderRight f938a2.yaml +++ b/unpacked/Custom_Assetbundle TableBorderRight f938a2.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: 0.0 - posY: -9.0 + posX: 0 + posY: -9 posZ: -80.1 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 4.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 4 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableBorderTop 5af8f2.yaml b/unpacked/Custom_Assetbundle TableBorderTop 5af8f2.yaml index 2dec2006d..a587db6c9 100644 --- a/unpacked/Custom_Assetbundle TableBorderTop 5af8f2.yaml +++ b/unpacked/Custom_Assetbundle TableBorderTop 5af8f2.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978796471/14ED0DBD593370733A0309B0950004F33EB9FACA/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: 54.0 - posY: -9.0 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 54 + posY: -9 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 5.45 - scaleY: 1.0 - scaleZ: 1.0 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableLegBottomLeft c8edca.yaml b/unpacked/Custom_Assetbundle TableLegBottomLeft c8edca.yaml index 5aed21255..313239c93 100644 --- a/unpacked/Custom_Assetbundle TableLegBottomLeft c8edca.yaml +++ b/unpacked/Custom_Assetbundle TableLegBottomLeft c8edca.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: -54.0 - posY: -9.0 + posX: -54 + posY: -9 posZ: 80.1 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 90 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableLegBottomRight afc863.yaml b/unpacked/Custom_Assetbundle TableLegBottomRight afc863.yaml index 8d6885506..799e544d0 100644 --- a/unpacked/Custom_Assetbundle TableLegBottomRight afc863.yaml +++ b/unpacked/Custom_Assetbundle TableLegBottomRight afc863.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: -54.0 - posY: -9.0 + posX: -54 + posY: -9 posZ: -80.1 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableLegTopLeft 393bf7.yaml b/unpacked/Custom_Assetbundle TableLegTopLeft 393bf7.yaml index 2a7931186..aefd16919 100644 --- a/unpacked/Custom_Assetbundle TableLegTopLeft 393bf7.yaml +++ b/unpacked/Custom_Assetbundle TableLegTopLeft 393bf7.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: 54.0 - posY: -9.0 + posX: 54 + posY: -9 posZ: 80.1 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle TableLegTopRight 12c65e.yaml b/unpacked/Custom_Assetbundle TableLegTopRight 12c65e.yaml index 1311da184..5ba578ae2 100644 --- a/unpacked/Custom_Assetbundle TableLegTopRight 12c65e.yaml +++ b/unpacked/Custom_Assetbundle TableLegTopRight 12c65e.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomAssetbundle: AssetbundleSecondaryURL: '' AssetbundleURL: http://cloud-3.steamusercontent.com/ugc/879750610978795929/723C50F43FAB3DE3DC12CB8460536E8CB34B60A3/ @@ -33,14 +33,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: 54.0 - posY: -9.0 + posX: 54 + posY: -9 posZ: -80.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Assetbundle_Bag Barkham Horror 308439.yaml b/unpacked/Custom_Assetbundle_Bag Barkham Horror 308439.yaml index d958018f0..237fb5c2a 100644 --- a/unpacked/Custom_Assetbundle_Bag Barkham Horror 308439.yaml +++ b/unpacked/Custom_Assetbundle_Bag Barkham Horror 308439.yaml @@ -1,52 +1,52 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ Name: dunwich_back Size: 7.4 Transform: - posX: 0.0 - posY: 0.0 - posZ: 0.0 - rotX: 270.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 2.0 - scaleY: 2.0 - scaleZ: 2.0 + posX: 0 + posY: 0 + posZ: 0 + rotX: 270 + rotY: 0 + rotZ: 0 + scaleX: 2 + scaleY: 2 + scaleZ: 2 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2038486699957629839/74B187339172F55B05CD212F214F5D31B117FDF0/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -77,23 +77,23 @@ ContainedObjects: = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"core/DownloadBox\")\nend)\n__bundle_register(\"core/DownloadBox\", - function(require, _LOADED, __bundle_register, __bundle_modules)\nfunction onLoad()\r\n - \ local notes = self.getGMNotes()\r\n\r\n -- default parameters (e.g. scenarios)\r\n - \ local buttonParameters = {\r\n label = \"Download\",\r\n click_function - = \"buttonClick_download\",\r\n function_owner = self,\r\n position = { - x = 0, y = 0.1, z = 2.1 },\r\n height = 250,\r\n width = 800,\r\n font_size - = 150,\r\n color = { 0, 0, 0 },\r\n font_color = { 1, 1, 1 }\r\n }\r\n\r\n - \ -- return to boxes\r\n if string.match(notes, \"................\") == \"campaigns/return\" - then\r\n buttonParameters.position.z = 2\r\n\r\n -- official campaign boxes\r\n + function(require, _LOADED, __bundle_register, __bundle_modules)\nfunction onLoad()\n + \ local notes = self.getGMNotes()\n\n -- default parameters (e.g. scenarios)\n + \ local buttonParameters = {\n label = \"Download\",\n click_function = + \"buttonClick_download\",\n function_owner = self,\n position = { x = 0, + y = 0.1, z = 2.1 },\n height = 250,\n width = 800,\n font_size = 150,\n + \ color = { 0, 0, 0 },\n font_color = { 1, 1, 1 }\n }\n\n -- return to + boxes\n if string.match(notes, \"................\") == \"campaigns/return\" + then\n buttonParameters.position.z = 2\n\n -- official campaign boxes\n \ elseif string.match(notes, \".........\") == \"campaigns\" or self.hasTag(\"LargeBox\") - then\r\n buttonParameters.position.z = 6\r\n buttonParameters.height = 500\r\n - \ buttonParameters.width = 1700\r\n buttonParameters.font_size = 350\r\n\r\n - \ -- investigator boxes\r\n elseif string.match(notes, \".............\") == - \"investigators\" then\r\n buttonParameters.position.z = 7\r\n buttonParameters.height - = 850\r\n buttonParameters.width = 3400\r\n buttonParameters.font_size = - 700\r\n end\r\n\r\n self.createButton(buttonParameters)\r\nend\r\n\r\nfunction - buttonClick_download()\r\n Global.call('placeholder_download', { url = self.getGMNotes(), - replace = self.guid })\r\nend\r\nend)\nreturn __bundle_require(\"__root\")" + then\n buttonParameters.position.z = 6\n buttonParameters.height = 500\n + \ buttonParameters.width = 1700\n buttonParameters.font_size = 350\n\n -- + investigator boxes\n elseif string.match(notes, \".............\") == \"investigators\" + then\n buttonParameters.position.z = 7\n buttonParameters.height = 850\n + \ buttonParameters.width = 3400\n buttonParameters.font_size = 700\n end\n\n + \ self.createButton(buttonParameters)\nend\n\nfunction buttonClick_download()\n + \ Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid + })\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Custom_Model @@ -105,9 +105,9 @@ ContainedObjects: posX: -41.275 posY: 3.446 posZ: -98.784 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 @@ -144,9 +144,9 @@ Transform: posX: -60.65 posY: -0.63 posZ: -80.61 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.45 scaleY: 0.45 scaleZ: 0.45 diff --git a/unpacked/Custom_Model Half-Life b46db2.ttslua b/unpacked/Custom_Model Baldur's Gate III 695abd.ttslua similarity index 100% rename from unpacked/Custom_Model Half-Life b46db2.ttslua rename to unpacked/Custom_Model Baldur's Gate III 695abd.ttslua diff --git a/unpacked/Custom_Model Baldur's Gate III 695abd.yaml b/unpacked/Custom_Model Baldur's Gate III 695abd.yaml new file mode 100644 index 000000000..d40de7e30 --- /dev/null +++ b/unpacked/Custom_Model Baldur's Gate III 695abd.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + a: 0.27843 + b: 1 + g: 1 + r: 1 +CustomMesh: + CastShadows: true + ColliderURL: '' + Convex: true + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2117314083163063648/B404BC484394C1B241A97479C3A1FDC8D33ADE2F/ + MaterialIndex: 3 + MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj + NormalURL: '' + TypeIndex: 0 +Description: by Mint Tea Fan +DragSelectable: true +GMNotes: fancreations/investigators_baldurs_gate_3.json +GUID: 695abd +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Custom_Model Baldur''s Gate III 695abd.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Model +Nickname: ' Baldur''s Gate III' +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: -26 + posY: 1.48 + posZ: -87 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 2.21 + scaleY: 0.46 + scaleZ: 2.42 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Model Circus Ex Mortis Campaign 93b8cb.yaml b/unpacked/Custom_Model Circus Ex Mortis Campaign 93b8cb.yaml deleted file mode 100644 index 6dad9bd1b..000000000 --- a/unpacked/Custom_Model Circus Ex Mortis Campaign 93b8cb.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27843 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2001337710389944099/BC4BADD35E9E87F6BC0BAC93F0FCEB168848AAAC/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_circus_ex_mortis.json -GUID: 93b8cb -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Circus Ex Mortis Campaign 93b8cb.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Circus Ex Mortis Campaign -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -25.87 - posY: 1.48 - posZ: -80.48 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model Clue Counter 032300.ttslua b/unpacked/Custom_Model Clue Counter 032300.ttslua index 3bf8fb7f0..9d8fa92e8 100644 --- a/unpacked/Custom_Model Clue Counter 032300.ttslua +++ b/unpacked/Custom_Model Clue Counter 032300.ttslua @@ -41,23 +41,17 @@ 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("playermat/ClueCounter") +end) __bundle_register("playermat/ClueCounter", function(require, _LOADED, __bundle_register, __bundle_modules) --- Table of items which can be counted in this Bowl --- Each entry has 2 things to enter --- a name (what is in the name field of that object) --- a value (how much it is worth) --- a number in the items description will override the number entry in this table -local validCountItemList = { - ["Clue"] = 1, - [""] = 1 -} -local trashGUID = "70b9f6" +local searchLib = require("util/SearchLib") exposedValue = 0 function onLoad() self.createButton({ label = "", - click_function = "removeAllClues", + click_function = "countItems", function_owner = self, position = { 0, 0.1, 0 }, height = 0, @@ -65,71 +59,95 @@ function onLoad() font_color = { 0, 0, 0 }, font_size = 2000 }) - loopID = Wait.time(countItems, 1, -1) + loopID = Wait.time(countItems, 1.5, -1) end -- Activated once per second, counts items in bowls function countItems() local totalValue = 0 - local countableItems = findValidItemsInSphere() - for _, entry in ipairs(countableItems) do - local descValue = tonumber(entry.hit_object.getDescription()) - local stackMult = math.abs(entry.hit_object.getQuantity()) - -- Use value in description if available - if descValue ~= nil then - totalValue = totalValue + descValue * stackMult - else - -- Otherwise use the value in validCountItemList - totalValue = totalValue + validCountItemList[entry.hit_object.getName()] * stackMult - end + for _, item in ipairs(getClues()) do + totalValue = totalValue + math.abs(item.getQuantity()) end exposedValue = totalValue self.editButton({ index = 0, label = totalValue }) end -function findValidItemsInSphere() - local items = Physics.cast({ - origin = self.getPosition(), - direction = { 0, 1, 0 }, - type = 2, - max_distance = 0, - size = { 2, 2, 2 }, - --debug=true - }) - - retval = {} - for _, entry in ipairs(items) do - --Ignore the bowl - if entry.hit_object ~= self then - --Ignore if not in validCountItemList - local tableEntry = validCountItemList[entry.hit_object.getName()] - if tableEntry ~= nil then - table.insert(retval, entry) - end - end +function removeAllClues(trash) + for _, obj in ipairs(getClues()) do + trash.putObject(obj) end - return retval end -function removeAllClues() - startLuaCoroutine(self, "clueRemovalCoroutine") -end - -function clueRemovalCoroutine() - for _, entry in ipairs(findValidItemsInSphere()) do - -- Do not put the table in the garbage - if entry.hit_object.getGUID() ~= "4ee1f2" then - -- delay for animation purposes - for k = 1, 10 do - coroutine.yield(0) - end - getObjectFromGUID(trashGUID).putObject(entry.hit_object) - end - end - return 1 +function getClues() + return searchLib.inArea(self.getPosition(), self.getRotation(), { 2, 1, 2 }, "isClue") end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playermat/ClueCounter") +__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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Custom_Model Clue Counter 032300.yaml b/unpacked/Custom_Model Clue Counter 032300.yaml index 4db7a4172..4d7fe4420 100644 --- a/unpacked/Custom_Model Clue Counter 032300.yaml +++ b/unpacked/Custom_Model Clue Counter 032300.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 0.0 - g: 0.0 - r: 0.0 + a: 0 + b: 0 + g: 0 + r: 0 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1035211763828036632/8CBB93F4FCFB3A6DB42AB6BC1188EA4559FF0A87/ MaterialIndex: 3 MeshURL: https://pastebin.com/raw/ALrYhQGb @@ -46,11 +46,11 @@ Sticky: true Tooltip: false Transform: posX: -31.06 - posY: 1.56 + posY: 1.52 posZ: 25.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Clue Counter 1769ed.ttslua b/unpacked/Custom_Model Clue Counter 1769ed.ttslua index d1a8426f7..9d8fa92e8 100644 --- a/unpacked/Custom_Model Clue Counter 1769ed.ttslua +++ b/unpacked/Custom_Model Clue Counter 1769ed.ttslua @@ -45,22 +45,13 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("playermat/ClueCounter") end) __bundle_register("playermat/ClueCounter", function(require, _LOADED, __bundle_register, __bundle_modules) --- Table of items which can be counted in this Bowl --- Each entry has 2 things to enter --- a name (what is in the name field of that object) --- a value (how much it is worth) --- a number in the items description will override the number entry in this table -local validCountItemList = { - ["Clue"] = 1, - [""] = 1 -} -local trashGUID = "70b9f6" +local searchLib = require("util/SearchLib") exposedValue = 0 function onLoad() self.createButton({ label = "", - click_function = "removeAllClues", + click_function = "countItems", function_owner = self, position = { 0, 0.1, 0 }, height = 0, @@ -68,68 +59,95 @@ function onLoad() font_color = { 0, 0, 0 }, font_size = 2000 }) - loopID = Wait.time(countItems, 1, -1) + loopID = Wait.time(countItems, 1.5, -1) end -- Activated once per second, counts items in bowls function countItems() local totalValue = 0 - local countableItems = findValidItemsInSphere() - for _, entry in ipairs(countableItems) do - local descValue = tonumber(entry.hit_object.getDescription()) - local stackMult = math.abs(entry.hit_object.getQuantity()) - -- Use value in description if available - if descValue ~= nil then - totalValue = totalValue + descValue * stackMult - else - -- Otherwise use the value in validCountItemList - totalValue = totalValue + validCountItemList[entry.hit_object.getName()] * stackMult - end + for _, item in ipairs(getClues()) do + totalValue = totalValue + math.abs(item.getQuantity()) end exposedValue = totalValue self.editButton({ index = 0, label = totalValue }) end -function findValidItemsInSphere() - local items = Physics.cast({ - origin = self.getPosition(), - direction = { 0, 1, 0 }, - type = 2, - max_distance = 0, - size = { 2, 2, 2 }, - --debug=true - }) - - retval = {} - for _, entry in ipairs(items) do - --Ignore the bowl - if entry.hit_object ~= self then - --Ignore if not in validCountItemList - local tableEntry = validCountItemList[entry.hit_object.getName()] - if tableEntry ~= nil then - table.insert(retval, entry) - end - end +function removeAllClues(trash) + for _, obj in ipairs(getClues()) do + trash.putObject(obj) end - return retval end -function removeAllClues() - startLuaCoroutine(self, "clueRemovalCoroutine") +function getClues() + return searchLib.inArea(self.getPosition(), self.getRotation(), { 2, 1, 2 }, "isClue") 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 + } -function clueRemovalCoroutine() - for _, entry in ipairs(findValidItemsInSphere()) do - -- Do not put the table in the garbage - if entry.hit_object.getGUID() ~= "4ee1f2" then - -- delay for animation purposes - for k = 1, 10 do - coroutine.yield(0) + -- performs the actual search and returns a filtered list of object references + ---@param pos Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(v.hit_object) then + table.insert(objList, v.hit_object) end - getObjectFromGUID(trashGUID).putObject(entry.hit_object) end + return objList end - return 1 + + -- 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") \ No newline at end of file diff --git a/unpacked/Custom_Model Clue Counter 1769ed.yaml b/unpacked/Custom_Model Clue Counter 1769ed.yaml index b01da4f9f..e07b0dc4c 100644 --- a/unpacked/Custom_Model Clue Counter 1769ed.yaml +++ b/unpacked/Custom_Model Clue Counter 1769ed.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 0.0 - g: 0.0 - r: 0.0 + a: 0 + b: 0 + g: 0 + r: 0 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1035211763828036632/8CBB93F4FCFB3A6DB42AB6BC1188EA4559FF0A87/ MaterialIndex: 3 MeshURL: https://pastebin.com/raw/ALrYhQGb @@ -48,9 +48,9 @@ Transform: posX: -59.4 posY: 1.52 posZ: -22.59 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Clue Counter 37be78.ttslua b/unpacked/Custom_Model Clue Counter 37be78.ttslua index d1a8426f7..9d8fa92e8 100644 --- a/unpacked/Custom_Model Clue Counter 37be78.ttslua +++ b/unpacked/Custom_Model Clue Counter 37be78.ttslua @@ -45,22 +45,13 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("playermat/ClueCounter") end) __bundle_register("playermat/ClueCounter", function(require, _LOADED, __bundle_register, __bundle_modules) --- Table of items which can be counted in this Bowl --- Each entry has 2 things to enter --- a name (what is in the name field of that object) --- a value (how much it is worth) --- a number in the items description will override the number entry in this table -local validCountItemList = { - ["Clue"] = 1, - [""] = 1 -} -local trashGUID = "70b9f6" +local searchLib = require("util/SearchLib") exposedValue = 0 function onLoad() self.createButton({ label = "", - click_function = "removeAllClues", + click_function = "countItems", function_owner = self, position = { 0, 0.1, 0 }, height = 0, @@ -68,68 +59,95 @@ function onLoad() font_color = { 0, 0, 0 }, font_size = 2000 }) - loopID = Wait.time(countItems, 1, -1) + loopID = Wait.time(countItems, 1.5, -1) end -- Activated once per second, counts items in bowls function countItems() local totalValue = 0 - local countableItems = findValidItemsInSphere() - for _, entry in ipairs(countableItems) do - local descValue = tonumber(entry.hit_object.getDescription()) - local stackMult = math.abs(entry.hit_object.getQuantity()) - -- Use value in description if available - if descValue ~= nil then - totalValue = totalValue + descValue * stackMult - else - -- Otherwise use the value in validCountItemList - totalValue = totalValue + validCountItemList[entry.hit_object.getName()] * stackMult - end + for _, item in ipairs(getClues()) do + totalValue = totalValue + math.abs(item.getQuantity()) end exposedValue = totalValue self.editButton({ index = 0, label = totalValue }) end -function findValidItemsInSphere() - local items = Physics.cast({ - origin = self.getPosition(), - direction = { 0, 1, 0 }, - type = 2, - max_distance = 0, - size = { 2, 2, 2 }, - --debug=true - }) - - retval = {} - for _, entry in ipairs(items) do - --Ignore the bowl - if entry.hit_object ~= self then - --Ignore if not in validCountItemList - local tableEntry = validCountItemList[entry.hit_object.getName()] - if tableEntry ~= nil then - table.insert(retval, entry) - end - end +function removeAllClues(trash) + for _, obj in ipairs(getClues()) do + trash.putObject(obj) end - return retval end -function removeAllClues() - startLuaCoroutine(self, "clueRemovalCoroutine") +function getClues() + return searchLib.inArea(self.getPosition(), self.getRotation(), { 2, 1, 2 }, "isClue") 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 + } -function clueRemovalCoroutine() - for _, entry in ipairs(findValidItemsInSphere()) do - -- Do not put the table in the garbage - if entry.hit_object.getGUID() ~= "4ee1f2" then - -- delay for animation purposes - for k = 1, 10 do - coroutine.yield(0) + -- performs the actual search and returns a filtered list of object references + ---@param pos Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(v.hit_object) then + table.insert(objList, v.hit_object) end - getObjectFromGUID(trashGUID).putObject(entry.hit_object) end + return objList end - return 1 + + -- 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") \ No newline at end of file diff --git a/unpacked/Custom_Model Clue Counter 37be78.yaml b/unpacked/Custom_Model Clue Counter 37be78.yaml index b697d67f9..8648b17bd 100644 --- a/unpacked/Custom_Model Clue Counter 37be78.yaml +++ b/unpacked/Custom_Model Clue Counter 37be78.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 0.0 - g: 0.0 - r: 0.0 + a: 0 + b: 0 + g: 0 + r: 0 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1035211763828036632/8CBB93F4FCFB3A6DB42AB6BC1188EA4559FF0A87/ MaterialIndex: 3 MeshURL: https://pastebin.com/raw/ALrYhQGb diff --git a/unpacked/Custom_Model Clue Counter d86b7c.ttslua b/unpacked/Custom_Model Clue Counter d86b7c.ttslua index 3bf8fb7f0..9d8fa92e8 100644 --- a/unpacked/Custom_Model Clue Counter d86b7c.ttslua +++ b/unpacked/Custom_Model Clue Counter d86b7c.ttslua @@ -41,23 +41,17 @@ 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("playermat/ClueCounter") +end) __bundle_register("playermat/ClueCounter", function(require, _LOADED, __bundle_register, __bundle_modules) --- Table of items which can be counted in this Bowl --- Each entry has 2 things to enter --- a name (what is in the name field of that object) --- a value (how much it is worth) --- a number in the items description will override the number entry in this table -local validCountItemList = { - ["Clue"] = 1, - [""] = 1 -} -local trashGUID = "70b9f6" +local searchLib = require("util/SearchLib") exposedValue = 0 function onLoad() self.createButton({ label = "", - click_function = "removeAllClues", + click_function = "countItems", function_owner = self, position = { 0, 0.1, 0 }, height = 0, @@ -65,71 +59,95 @@ function onLoad() font_color = { 0, 0, 0 }, font_size = 2000 }) - loopID = Wait.time(countItems, 1, -1) + loopID = Wait.time(countItems, 1.5, -1) end -- Activated once per second, counts items in bowls function countItems() local totalValue = 0 - local countableItems = findValidItemsInSphere() - for _, entry in ipairs(countableItems) do - local descValue = tonumber(entry.hit_object.getDescription()) - local stackMult = math.abs(entry.hit_object.getQuantity()) - -- Use value in description if available - if descValue ~= nil then - totalValue = totalValue + descValue * stackMult - else - -- Otherwise use the value in validCountItemList - totalValue = totalValue + validCountItemList[entry.hit_object.getName()] * stackMult - end + for _, item in ipairs(getClues()) do + totalValue = totalValue + math.abs(item.getQuantity()) end exposedValue = totalValue self.editButton({ index = 0, label = totalValue }) end -function findValidItemsInSphere() - local items = Physics.cast({ - origin = self.getPosition(), - direction = { 0, 1, 0 }, - type = 2, - max_distance = 0, - size = { 2, 2, 2 }, - --debug=true - }) - - retval = {} - for _, entry in ipairs(items) do - --Ignore the bowl - if entry.hit_object ~= self then - --Ignore if not in validCountItemList - local tableEntry = validCountItemList[entry.hit_object.getName()] - if tableEntry ~= nil then - table.insert(retval, entry) - end - end +function removeAllClues(trash) + for _, obj in ipairs(getClues()) do + trash.putObject(obj) end - return retval end -function removeAllClues() - startLuaCoroutine(self, "clueRemovalCoroutine") -end - -function clueRemovalCoroutine() - for _, entry in ipairs(findValidItemsInSphere()) do - -- Do not put the table in the garbage - if entry.hit_object.getGUID() ~= "4ee1f2" then - -- delay for animation purposes - for k = 1, 10 do - coroutine.yield(0) - end - getObjectFromGUID(trashGUID).putObject(entry.hit_object) - end - end - return 1 +function getClues() + return searchLib.inArea(self.getPosition(), self.getRotation(), { 2, 1, 2 }, "isClue") end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playermat/ClueCounter") +__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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Custom_Model Clue Counter d86b7c.yaml b/unpacked/Custom_Model Clue Counter d86b7c.yaml index 163e2ee68..c184ce520 100644 --- a/unpacked/Custom_Model Clue Counter d86b7c.yaml +++ b/unpacked/Custom_Model Clue Counter d86b7c.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 0.0 - g: 0.0 - r: 0.0 + a: 0 + b: 0 + g: 0 + r: 0 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1035211763828036632/8CBB93F4FCFB3A6DB42AB6BC1188EA4559FF0A87/ MaterialIndex: 3 MeshURL: https://pastebin.com/raw/ALrYhQGb @@ -48,9 +48,9 @@ Transform: posX: -59.45 posY: 1.52 posZ: 9.59 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model CoreNight of the Zealot 64a613.yaml b/unpacked/Custom_Model CoreNight of the Zealot 64a613.yaml index 076abfa6d..807449363 100644 --- a/unpacked/Custom_Model CoreNight of the Zealot 64a613.yaml +++ b/unpacked/Custom_Model CoreNight of the Zealot 64a613.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517667628371/18438B0A0045038A7099648AA3346DFCAA267C66/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 65.0 + posX: 65 posY: 1.48 - posZ: -55.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model Decoration - Ammo 0a3b03.yaml b/unpacked/Custom_Model Decoration - Ammo 0a3b03.yaml index 38773cdee..e060b37be 100644 --- a/unpacked/Custom_Model Decoration - Ammo 0a3b03.yaml +++ b/unpacked/Custom_Model Decoration - Ammo 0a3b03.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.141059875 - g: 0.141059875 - r: 0.141059875 + b: 0.14106 + g: 0.14106 + r: 0.14106 CustomMesh: CastShadows: true ColliderURL: '' @@ -34,14 +34,14 @@ Name: Custom_Model Nickname: Decoration - Ammo PhysicsMaterial: BounceCombine: 0 - Bounciness: 0.0 - DynamicFriction: 0.0 + Bounciness: 0 + DynamicFriction: 0 FrictionCombine: 0 - StaticFriction: 0.0 + StaticFriction: 0 Rigidbody: - AngularDrag: 0.0 - Drag: 0.0 - Mass: 500.0 + AngularDrag: 0 + Drag: 0 + Mass: 500 UseGravity: true Snap: false Sticky: true @@ -50,9 +50,9 @@ Transform: posX: -66.52 posY: 1.64 posZ: -83.3 - rotX: 8.0 - rotY: 176.0 - rotZ: 267.0 + rotX: 8 + rotY: 176 + rotZ: 267 scaleX: 0.2 scaleY: 0.3 scaleZ: 0.2 diff --git a/unpacked/Custom_Model Decoration - Ammo b43845.yaml b/unpacked/Custom_Model Decoration - Ammo b43845.yaml index 099df5373..1fc350fad 100644 --- a/unpacked/Custom_Model Decoration - Ammo b43845.yaml +++ b/unpacked/Custom_Model Decoration - Ammo b43845.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.141059875 - g: 0.141059875 - r: 0.141059875 + b: 0.14106 + g: 0.14106 + r: 0.14106 CustomMesh: CastShadows: true ColliderURL: '' @@ -34,14 +34,14 @@ Name: Custom_Model Nickname: Decoration - Ammo PhysicsMaterial: BounceCombine: 0 - Bounciness: 0.0 - DynamicFriction: 0.0 + Bounciness: 0 + DynamicFriction: 0 FrictionCombine: 0 - StaticFriction: 0.0 + StaticFriction: 0 Rigidbody: - AngularDrag: 0.0 - Drag: 0.0 - Mass: 500.0 + AngularDrag: 0 + Drag: 0 + Mass: 500 UseGravity: true Snap: false Sticky: true @@ -50,9 +50,9 @@ Transform: posX: -65.83 posY: 1.57 posZ: -81.11 - rotX: 290.0 - rotY: 59.0 - rotZ: 268.0 + rotX: 290 + rotY: 59 + rotZ: 268 scaleX: 0.2 scaleY: 0.3 scaleZ: 0.2 diff --git a/unpacked/Custom_Model Decoration - Ammo d35ee9.yaml b/unpacked/Custom_Model Decoration - Ammo d35ee9.yaml index f25079d40..315d58908 100644 --- a/unpacked/Custom_Model Decoration - Ammo d35ee9.yaml +++ b/unpacked/Custom_Model Decoration - Ammo d35ee9.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.141059875 - g: 0.141059875 - r: 0.141059875 + b: 0.14106 + g: 0.14106 + r: 0.14106 CustomMesh: CastShadows: true ColliderURL: '' @@ -34,14 +34,14 @@ Name: Custom_Model Nickname: Decoration - Ammo PhysicsMaterial: BounceCombine: 0 - Bounciness: 0.0 - DynamicFriction: 0.0 + Bounciness: 0 + DynamicFriction: 0 FrictionCombine: 0 - StaticFriction: 0.0 + StaticFriction: 0 Rigidbody: - AngularDrag: 0.0 - Drag: 0.0 - Mass: 500.0 + AngularDrag: 0 + Drag: 0 + Mass: 500 UseGravity: true Snap: false Sticky: true @@ -50,9 +50,9 @@ Transform: posX: -66.51 posY: 1.6 posZ: -88.12 - rotX: 0.0 - rotY: 161.0 - rotZ: 90.0 + rotX: 0 + rotY: 161 + rotZ: 90 scaleX: 0.2 scaleY: 0.3 scaleZ: 0.2 diff --git a/unpacked/Custom_Model Decoration - Coin 180a23.yaml b/unpacked/Custom_Model Decoration - Coin 180a23.yaml index da662120d..9d0bc632e 100644 --- a/unpacked/Custom_Model Decoration - Coin 180a23.yaml +++ b/unpacked/Custom_Model Decoration - Coin 180a23.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583186619/365F95EC37B9B27DA32781DB460F0B70DB22F43F/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: -53.18 posY: 1.52 posZ: -87.32 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Decoration - Coin 4be4a3.yaml b/unpacked/Custom_Model Decoration - Coin 4be4a3.yaml index 18b5d4fc0..b9b972831 100644 --- a/unpacked/Custom_Model Decoration - Coin 4be4a3.yaml +++ b/unpacked/Custom_Model Decoration - Coin 4be4a3.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583188147/920981125E37B5CEB6C400E3FD353A2C428DA969/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: -52.24 posY: 1.52 posZ: -88.2 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Decoration - Coin 87ccfc.yaml b/unpacked/Custom_Model Decoration - Coin 87ccfc.yaml index 3df40e193..c3e7e6e8c 100644 --- a/unpacked/Custom_Model Decoration - Coin 87ccfc.yaml +++ b/unpacked/Custom_Model Decoration - Coin 87ccfc.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583188147/920981125E37B5CEB6C400E3FD353A2C428DA969/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: -56.08 posY: 1.52 posZ: -90.48 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Decoration - Coin a90f21.yaml b/unpacked/Custom_Model Decoration - Coin a90f21.yaml index bdc396245..3da714412 100644 --- a/unpacked/Custom_Model Decoration - Coin a90f21.yaml +++ b/unpacked/Custom_Model Decoration - Coin a90f21.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583188147/920981125E37B5CEB6C400E3FD353A2C428DA969/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: -55.54 posY: 1.54 posZ: -88.08 - rotX: 0.0 - rotY: 225.0 - rotZ: 180.0 + rotX: 0 + rotY: 225 + rotZ: 180 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Decoration - Coin d7c767.yaml b/unpacked/Custom_Model Decoration - Coin d7c767.yaml index 09197efbe..22f0cc716 100644 --- a/unpacked/Custom_Model Decoration - Coin d7c767.yaml +++ b/unpacked/Custom_Model Decoration - Coin d7c767.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583188147/920981125E37B5CEB6C400E3FD353A2C428DA969/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: -54.09 posY: 1.54 posZ: -92.21 - rotX: 0.0 - rotY: 135.0 - rotZ: 180.0 + rotX: 0 + rotY: 135 + rotZ: 180 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Decoration - Coin f18c2d.yaml b/unpacked/Custom_Model Decoration - Coin f18c2d.yaml index e57ee960b..91510f796 100644 --- a/unpacked/Custom_Model Decoration - Coin f18c2d.yaml +++ b/unpacked/Custom_Model Decoration - Coin f18c2d.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583186619/365F95EC37B9B27DA32781DB460F0B70DB22F43F/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: -53.87 posY: 1.54 posZ: -93.24 - rotX: 0.0 - rotY: 180.0 - rotZ: 180.0 + rotX: 0 + rotY: 180 + rotZ: 180 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Decoration - Coin f42af3.yaml b/unpacked/Custom_Model Decoration - Coin f42af3.yaml index b991e370e..26281aef8 100644 --- a/unpacked/Custom_Model Decoration - Coin f42af3.yaml +++ b/unpacked/Custom_Model Decoration - Coin f42af3.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583186619/365F95EC37B9B27DA32781DB460F0B70DB22F43F/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: -54.28 posY: 1.52 posZ: -90.41 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.33 scaleY: 0.33 scaleZ: 0.33 diff --git a/unpacked/Custom_Model Edge of the Earth 895eaa.yaml b/unpacked/Custom_Model Edge of the Earth 895eaa.yaml index 243bb5eef..79454a71f 100644 --- a/unpacked/Custom_Model Edge of the Earth 895eaa.yaml +++ b/unpacked/Custom_Model Edge of the Earth 895eaa.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1856042908471857208/3B48FFA47FB366932049AD9CD8A3222A8F89FAEB/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 39.0 + posX: 39 posY: 1.49 - posZ: -87.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -87 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model Encounter Sets 304ffc.ttslua b/unpacked/Custom_Model Encounter Sets 304ffc.ttslua index b9201580b..829a7e2ce 100644 --- a/unpacked/Custom_Model Encounter Sets 304ffc.ttslua +++ b/unpacked/Custom_Model Encounter Sets 304ffc.ttslua @@ -4,4 +4,4 @@ end function download() Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end \ No newline at end of file +end \ No newline at end of file diff --git a/unpacked/Custom_Model Encounter Sets 304ffc.yaml b/unpacked/Custom_Model Encounter Sets 304ffc.yaml index 725fbb074..3fc018864 100644 --- a/unpacked/Custom_Model Encounter Sets 304ffc.yaml +++ b/unpacked/Custom_Model Encounter Sets 304ffc.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -47,11 +47,11 @@ Transform: posX: -66.41 posY: 1.86 posZ: -84.55 - rotX: 90.0 - rotY: 151.0 - rotZ: 0.0 - scaleX: 3.0 - scaleY: 3.0 - scaleZ: 3.0 + rotX: 90 + rotY: 151 + rotZ: 0 + scaleX: 3 + scaleY: 3 + scaleZ: 3 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model Return to The Circle Undone 757324.ttslua b/unpacked/Custom_Model Return to The Circle Undone 757324.ttslua index 3c2a044ca..e6f67c6af 100644 --- a/unpacked/Custom_Model Return to The Circle Undone 757324.ttslua +++ b/unpacked/Custom_Model Return to The Circle Undone 757324.ttslua @@ -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("core/DownloadBox") -end) __bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) function onLoad() local notes = self.getGMNotes() @@ -87,4 +84,7 @@ function buttonClick_download() Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) end end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("core/DownloadBox") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model Return to The Circle Undone 757324.yaml b/unpacked/Custom_Model Return to The Circle Undone 757324.yaml index 2a65182a3..0ee346163 100644 --- a/unpacked/Custom_Model Return to The Circle Undone 757324.yaml +++ b/unpacked/Custom_Model Return to The Circle Undone 757324.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 + b: 1 g: 0.99608 - r: 1.0 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1697277388086852852/6FD56D74FDDDA5626A3B72E788993EC651AD25E1/ MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 + MeshURL: http://cloud-3.steamusercontent.com/ugc/2278324073260846176/33EFCAF30567F8756F665BE5A2A6502E9C61C7F7/ NormalURL: '' TypeIndex: 0 Description: '' @@ -47,13 +47,13 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 13.0 + posX: 13 posY: 1.87 - posZ: -71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.0 + posZ: -71 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 2 scaleY: 0.11 scaleZ: 1.69 Value: 0 diff --git a/unpacked/Custom_Model Return to The Dunwich Legacy ce9130.yaml b/unpacked/Custom_Model Return to The Dunwich Legacy ce9130.yaml index c18f897c3..dc35fc816 100644 --- a/unpacked/Custom_Model Return to The Dunwich Legacy ce9130.yaml +++ b/unpacked/Custom_Model Return to The Dunwich Legacy ce9130.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 + b: 1 g: 0.99608 - r: 1.0 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517667592476/36D86649503A49A36AA97B7B72C6150E4C2BE333/ MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 + MeshURL: http://cloud-3.steamusercontent.com/ugc/2278324073260846176/33EFCAF30567F8756F665BE5A2A6502E9C61C7F7/ NormalURL: '' TypeIndex: 0 Description: '' @@ -47,13 +47,13 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 52.0 + posX: 52 posY: 1.87 - posZ: -71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.0 + posZ: -71 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 2 scaleY: 0.11 scaleZ: 1.69 Value: 0 diff --git a/unpacked/Custom_Model Return to The Forgotten Age 479ff3.yaml b/unpacked/Custom_Model Return to The Forgotten Age 479ff3.yaml index 4b305d495..7731d9efd 100644 --- a/unpacked/Custom_Model Return to The Forgotten Age 479ff3.yaml +++ b/unpacked/Custom_Model Return to The Forgotten Age 479ff3.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 + b: 1 g: 0.99608 - r: 1.0 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1474319121423613924/490D56D20C6AE0547D67D942513396E8D0584A4A/ MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 + MeshURL: http://cloud-3.steamusercontent.com/ugc/2278324073260846176/33EFCAF30567F8756F665BE5A2A6502E9C61C7F7/ NormalURL: '' TypeIndex: 0 Description: '' @@ -47,13 +47,13 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 26.0 + posX: 26 posY: 1.87 - posZ: -71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.0 + posZ: -71 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 2 scaleY: 0.11 scaleZ: 1.69 Value: 0 diff --git a/unpacked/Custom_Model Return to The Path to Carcosa e9889a.ttslua b/unpacked/Custom_Model Return to The Path to Carcosa e9889a.ttslua index 3c2a044ca..e6f67c6af 100644 --- a/unpacked/Custom_Model Return to The Path to Carcosa e9889a.ttslua +++ b/unpacked/Custom_Model Return to The Path to Carcosa e9889a.ttslua @@ -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("core/DownloadBox") -end) __bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) function onLoad() local notes = self.getGMNotes() @@ -87,4 +84,7 @@ function buttonClick_download() Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) end end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("core/DownloadBox") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model Return to The Path to Carcosa e9889a.yaml b/unpacked/Custom_Model Return to The Path to Carcosa e9889a.yaml index 1fbf9eed5..e36b192ee 100644 --- a/unpacked/Custom_Model Return to The Path to Carcosa e9889a.yaml +++ b/unpacked/Custom_Model Return to The Path to Carcosa e9889a.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27059 - b: 1.0 + b: 1 g: 0.99608 - r: 1.0 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517667556656/9638E8CE7F209B50634B202C9EF4B0BDB4993BBB/ MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 + MeshURL: http://cloud-3.steamusercontent.com/ugc/2278324073260846176/33EFCAF30567F8756F665BE5A2A6502E9C61C7F7/ NormalURL: '' TypeIndex: 0 Description: '' @@ -47,13 +47,13 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 39.0 + posX: 39 posY: 1.87 - posZ: -71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.0 + posZ: -71 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 2 scaleY: 0.11 scaleZ: 1.69 Value: 0 diff --git a/unpacked/Custom_Model Return to the Night of the Zealot 56270d.yaml b/unpacked/Custom_Model Return to the Night of the Zealot 56270d.yaml index 3792e6632..264689ce5 100644 --- a/unpacked/Custom_Model Return to the Night of the Zealot 56270d.yaml +++ b/unpacked/Custom_Model Return to the Night of the Zealot 56270d.yaml @@ -1,28 +1,28 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 + b: 1 g: 0.99608 - r: 1.0 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517667598054/18C06F0F20D9D4651E6736FB609E2D41F4D1964E/ MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 + MeshURL: http://cloud-3.steamusercontent.com/ugc/2278324073260846176/33EFCAF30567F8756F665BE5A2A6502E9C61C7F7/ NormalURL: '' TypeIndex: 0 Description: '' @@ -47,13 +47,13 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 65.0 + posX: 65 posY: 1.87 - posZ: -71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.0 + posZ: -71 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 2 scaleY: 0.11 scaleZ: 1.69 Value: 0 diff --git a/unpacked/Custom_Model TableSurface 4ee1f2.yaml b/unpacked/Custom_Model TableSurface 4ee1f2.yaml index 5dcfe1d1d..dfbe7406e 100644 --- a/unpacked/Custom_Model TableSurface 4ee1f2.yaml +++ b/unpacked/Custom_Model TableSurface 4ee1f2.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://i.imgur.com/EFTMP2d.jpg MaterialIndex: 1 MeshURL: http://cloud-3.steamusercontent.com/ugc/879750610978796176/4A5A65543B98BCFBF57E910D06EC984208223D38/ @@ -48,14 +48,14 @@ Tags: - displacement_excluded Tooltip: false Transform: - posX: 0.0 - posY: -9.0 - posZ: 0.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 4.0 - scaleY: 1.0 + posX: 0 + posY: -9 + posZ: 0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 4 + scaleY: 1 scaleZ: 5.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model The Circle Undone 63e097.yaml b/unpacked/Custom_Model The Circle Undone 63e097.yaml index beefb9420..d5cf92782 100644 --- a/unpacked/Custom_Model The Circle Undone 63e097.yaml +++ b/unpacked/Custom_Model The Circle Undone 63e097.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517669843863/DC0750A38111062909FEDA1BC20685895A574A54/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 13.0 + posX: 13 posY: 1.49 - posZ: -55.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model The Dream-Eaters a16a1a.yaml b/unpacked/Custom_Model The Dream-Eaters a16a1a.yaml index 1bf6646a0..0346b0b34 100644 --- a/unpacked/Custom_Model The Dream-Eaters a16a1a.yaml +++ b/unpacked/Custom_Model The Dream-Eaters a16a1a.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517669849292/9CD4BE220E1DE5294B1BC6301792920D213C98B3/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 65.0 + posX: 65 posY: 1.49 - posZ: -87.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -87 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model The Dunwich Legacy 2898f6.yaml b/unpacked/Custom_Model The Dunwich Legacy 2898f6.yaml index fda9a6130..2bb5dd10a 100644 --- a/unpacked/Custom_Model The Dunwich Legacy 2898f6.yaml +++ b/unpacked/Custom_Model The Dunwich Legacy 2898f6.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517667666249/B7EB11E1C48A63D3B8AC233FF2DF0BBAD74ECC6E/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 52.0 + posX: 52 posY: 1.48 - posZ: -55.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model The Forgotten Age 0bcf19.yaml b/unpacked/Custom_Model The Forgotten Age 0bcf19.yaml index 505334124..76116e559 100644 --- a/unpacked/Custom_Model The Forgotten Age 0bcf19.yaml +++ b/unpacked/Custom_Model The Forgotten Age 0bcf19.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517669830426/AAB750A408E887633F25AFDFB194C50A9A1518DF/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 26.0 + posX: 26 posY: 1.49 - posZ: -55.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model The Innsmouth Conspiracy 465aab.yaml b/unpacked/Custom_Model The Innsmouth Conspiracy 465aab.yaml index 149ae81a8..0afa51dfa 100644 --- a/unpacked/Custom_Model The Innsmouth Conspiracy 465aab.yaml +++ b/unpacked/Custom_Model The Innsmouth Conspiracy 465aab.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1626320664132195050/3888AC3E4F59D039C5F01B7EC72AB63174184381/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 52.0 + posX: 52 posY: 1.49 - posZ: -87.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -87 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model The Path to Carcosa aca04c.yaml b/unpacked/Custom_Model The Path to Carcosa aca04c.yaml index e428ffb69..a3ad7118a 100644 --- a/unpacked/Custom_Model The Path to Carcosa aca04c.yaml +++ b/unpacked/Custom_Model The Path to Carcosa aca04c.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517667645467/CDF71CF96691CEF2E690F71332479ACBA0697864/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 39.0 + posX: 39 posY: 1.48 - posZ: -55.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model The Scarlet Keys 300fcc.yaml b/unpacked/Custom_Model The Scarlet Keys 300fcc.yaml index b4d193942..260937857 100644 --- a/unpacked/Custom_Model The Scarlet Keys 300fcc.yaml +++ b/unpacked/Custom_Model The Scarlet Keys 300fcc.yaml @@ -1,25 +1,25 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2038486699957628515/8202EA3F06FDDD807A34BD6F62FE2E0A0723B8CD/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -47,14 +47,14 @@ Tags: - CampaignBox Tooltip: true Transform: - posX: 26.0 + posX: 26 posY: 1.49 - posZ: -87.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 + posZ: -87 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 scaleY: 0.14 - scaleZ: 1.0 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Bless tokens afa06b.yaml b/unpacked/Custom_Model_Bag Bless tokens afa06b.yaml deleted file mode 100644 index 5f838a799..000000000 --- a/unpacked/Custom_Model_Bag Bless tokens afa06b.yaml +++ /dev/null @@ -1,74 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -Bag: - Order: 0 -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -ContainedObjects: -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -- !include 'Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml' -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1655601092778623873/C9EF4B44CE708DFC5A804FF2912C9F9B47323287/ - MaterialIndex: 3 - MeshURL: https://pastebin.com/raw/ALrYhQGb - NormalURL: '' - TypeIndex: 6 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: afa06b -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: true -LuaScript: '' -LuaScriptState: '' -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Custom_Model_Bag -Nickname: Bless tokens -Snap: true -Sticky: true -Tags: -- displacement_excluded -Tooltip: true -Transform: - posX: -50.59 - posY: 1.76 - posZ: 1.03 - rotX: 359.92 - rotY: 270.0 - rotZ: 0.02 - scaleX: 0.7 - scaleY: 0.7 - scaleZ: 0.7 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079.yaml index bd0c383e2..dde1c3aa9 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 540149.yaml' - !include 'Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 b8dc75.yaml' @@ -31,13 +31,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/959719855127933035/B199A5F515A8F3ED7E06780D3723285C02ADE085/ MaterialIndex: 3 MeshURL: http://cloud-3.steamusercontent.com/ugc/87098596225685535/6C95EB6308A0A9E89367DD67D5C65D09EB3C06A0/ @@ -70,11 +70,11 @@ Transform: posX: 1.6 posY: 1.58 posZ: -13.75 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 - scaleX: 3.0 - scaleY: 3.0 - scaleZ: 3.0 + rotX: 0 + rotY: 315 + rotZ: 0 + scaleX: 3 + scaleY: 3 + scaleZ: 3 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile +1 6e0c0d.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile +1 6e0c0d.yaml index 93e2aa1de..624616f07 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile +1 6e0c0d.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile +1 6e0c0d.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/uIx8jbY.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 15e190.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 15e190.yaml index 8c0b01c1a..7f1c3e915 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 15e190.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 15e190.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/w3XbrCC.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 6633aa.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 6633aa.yaml index 3cd7e036c..b2977915e 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 6633aa.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 6633aa.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/w3XbrCC.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 b08198.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 b08198.yaml index 4d61b1743..d879de5a8 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 b08198.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -1 b08198.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/w3XbrCC.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 540149.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 540149.yaml index 42723c2b3..9e5bd039e 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 540149.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 540149.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/bfTg2hb.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 4.62 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 e30eb1.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 e30eb1.yaml index a318b33e2..b768f1911 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 e30eb1.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -2 e30eb1.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/bfTg2hb.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 6.26 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -3 6f16f0.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -3 6f16f0.yaml index 5ae035c4c..7ef6721d9 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -3 6f16f0.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -3 6f16f0.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/yfs8gHq.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -4 8e06b9.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -4 8e06b9.yaml index 61be19537..78fa46665 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -4 8e06b9.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile -4 8e06b9.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/qrgGQRD.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 90356c.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 90356c.yaml index f80788aa8..e320b3875 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 90356c.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 90356c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/btEtVfd.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 b8dc75.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 b8dc75.yaml index 1150dd3d1..8c08978a5 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 b8dc75.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile 0 b8dc75.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/btEtVfd.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Auto-fail 17e7c4.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Auto-fail 17e7c4.yaml index cdf5015f6..c10248cc1 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Auto-fail 17e7c4.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Auto-fail 17e7c4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/lns4fhz.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 7.89 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Cultist 370e96.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Cultist 370e96.yaml index dbcbda9ce..d639b2271 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Cultist 370e96.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Cultist 370e96.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/VzhJJaH.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Elder Sign 957602.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Elder Sign 957602.yaml index 91e101465..1b203a9bd 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Elder Sign 957602.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Elder Sign 957602.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/nEmqjmj.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 238252.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 238252.yaml index ddc8f1692..0a189d025 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 238252.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 238252.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/stbBxtx.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 7.08 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 25f01b.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 25f01b.yaml index 886f886f1..9aac34785 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 25f01b.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Skull 25f01b.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/stbBxtx.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 5.44 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Tablet 6ca146.yaml b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Tablet 6ca146.yaml index 197bb2692..e1e6ccacd 100644 --- a/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Tablet 6ca146.yaml +++ b/unpacked/Custom_Model_Bag Chaos Bag fea079/Custom_Tile Tablet 6ca146.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/1plY463.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 8.71 - posZ: 0.0 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 315 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418.yaml index e0c269429..abfcd297a 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Frost b2b7be.yaml' - !include 'Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Curse 16a9a7.yaml' @@ -34,13 +34,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/959719855127875098/FDA724CE3F0F9C62A141C0B33CAB238C40EDEE32/ MaterialIndex: 3 MeshURL: http://cloud-3.steamusercontent.com/ugc/87098596225685535/6C95EB6308A0A9E89367DD67D5C65D09EB3C06A0/ @@ -71,11 +71,11 @@ Transform: posX: -65.09 posY: 1.5 posZ: -78.53 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 - scaleX: 3.0 - scaleY: 3.0 - scaleZ: 3.0 + rotX: 0 + rotY: 315 + rotZ: 0 + scaleX: 3 + scaleY: 3 + scaleZ: 3 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile +1 a15273.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile +1 a15273.yaml index d7e6f23df..8291e4a9e 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile +1 a15273.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile +1 a15273.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/uIx8jbY.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 28.5 posY: 8.45 posZ: -28.95 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -1 b644d2.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -1 b644d2.yaml index 45f7ef4a9..466d2b547 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -1 b644d2.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -1 b644d2.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/w3XbrCC.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 28.79 posY: 5.22 posZ: -31.25 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -2 8af600.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -2 8af600.yaml index a7b1b585e..4122ff100 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -2 8af600.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -2 8af600.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/bfTg2hb.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 29.18 posY: 5.22 posZ: -31.92 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -3 a7a9cb.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -3 a7a9cb.yaml index 022df5613..685ae016a 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -3 a7a9cb.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -3 a7a9cb.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/yfs8gHq.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 26.46 posY: 3.44 posZ: -28.09 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -4 984eec.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -4 984eec.yaml index ed9f820ad..e109ade6a 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -4 984eec.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -4 984eec.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/qrgGQRD.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 26.4 posY: 3.44 posZ: -28.85 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -5 1df0a5.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -5 1df0a5.yaml index e196b3db9..194e054b9 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -5 1df0a5.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -5 1df0a5.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/3Ym1IeG.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 26.24 posY: 3.44 posZ: -29.09 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -6 2460df.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -6 2460df.yaml index 5c5101453..66b5b36e4 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -6 2460df.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -6 2460df.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/c9qdSzS.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 26.3 posY: 3.44 posZ: -30.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -7 81a1d7.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -7 81a1d7.yaml index d6c254487..734d7e199 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -7 81a1d7.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -7 81a1d7.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/4WRD42n.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 25.13 posY: 3.45 posZ: -27.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -8 298b5f.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -8 298b5f.yaml index a118a402b..9cc2d265c 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -8 298b5f.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile -8 298b5f.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/9t3rPTQ.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 25.12 posY: 3.45 posZ: -28.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile 0 0a8592.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile 0 0a8592.yaml index eb48ed9b9..89599a295 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile 0 0a8592.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile 0 0a8592.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/btEtVfd.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 28.78 posY: 8.49 posZ: -28.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Auto-fail e31821.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Auto-fail e31821.yaml index 93e5f2093..cf324d67e 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Auto-fail e31821.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Auto-fail e31821.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/lns4fhz.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 23.65 posY: 3.45 posZ: -29.38 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Bless 8e3aab.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Bless 8e3aab.yaml index f4baea041..9f75afaa6 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Bless 8e3aab.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Bless 8e3aab.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.04894 @@ -13,10 +13,10 @@ CustomImage: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1655601092778627699/339FB716CB25CA6025C338F13AFDFD9AC6FA8356/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 22.55 posY: 3.45 posZ: -27.08 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Cultist 7d6103.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Cultist 7d6103.yaml index 25f1d4ea2..5ad3ba14c 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Cultist 7d6103.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Cultist 7d6103.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/VzhJJaH.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 25.4 posY: 3.44 posZ: -29.87 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Curse 16a9a7.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Curse 16a9a7.yaml index 2ad70b9af..254614277 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Curse 16a9a7.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Curse 16a9a7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.44425 @@ -13,10 +13,10 @@ CustomImage: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1655601092778636039/2A25BD38E8C44701D80DD96BF0121DA21843672E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 22.65 posY: 3.45 posZ: -27.77 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Sign 0b1aca.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Sign 0b1aca.yaml index e6c9a773b..bab72635d 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Sign 0b1aca.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Sign 0b1aca.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/nEmqjmj.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 23.83 posY: 3.45 posZ: -30.13 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Thing 38609c.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Thing 38609c.yaml index 48f99a416..f1ba316c3 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Thing 38609c.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Elder Thing 38609c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/ttnspKt.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 23.82 posY: 3.45 posZ: -28.11 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Frost b2b7be.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Frost b2b7be.yaml index 4f33545bc..c6ce24cb2 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Frost b2b7be.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Frost b2b7be.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.04894 @@ -13,10 +13,10 @@ CustomImage: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1858293462583104677/195F93C063A8881B805CE2FD4767A9718B27B6AE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: -19.35 posY: 2.41 posZ: -75.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 + rotX: 0 + rotY: 270 + rotZ: 180 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Skull cc8bbb.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Skull cc8bbb.yaml index ab36e57db..7193fe3a2 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Skull cc8bbb.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Skull cc8bbb.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/stbBxtx.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 24.81 posY: 3.45 posZ: -29.04 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Tablet 1a1506.yaml b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Tablet 1a1506.yaml index 5893d2054..fee6ba872 100644 --- a/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Tablet 1a1506.yaml +++ b/unpacked/Custom_Model_Bag Chaos Token Reserve 106418/Custom_Tile Tablet 1a1506.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/1plY463.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 23.72 posY: 3.45 posZ: -26.78 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7.yaml deleted file mode 100644 index 86fb57366..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7.yaml +++ /dev/null @@ -1,116 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -Bag: - Order: 0 -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -ContainedObjects: -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Weird West Custom Investigators 58ddca.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Touhou Project Investigators c5c294.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Streets of New Capenna 48b4ca.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Strange Aeons Custom Investigators d78bd2.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Signature Replacements b06fd9.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - The Shadows of Arkham Player Cards 2e5eef.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Rabbit Hole Expansion b7ff06.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Pokemon Eldritch Edition Custom Investigators 1fb7ce.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Nightmare Pack - EN e32a71.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Maximillion Pegasus Custom Investigator 4608c8.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Mass Effect Investigators b82c6f.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Magical Girl Arkham Project 814e2a.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Lola Hayes Rework 197f36.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Kaimonogatari Player cards 64ad17.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Idol Thoughts Custom Investigators 991ff9.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - The Ghosts Of Onigawa (Investigator Expansion) c19cfa.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Gender Swapped Investigators 33272e.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Fortune or Folly - Parallel Rex Murphy Set 7fa06f.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Elspeth Baudin Custom Investigator 84c153.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Don''t Starve Investigators 2e69d0.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Delta Green Convergence Custom Investigators 84be1d.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Dead Space Investigators 880860.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Cartoon Investigators 524fbc.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Battle Goes On dd90c5.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - The Bad Batch 0a1d16.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Artifact Expansion 1.3 2f8332.yaml' -- !include 'Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model - Aespa Investigators ec74df.yaml' -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1597044073919513962/49846EAC1BFF6C62218A7933D1754ED37F4C72C8/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 6 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: ed4ca7 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: true -LuaScript: '' -LuaScriptState: '' -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Custom_Model_Bag -Nickname: Community-Created Player Cards/Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 60.0 - posY: 1.48 - posZ: 89.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 0.75 - scaleY: 0.1 - scaleZ: 0.75 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Aespa Investigators ec74df.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Aespa Investigators ec74df.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Aespa Investigators ec74df.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Aespa Investigators ec74df.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Aespa Investigators ec74df.yaml deleted file mode 100644 index 9f7e35ae5..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Aespa Investigators ec74df.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1862816781492027399/65707471C1DAF2E107F9ACDD28B5D65FDABBCE79/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: Mint Tea Fan -DragSelectable: true -GMNotes: fancreations/investigators_aespa.json -GUID: ec74df -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Aespa Investigators ec74df.ttslua' -LuaScriptState: "{\"ml\":{\"1696fd\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":269.9742,\"z\":0.0168}},\"19cce5\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3064,\"z\":-84.8185},\"rot\":{\"x\":0.0208,\"y\":269.9992,\"z\":0.0168}},\"3635a2\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3133,\"z\":-61.2414},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"3db376\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.3312,\"z\":-53.4368},\"rot\":{\"x\":0.0208,\"y\":269.9723,\"z\":0.0168}},\"6a6f2c\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":269.9791,\"z\":0.0168}},\"8ecf25\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":269.9789,\"z\":0.0168}},\"ab694b\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.3243,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":269.9892,\"z\":0.0168}},\"b0e5f7\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.3268,\"z\":-84.818},\"rot\":{\"x\":0.0208,\"y\":269.9915,\"z\":0.0168}},\"b1e673\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9791,\"z\":0.0168}},\"b5eb52\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3156,\"z\":-53.4381},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"b86f9a\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.3268,\"z\":-84.818},\"rot\":{\"x\":0.0208,\"y\":269.9919,\"z\":0.0168}},\"c8a9be\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":269.979,\"z\":0.0168}},\"e27b65\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3087,\"z\":-76.946},\"rot\":{\"x\":0.0208,\"y\":269.9992,\"z\":0.0168}},\"f32428\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"f971bf\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.3314,\"z\":-69.0606},\"rot\":{\"x\":0.0208,\"y\":269.9661,\"z\":0.0168}},\"fcb70f\":{\"lock\":false,\"pos\":{\"x\":-26.3001,\"y\":1.3674,\"z\":-61.241},\"rot\":{\"x\":0.0208,\"y\":269.9671,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Aespa Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -19.77 - posY: 1.92 - posZ: -106.22 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Artifact Expansion 1.3 2f8332.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Artifact Expansion 1.3 2f8332.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Artifact Expansion 1.3 2f8332.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Artifact Expansion 1.3 2f8332.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Artifact Expansion 1.3 2f8332.yaml deleted file mode 100644 index 583277418..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Artifact Expansion 1.3 2f8332.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1799728983834465397/5B8C8FFC332DCC1F09FEA1617F0F3446F06821DB/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By Mint Tea Fan -DragSelectable: true -GMNotes: fancreations/investigators_artifact.json -GUID: 2f8332 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Artifact Expansion 1.3 2f8332.ttslua' -LuaScriptState: "{\"ml\":{\"0cd655\":{\"lock\":false,\"pos\":{\"x\":6.757,\"y\":1.3065,\"z\":-74.3312},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"1370f5\":{\"lock\":false,\"pos\":{\"x\":6.757,\"y\":1.3098,\"z\":-63.0812},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"9887f9\":{\"lock\":false,\"pos\":{\"x\":37.0815,\"y\":1.4527,\"z\":-38.1001},\"rot\":{\"x\":359.9181,\"y\":269.9817,\"z\":0.017}},\"bc9bc6\":{\"lock\":false,\"pos\":{\"x\":6.6076,\"y\":1.3136,\"z\":-50.0096},\"rot\":{\"x\":0.0208,\"y\":270.0268,\"z\":0.0168}},\"defb26\":{\"lock\":false,\"pos\":{\"x\":6.757,\"y\":1.3082,\"z\":-68.7062},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"ec74df\":{\"lock\":false,\"pos\":{\"x\":6.757,\"y\":1.3115,\"z\":-57.4562},\"rot\":{\"x\":0.0208,\"y\":270.0008,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Artifact Expansion 1.3 -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -34.31 - posY: 2.0 - posZ: -85.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Battle Goes On dd90c5.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Battle Goes On dd90c5.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Battle Goes On dd90c5.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Battle Goes On dd90c5.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Battle Goes On dd90c5.yaml deleted file mode 100644 index 6a54a758b..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Battle Goes On dd90c5.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.7999996 - SpecularColor: - b: 0.735294163 - g: 0.735294163 - r: 0.735294163 - SpecularIntensity: 5.0 - SpecularSharpness: 8.0 - DiffuseURL: https://i.imgur.com/F4W3qLq.jpg - MaterialIndex: 2 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: by The Popest -DragSelectable: true -GMNotes: fancreations/investigators_battle_goes_on.json -GUID: dd90c5 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Battle Goes On dd90c5.ttslua' -LuaScriptState: "{\"ml\":{\"024a88\":{\"lock\":false,\"pos\":{\"x\":-26.3008,\"y\":1.2711,\"z\":-69.0611},\"rot\":{\"x\":359.9792,\"y\":89.9867,\"z\":359.9832}},\"06ba48\":{\"lock\":false,\"pos\":{\"x\":5.7548,\"y\":1.3231,\"z\":-63.0474},\"rot\":{\"x\":0.0208,\"y\":270.0127,\"z\":0.0168}},\"080508\":{\"lock\":false,\"pos\":{\"x\":-16.6234,\"y\":1.355,\"z\":-84.8014},\"rot\":{\"x\":0.0208,\"y\":269.9935,\"z\":0.0168}},\"104c1e\":{\"lock\":false,\"pos\":{\"x\":-16.6218,\"y\":1.3553,\"z\":-83.5247},\"rot\":{\"x\":0.0208,\"y\":269.9935,\"z\":0.0168}},\"112830\":{\"lock\":false,\"pos\":{\"x\":-26.3063,\"y\":1.2734,\"z\":-61.2118},\"rot\":{\"x\":359.9791,\"y\":89.8593,\"z\":359.9833}},\"13f8ae\":{\"lock\":false,\"pos\":{\"x\":5.7547,\"y\":1.3224,\"z\":-65.3523},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"196394\":{\"lock\":false,\"pos\":{\"x\":9.3938,\"y\":1.3224,\"z\":-69.9524},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"197103\":{\"lock\":false,\"pos\":{\"x\":-16.6228,\"y\":1.3573,\"z\":-76.9288},\"rot\":{\"x\":0.0208,\"y\":269.9872,\"z\":0.0168}},\"1c4e12\":{\"lock\":false,\"pos\":{\"x\":-16.6232,\"y\":1.3638,\"z\":-54.6039},\"rot\":{\"x\":0.0208,\"y\":270.0294,\"z\":0.0168}},\"23a0e7\":{\"lock\":false,\"pos\":{\"x\":9.3938,\"y\":1.321,\"z\":-74.5523},\"rot\":{\"x\":0.0208,\"y\":270.0085,\"z\":0.0168}},\"2f9839\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0168,\"y\":179.993,\"z\":359.9792}},\"321c5a\":{\"lock\":false,\"pos\":{\"x\":5.7547,\"y\":1.3204,\"z\":-72.2523},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"3bdb8f\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3087,\"z\":-76.946},\"rot\":{\"x\":0.0168,\"y\":179.9718,\"z\":359.9792}},\"3d2067\":{\"lock\":false,\"pos\":{\"x\":-16.6232,\"y\":1.3645,\"z\":-52.1352},\"rot\":{\"x\":0.0208,\"y\":270.0295,\"z\":0.0168}},\"4225c0\":{\"lock\":false,\"pos\":{\"x\":2.1095,\"y\":1.3197,\"z\":-69.9524},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"488fe7\":{\"lock\":false,\"pos\":{\"x\":-16.6232,\"y\":1.3642,\"z\":-53.3736},\"rot\":{\"x\":0.0208,\"y\":270.0294,\"z\":0.0168}},\"52e670\":{\"lock\":false,\"pos\":{\"x\":-16.6233,\"y\":1.3619,\"z\":-61.2142},\"rot\":{\"x\":0.0208,\"y\":270.0109,\"z\":0.0168}},\"585744\":{\"lock\":false,\"pos\":{\"x\":-16.6235,\"y\":1.3576,\"z\":-75.6886},\"rot\":{\"x\":0.0208,\"y\":269.9872,\"z\":0.0168}},\"5b9142\":{\"lock\":false,\"pos\":{\"x\":5.7357,\"y\":1.3809,\"z\":-58.1501},\"rot\":{\"x\":359.9792,\"y\":89.999,\"z\":359.9832}},\"5bbf47\":{\"lock\":false,\"pos\":{\"x\":-16.6233,\"y\":1.3622,\"z\":-59.9842},\"rot\":{\"x\":0.0208,\"y\":270.0109,\"z\":0.0168}},\"5de79f\":{\"lock\":false,\"pos\":{\"x\":-16.6233,\"y\":1.3592,\"z\":-70.2738},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"621b3f\":{\"lock\":false,\"pos\":{\"x\":9.3938,\"y\":1.3244,\"z\":-63.0524},\"rot\":{\"x\":0.0208,\"y\":270.0085,\"z\":0.0168}},\"668b93\":{\"lock\":false,\"pos\":{\"x\":9.3938,\"y\":1.323,\"z\":-67.6524},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"68e686\":{\"lock\":false,\"pos\":{\"x\":-16.6226,\"y\":1.3546,\"z\":-86.0018},\"rot\":{\"x\":0.0208,\"y\":269.9935,\"z\":0.0168}},\"6999ce\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"763a27\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"77d5c3\":{\"lock\":false,\"pos\":{\"x\":5.7547,\"y\":1.321,\"z\":-69.9523},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"884c7e\":{\"lock\":false,\"pos\":{\"x\":2.1095,\"y\":1.3204,\"z\":-67.6524},\"rot\":{\"x\":0.0208,\"y\":270.0085,\"z\":0.0168}},\"909fa7\":{\"lock\":false,\"pos\":{\"x\":-16.6232,\"y\":1.3615,\"z\":-62.4441},\"rot\":{\"x\":0.0208,\"y\":270.0107,\"z\":0.0168}},\"91a0fc\":{\"lock\":false,\"pos\":{\"x\":2.1095,\"y\":1.3211,\"z\":-65.3524},\"rot\":{\"x\":0.0208,\"y\":270.0085,\"z\":0.0168}},\"9341d5\":{\"lock\":false,\"pos\":{\"x\":5.7547,\"y\":1.3197,\"z\":-74.5523},\"rot\":{\"x\":0.0208,\"y\":270.0087,\"z\":0.0168}},\"93d0b4\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9415},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"9725e1\":{\"lock\":false,\"pos\":{\"x\":-16.6233,\"y\":1.3599,\"z\":-67.8038},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"97f078\":{\"lock\":false,\"pos\":{\"x\":2.1095,\"y\":1.319,\"z\":-72.2524},\"rot\":{\"x\":0.0208,\"y\":270.0085,\"z\":0.0168}},\"a768fb\":{\"lock\":false,\"pos\":{\"x\":-26.3006,\"y\":1.2757,\"z\":-53.4371},\"rot\":{\"x\":359.9792,\"y\":89.9837,\"z\":359.9832}},\"a836d9\":{\"lock\":false,\"pos\":{\"x\":2.1095,\"y\":1.3184,\"z\":-74.5525},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"a9b4ce\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3156,\"z\":-53.4381},\"rot\":{\"x\":0.0168,\"y\":179.9562,\"z\":359.9792}},\"a9d598\":{\"lock\":false,\"pos\":{\"x\":9.3938,\"y\":1.3217,\"z\":-72.2524},\"rot\":{\"x\":0.0208,\"y\":270.0085,\"z\":0.0168}},\"ac8f35\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3133,\"z\":-61.241},\"rot\":{\"x\":0.0168,\"y\":180.0202,\"z\":359.9792}},\"b041a2\":{\"lock\":false,\"pos\":{\"x\":5.7547,\"y\":1.3217,\"z\":-67.6523},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}},\"b2b405\":{\"lock\":false,\"pos\":{\"x\":-26.3053,\"y\":1.2688,\"z\":-76.9457},\"rot\":{\"x\":359.9792,\"y\":89.9226,\"z\":359.9832}},\"bccf2a\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"d3dcdd\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"d4c471\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3282,\"z\":-84.8185},\"rot\":{\"x\":0.0168,\"y\":179.9697,\"z\":359.9792}},\"dde61c\":{\"lock\":false,\"pos\":{\"x\":2.1103,\"y\":1.3217,\"z\":-63.0467},\"rot\":{\"x\":0.0208,\"y\":270.0043,\"z\":0.0168}},\"e7550c\":{\"lock\":false,\"pos\":{\"x\":-16.6235,\"y\":1.3596,\"z\":-69.0435},\"rot\":{\"x\":0.0208,\"y\":269.9992,\"z\":0.0168}},\"f9f51a\":{\"lock\":false,\"pos\":{\"x\":-16.6233,\"y\":1.3569,\"z\":-78.1588},\"rot\":{\"x\":0.0208,\"y\":269.9872,\"z\":0.0168}},\"fd8d58\":{\"lock\":false,\"pos\":{\"x\":-26.298,\"y\":1.2665,\"z\":-84.819},\"rot\":{\"x\":359.9792,\"y\":89.9734,\"z\":359.9832}},\"ffcf21\":{\"lock\":false,\"pos\":{\"x\":9.3938,\"y\":1.3237,\"z\":-65.3524},\"rot\":{\"x\":0.0208,\"y\":270.0086,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Battle Goes On -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 18.95 - posY: 1.92 - posZ: -135.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.18 - scaleY: 0.45 - scaleZ: 2.38 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Cartoon Investigators 524fbc.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Cartoon Investigators 524fbc.ttslua deleted file mode 100644 index c48384e2f..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Cartoon Investigators 524fbc.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,7}, rotation={0,0,0}, height=850, width=3300, - font_size=700, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Cartoon Investigators 524fbc.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Cartoon Investigators 524fbc.yaml deleted file mode 100644 index 21da36fcf..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Cartoon Investigators 524fbc.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1785092789057549667/7230A58735443DF70B24F5BAFD93B4FBBC1B28D7/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_cartoon_funtime.json -GUID: 524fbc -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Cartoon Investigators 524fbc.ttslua' -LuaScriptState: "{\"ml\":{\"04945b\":{\"lock\":false,\"pos\":{\"x\":-19.6592,\"y\":1.3154,\"z\":-57.5937},\"rot\":{\"x\":0.0208,\"y\":269.9937,\"z\":0.0168}},\"0636ab\":{\"lock\":false,\"pos\":{\"x\":-25.9113,\"y\":1.2681,\"z\":-79.7757},\"rot\":{\"x\":359.9792,\"y\":90.0033,\"z\":359.9832}},\"123caa\":{\"lock\":false,\"pos\":{\"x\":-22.4528,\"y\":1.3058,\"z\":-86.9656},\"rot\":{\"x\":0.0208,\"y\":270.0191,\"z\":0.0168}},\"14bef8\":{\"lock\":false,\"pos\":{\"x\":-22.5761,\"y\":1.3166,\"z\":-50.0492},\"rot\":{\"x\":0.0208,\"y\":270.0168,\"z\":0.0168}},\"20ff4c\":{\"lock\":false,\"pos\":{\"x\":-25.7759,\"y\":1.2746,\"z\":-57.6721},\"rot\":{\"x\":359.9792,\"y\":90.0001,\"z\":359.9832}},\"27a0b8\":{\"lock\":false,\"pos\":{\"x\":-19.5361,\"y\":1.3069,\"z\":-86.8433},\"rot\":{\"x\":0.0208,\"y\":269.9789,\"z\":0.0168}},\"287b34\":{\"lock\":false,\"pos\":{\"x\":-22.2417,\"y\":1.3059,\"z\":-86.9506},\"rot\":{\"x\":0.0208,\"y\":270.0191,\"z\":0.0168}},\"33566f\":{\"lock\":false,\"pos\":{\"x\":-22.594,\"y\":1.3121,\"z\":-65.4763},\"rot\":{\"x\":0.0208,\"y\":270.0115,\"z\":0.0168}},\"3446fd\":{\"lock\":false,\"pos\":{\"x\":-22.5687,\"y\":1.3143,\"z\":-57.8367},\"rot\":{\"x\":0.0208,\"y\":270.017,\"z\":0.0168}},\"46d9c7\":{\"lock\":false,\"pos\":{\"x\":-19.6502,\"y\":1.3131,\"z\":-65.5617},\"rot\":{\"x\":0.0208,\"y\":270.0117,\"z\":0.0168}},\"5b6db3\":{\"lock\":false,\"pos\":{\"x\":-22.4189,\"y\":1.3144,\"z\":-57.5627},\"rot\":{\"x\":0.0208,\"y\":270.017,\"z\":0.0168}},\"7200cf\":{\"lock\":false,\"pos\":{\"x\":-25.8249,\"y\":1.266,\"z\":-86.9147},\"rot\":{\"x\":359.9792,\"y\":89.9983,\"z\":359.9832}},\"73d2da\":{\"lock\":false,\"pos\":{\"x\":-25.9665,\"y\":1.2702,\"z\":-72.4131},\"rot\":{\"x\":359.9792,\"y\":89.9862,\"z\":359.9832}},\"7b0461\":{\"lock\":false,\"pos\":{\"x\":-19.5429,\"y\":1.3178,\"z\":-49.6959},\"rot\":{\"x\":0.0208,\"y\":270.003,\"z\":0.0168}},\"8a8776\":{\"lock\":false,\"pos\":{\"x\":-19.639,\"y\":1.3112,\"z\":-71.9966},\"rot\":{\"x\":0.0208,\"y\":269.9857,\"z\":0.0168}},\"948d48\":{\"lock\":false,\"pos\":{\"x\":-22.5272,\"y\":1.3166,\"z\":-50.0108},\"rot\":{\"x\":0.0208,\"y\":269.9997,\"z\":0.0168}},\"9ad519\":{\"lock\":false,\"pos\":{\"x\":-22.5767,\"y\":1.3101,\"z\":-72.195},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"9ceaf0\":{\"lock\":false,\"pos\":{\"x\":-25.6646,\"y\":1.2769,\"z\":-50.1079},\"rot\":{\"x\":359.9792,\"y\":89.9992,\"z\":359.9832}},\"a99c28\":{\"lock\":false,\"pos\":{\"x\":-22.5172,\"y\":1.3102,\"z\":-72.038},\"rot\":{\"x\":0.0208,\"y\":270.0114,\"z\":0.0168}},\"bccab4\":{\"lock\":false,\"pos\":{\"x\":-22.2837,\"y\":1.3081,\"z\":-79.3587},\"rot\":{\"x\":0.0208,\"y\":270.0239,\"z\":0.0168}},\"c1f881\":{\"lock\":false,\"pos\":{\"x\":-22.497,\"y\":1.308,\"z\":-79.5444},\"rot\":{\"x\":0.0208,\"y\":270.0158,\"z\":0.0168}},\"d213c3\":{\"lock\":false,\"pos\":{\"x\":-19.3052,\"y\":1.3092,\"z\":-79.339},\"rot\":{\"x\":0.0208,\"y\":270.0067,\"z\":0.0168}},\"dc27c7\":{\"lock\":false,\"pos\":{\"x\":-25.8464,\"y\":1.2723,\"z\":-65.495},\"rot\":{\"x\":359.9792,\"y\":89.9999,\"z\":359.9832}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Cartoon Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -23.61 - posY: 1.92 - posZ: -135.63 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 0.5 - scaleY: 0.14 - scaleZ: 0.5 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Dead Space Investigators 880860.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Dead Space Investigators 880860.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Dead Space Investigators 880860.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Dead Space Investigators 880860.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Dead Space Investigators 880860.yaml deleted file mode 100644 index 550959347..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Dead Space Investigators 880860.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1898848485543773146/5255CF70ED228D9C98E4C9F4F010577A77B5C46E/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_dead_space.json -GUID: '880860' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Dead Space Investigators 880860.ttslua' -LuaScriptState: "{\"ml\":{\"0e87e4\":{\"lock\":false,\"pos\":{\"x\":-19.2996,\"y\":1.3121,\"z\":-53.4354},\"rot\":{\"x\":0.0208,\"y\":270.0032,\"z\":0.0168}},\"31bcc4\":{\"lock\":false,\"pos\":{\"x\":-19.2931,\"y\":1.3052,\"z\":-76.9412},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"664a1f\":{\"lock\":false,\"pos\":{\"x\":-19.2954,\"y\":1.3075,\"z\":-69.0603},\"rot\":{\"x\":0.0208,\"y\":269.9912,\"z\":0.0168}},\"778b85\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.3661,\"z\":-69.0606},\"rot\":{\"x\":359.9792,\"y\":90,\"z\":359.9832}},\"a8b092\":{\"lock\":false,\"pos\":{\"x\":-18.4906,\"y\":1.3421,\"z\":-92.0345},\"rot\":{\"x\":0.0208,\"y\":269.996,\"z\":0.0168}},\"d008cb\":{\"lock\":false,\"pos\":{\"x\":-19.2989,\"y\":1.3029,\"z\":-84.8179},\"rot\":{\"x\":0.0208,\"y\":269.9994,\"z\":0.0168}},\"e9a591\":{\"lock\":false,\"pos\":{\"x\":-19.2996,\"y\":1.3098,\"z\":-61.2329},\"rot\":{\"x\":0.0208,\"y\":269.9969,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Dead Space Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 19.67 - posY: 2.25 - posZ: -97.9 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Delta Green Convergence Custom Investigators 84be1d.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Delta Green Convergence Custom Investigators 84be1d.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Delta Green Convergence Custom Investigators 84be1d.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Delta Green Convergence Custom Investigators 84be1d.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Delta Green Convergence Custom Investigators 84be1d.yaml deleted file mode 100644 index d26a2eaca..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Delta Green Convergence Custom Investigators 84be1d.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142900469/BDA1068C5A88459AE805540FE05B8092C4F8F392/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_delta_green_convergence.json -GUID: 84be1d -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Delta Green Convergence Custom Investigators 84be1d.ttslua' -LuaScriptState: "{\"ml\":{\"03052d\":{\"lock\":false,\"pos\":{\"x\":-16.6400871276855,\"y\":1.31545794010162,\"z\":-61.2309913635254},\"rot\":{\"x\":0.0208080485463142,\"y\":270.002471923828,\"z\":0.0167713277041912}},\"0d7398\":{\"lock\":false,\"pos\":{\"x\":-19.2936096191406,\"y\":1.30989539623261,\"z\":-76.9415588378906},\"rot\":{\"x\":0.0208107028156519,\"y\":269.995147705078,\"z\":0.0167693216353655}},\"171e82\":{\"lock\":false,\"pos\":{\"x\":-22.6169109344482,\"y\":1.32333660125732,\"z\":-84.8184967041016},\"rot\":{\"x\":0.0208145696669817,\"y\":269.982055664063,\"z\":0.0167649257928133}},\"359a15\":{\"lock\":false,\"pos\":{\"x\":-16.6400699615479,\"y\":1.31775295734406,\"z\":-53.3904228210449},\"rot\":{\"x\":0.0208138208836317,\"y\":269.982574462891,\"z\":0.0167645756155252}},\"37589e\":{\"lock\":false,\"pos\":{\"x\":-22.6139087677002,\"y\":1.33252322673798,\"z\":-53.4381332397461},\"rot\":{\"x\":0.0208039656281471,\"y\":270.015686035156,\"z\":0.0167767275124788}},\"498a00\":{\"lock\":false,\"pos\":{\"x\":-16.6403007507324,\"y\":1.31316554546356,\"z\":-69.0603103637695},\"rot\":{\"x\":0.0208092965185642,\"y\":270.000244140625,\"z\":0.0167721156030893}},\"597c69\":{\"lock\":false,\"pos\":{\"x\":-16.6395988464355,\"y\":1.31085801124573,\"z\":-76.9456481933594},\"rot\":{\"x\":0.0208100099116564,\"y\":269.999908447266,\"z\":0.01677231118083}},\"6e601f\":{\"lock\":false,\"pos\":{\"x\":-19.3000774383545,\"y\":1.31449115276337,\"z\":-61.2332534790039},\"rot\":{\"x\":0.0208101477473974,\"y\":269.995147705078,\"z\":0.0167695451527834}},\"74db2c\":{\"lock\":false,\"pos\":{\"x\":-16.6402435302734,\"y\":1.30855345726013,\"z\":-84.8182067871094},\"rot\":{\"x\":0.0208147522062063,\"y\":269.981872558594,\"z\":0.0167650897055864}},\"76d8e1\":{\"lock\":false,\"pos\":{\"x\":-19.2997856140137,\"y\":1.30758762359619,\"z\":-84.8181838989258},\"rot\":{\"x\":0.0208103209733963,\"y\":269.995147705078,\"z\":0.0167695097625256}},\"acefbf\":{\"lock\":false,\"pos\":{\"x\":-19.3000202178955,\"y\":1.31677353382111,\"z\":-53.4358367919922},\"rot\":{\"x\":0.0208102278411388,\"y\":269.995147705078,\"z\":0.0167693123221397}},\"c45c7a\":{\"lock\":false,\"pos\":{\"x\":-22.6156978607178,\"y\":1.32794523239136,\"z\":-69.0756225585938},\"rot\":{\"x\":0.0208086371421814,\"y\":269.999908447266,\"z\":0.0167715176939964}},\"eb9311\":{\"lock\":false,\"pos\":{\"x\":-22.6169662475586,\"y\":1.33023798465729,\"z\":-61.2413864135742},\"rot\":{\"x\":0.0208078268915415,\"y\":270.002685546875,\"z\":0.016772011294961}},\"f1b636\":{\"lock\":false,\"pos\":{\"x\":-22.615758895874,\"y\":1.3256413936615,\"z\":-76.9460372924805},\"rot\":{\"x\":0.0208090450614691,\"y\":269.999298095703,\"z\":0.0167714692652225}},\"f64ead\":{\"lock\":false,\"pos\":{\"x\":-19.2958679199219,\"y\":1.31220149993896,\"z\":-69.0606918334961},\"rot\":{\"x\":0.0208100024610758,\"y\":269.995178222656,\"z\":0.0167694520205259}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Delta Green Convergence Custom Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -33.85 - posY: 2.0 - posZ: -87.57 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Don't Starve Investigators 2e69d0.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Don't Starve Investigators 2e69d0.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Don't Starve Investigators 2e69d0.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Don't Starve Investigators 2e69d0.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Don't Starve Investigators 2e69d0.yaml deleted file mode 100644 index ef315d042..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Don't Starve Investigators 2e69d0.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1646593716898209387/B827263B809A6C8E1042BDF1C8D33E58458C2EF4/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_dont_starve.json -GUID: 2e69d0 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Don''t Starve Investigators 2e69d0.ttslua' -LuaScriptState: "{\"ml\":{\"049651\":{\"lock\":false,\"pos\":{\"x\":-39.9984016418457,\"y\":1.30796504020691,\"z\":-57.847900390625},\"rot\":{\"x\":0.0208088103681803,\"y\":269.999420166016,\"z\":0.0167709793895483}},\"05534d\":{\"lock\":false,\"pos\":{\"x\":-40.433277130127,\"y\":1.30174255371094,\"z\":-78.5659561157227},\"rot\":{\"x\":0.0208085998892784,\"y\":270.000030517578,\"z\":0.0167712327092886}},\"0b4057\":{\"lock\":false,\"pos\":{\"x\":-54.2104759216309,\"y\":1.29435074329376,\"z\":-86.7248611450195},\"rot\":{\"x\":0.0208057351410389,\"y\":270.009887695313,\"z\":0.0167745146900415}},\"0de265\":{\"lock\":false,\"pos\":{\"x\":-50.5162010192871,\"y\":1.30271863937378,\"z\":-62.7216987609863},\"rot\":{\"x\":0.0208138264715672,\"y\":269.981567382813,\"z\":0.0167644713073969}},\"10aa14\":{\"lock\":false,\"pos\":{\"x\":-40.0200996398926,\"y\":1.3072521686554,\"z\":-60.2564010620117},\"rot\":{\"x\":0.0208086967468262,\"y\":269.999725341797,\"z\":0.0167712494730949}},\"144811\":{\"lock\":false,\"pos\":{\"x\":-50.831672668457,\"y\":1.29631996154785,\"z\":-84.1897583007813},\"rot\":{\"x\":0.0208147037774324,\"y\":269.978698730469,\"z\":0.0167634543031454}},\"16e931\":{\"lock\":false,\"pos\":{\"x\":-54.2816009521484,\"y\":1.32870221138,\"z\":-60.0937995910645},\"rot\":{\"x\":0.0208068005740643,\"y\":270.006652832031,\"z\":0.0167733412235975}},\"181416\":{\"lock\":false,\"pos\":{\"x\":-47.2076797485352,\"y\":1.29929566383362,\"z\":-78.5202560424805},\"rot\":{\"x\":0.0208087675273418,\"y\":269.999847412109,\"z\":0.0167711023241282}},\"208789\":{\"lock\":false,\"pos\":{\"x\":-46.9576988220215,\"y\":1.30474603176117,\"z\":-60.2104988098145},\"rot\":{\"x\":0.0208103526383638,\"y\":269.993927001953,\"z\":0.0167688690125942}},\"23d08a\":{\"lock\":false,\"pos\":{\"x\":-43.5625,\"y\":1.30455183982849,\"z\":-65.0863037109375},\"rot\":{\"x\":0.0208085887134075,\"y\":270.000183105469,\"z\":0.0167711470276117}},\"2ab220\":{\"lock\":false,\"pos\":{\"x\":-54.1502075195313,\"y\":1.29681360721588,\"z\":-78.3857879638672},\"rot\":{\"x\":0.0208087991923094,\"y\":270.000122070313,\"z\":0.0167712289839983}},\"2e6779\":{\"lock\":false,\"pos\":{\"x\":-40.3589744567871,\"y\":1.29947459697723,\"z\":-86.4064559936523},\"rot\":{\"x\":0.0208109170198441,\"y\":269.992004394531,\"z\":0.0167681444436312}},\"374e9c\":{\"lock\":false,\"pos\":{\"x\":-50.3554992675781,\"y\":1.30513906478882,\"z\":-54.6520004272461},\"rot\":{\"x\":0.0208085868507624,\"y\":269.999969482422,\"z\":0.0167713407427073}},\"3b7f5e\":{\"lock\":false,\"pos\":{\"x\":-46.8041000366211,\"y\":1.30546891689301,\"z\":-57.9314002990723},\"rot\":{\"x\":0.0208088327199221,\"y\":269.999969482422,\"z\":0.0167714394629002}},\"415ff5\":{\"lock\":false,\"pos\":{\"x\":-54.3089752197266,\"y\":1.31680154800415,\"z\":-84.2695617675781},\"rot\":{\"x\":0.0208021737635136,\"y\":270.023040771484,\"z\":0.0167790465056896}},\"4506c2\":{\"lock\":false,\"pos\":{\"x\":-53.8877983093262,\"y\":1.30392014980316,\"z\":-54.4329986572266},\"rot\":{\"x\":0.0208087544888258,\"y\":269.999969482422,\"z\":0.0167711414396763}},\"4eef97\":{\"lock\":false,\"pos\":{\"x\":-46.9905014038086,\"y\":1.30403566360474,\"z\":-62.5960998535156},\"rot\":{\"x\":0.0208025723695755,\"y\":270.020385742188,\"z\":0.016778577119112}},\"5244b7\":{\"lock\":false,\"pos\":{\"x\":-47.1529731750488,\"y\":1.29834735393524,\"z\":-81.8277587890625},\"rot\":{\"x\":0.0208089258521795,\"y\":270.000457763672,\"z\":0.0167709905654192}},\"6006fa\":{\"lock\":false,\"pos\":{\"x\":-54.1425323486328,\"y\":1.29582250118256,\"z\":-81.781364440918},\"rot\":{\"x\":0.0208027269691229,\"y\":270.020263671875,\"z\":0.0167777054011822}},\"6187b2\":{\"lock\":false,\"pos\":{\"x\":-47.2170753479004,\"y\":1.29763412475586,\"z\":-84.1847610473633},\"rot\":{\"x\":0.0208086259663105,\"y\":270.000274658203,\"z\":0.0167711470276117}},\"682335\":{\"lock\":false,\"pos\":{\"x\":-54.2879981994629,\"y\":1.30139410495758,\"z\":-62.5666007995605},\"rot\":{\"x\":0.0208084508776665,\"y\":270.000030517578,\"z\":0.0167711470276117}},\"6f5590\":{\"lock\":false,\"pos\":{\"x\":-43.7762794494629,\"y\":1.30053281784058,\"z\":-78.5510559082031},\"rot\":{\"x\":0.0208086557686329,\"y\":270,\"z\":0.0167711842805147}},\"70de23\":{\"lock\":false,\"pos\":{\"x\":-50.7880744934082,\"y\":1.29562640190125,\"z\":-86.6133575439453},\"rot\":{\"x\":0.0208112765103579,\"y\":269.990905761719,\"z\":0.0167677998542786}},\"8d7ecb\":{\"lock\":false,\"pos\":{\"x\":-47.2175750732422,\"y\":1.29692459106445,\"z\":-86.6082611083984},\"rot\":{\"x\":0.0208085309714079,\"y\":270.000244140625,\"z\":0.0167712103575468}},\"8e009f\":{\"lock\":false,\"pos\":{\"x\":-43.7559013366699,\"y\":1.3065721988678,\"z\":-57.9441986083984},\"rot\":{\"x\":0.0208087880164385,\"y\":269.999633789063,\"z\":0.0167710371315479}},\"93503f\":{\"lock\":false,\"pos\":{\"x\":-50.5890769958496,\"y\":1.29805994033813,\"z\":-78.546760559082},\"rot\":{\"x\":0.0208088085055351,\"y\":269.999938964844,\"z\":0.0167711973190308}},\"a067d0\":{\"lock\":false,\"pos\":{\"x\":-40.1133995056152,\"y\":1.30650424957275,\"z\":-62.6950988769531},\"rot\":{\"x\":0.0208086110651493,\"y\":269.999755859375,\"z\":0.0167712140828371}},\"a96330\":{\"lock\":false,\"pos\":{\"x\":-50.5937004089355,\"y\":1.30409467220306,\"z\":-57.9240989685059},\"rot\":{\"x\":0.0208087433129549,\"y\":270.000122070313,\"z\":0.0167710352689028}},\"aea08f\":{\"lock\":false,\"pos\":{\"x\":-50.5124015808105,\"y\":1.30345153808594,\"z\":-60.2220993041992},\"rot\":{\"x\":0.0208103451877832,\"y\":269.993713378906,\"z\":0.01676887832582}},\"b54d99\":{\"lock\":false,\"pos\":{\"x\":-43.7377738952637,\"y\":1.29892361164093,\"z\":-84.0963592529297},\"rot\":{\"x\":0.0208086259663105,\"y\":270.000061035156,\"z\":0.0167712867259979}},\"b679ff\":{\"lock\":false,\"pos\":{\"x\":-50.6292724609375,\"y\":1.29708194732666,\"z\":-81.8374557495117},\"rot\":{\"x\":0.02080905623734,\"y\":270.000183105469,\"z\":0.0167706366628408}},\"ba6a4f\":{\"lock\":false,\"pos\":{\"x\":-43.7175750732422,\"y\":1.29820847511292,\"z\":-86.5645599365234},\"rot\":{\"x\":0.0208099484443665,\"y\":269.995758056641,\"z\":0.0167698338627815}},\"c91bbc\":{\"lock\":false,\"pos\":{\"x\":-39.9734992980957,\"y\":1.30901253223419,\"z\":-54.2999000549316},\"rot\":{\"x\":0.0208084303885698,\"y\":270.000366210938,\"z\":0.016771299764514}},\"c96866\":{\"lock\":false,\"pos\":{\"x\":-43.6356010437012,\"y\":1.30764770507813,\"z\":-54.418701171875},\"rot\":{\"x\":0.0208086762577295,\"y\":270,\"z\":0.0167712662369013}},\"c972bd\":{\"lock\":false,\"pos\":{\"x\":-53.9467010498047,\"y\":1.30288803577423,\"z\":-57.8862991333008},\"rot\":{\"x\":0.020808694884181,\"y\":270.000030517578,\"z\":0.0167707893997431}},\"d4879a\":{\"lock\":false,\"pos\":{\"x\":-40.2654724121094,\"y\":1.30021071434021,\"z\":-84.0074615478516},\"rot\":{\"x\":0.0208088830113411,\"y\":269.998901367188,\"z\":0.0167706571519375}},\"dab2b7\":{\"lock\":false,\"pos\":{\"x\":-43.6455993652344,\"y\":1.30521702766418,\"z\":-62.7103004455566},\"rot\":{\"x\":0.0208085291087627,\"y\":270,\"z\":0.0167709551751614}},\"dd39cd\":{\"lock\":false,\"pos\":{\"x\":-43.7768745422363,\"y\":1.29958915710449,\"z\":-81.7739562988281},\"rot\":{\"x\":0.0208089090883732,\"y\":270.000183105469,\"z\":0.0167705938220024}},\"dfc083\":{\"lock\":false,\"pos\":{\"x\":-43.4954986572266,\"y\":1.30599534511566,\"z\":-60.2380981445313},\"rot\":{\"x\":0.0208085048943758,\"y\":270,\"z\":0.0167709179222584}},\"e7003e\":{\"lock\":false,\"pos\":{\"x\":-40.5401725769043,\"y\":1.30076205730438,\"z\":-81.7831573486328},\"rot\":{\"x\":0.020809093490243,\"y\":270.000213623047,\"z\":0.0167709477245808}},\"ea2ee7\":{\"lock\":false,\"pos\":{\"x\":-46.9766998291016,\"y\":1.30641329288483,\"z\":-54.4903984069824},\"rot\":{\"x\":0.020808657631278,\"y\":270,\"z\":0.0167710781097412}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Don't Starve Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.98 - posZ: 81.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Elspeth Baudin Custom Investigator 84c153.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Elspeth Baudin Custom Investigator 84c153.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Elspeth Baudin Custom Investigator 84c153.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Elspeth Baudin Custom Investigator 84c153.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Elspeth Baudin Custom Investigator 84c153.yaml deleted file mode 100644 index 2631f0c85..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Elspeth Baudin Custom Investigator 84c153.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1655599785039299268/52DB5C3A0E600D6AECB0B851ECF90C5B3D016421/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By Donelloth. As Seen in Bad Blood! -DragSelectable: true -GMNotes: fancreations/investigators_elspeth_baudin.json -GUID: 84c153 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Elspeth Baudin Custom Investigator 84c153.ttslua' -LuaScriptState: "{\"ml\":{\"1b6773\":{\"lock\":false,\"pos\":{\"x\":-19.5467624664307,\"y\":1.31306660175323,\"z\":-65.7938537597656},\"rot\":{\"x\":0.0208032466471195,\"y\":270.018371582031,\"z\":0.0167777892202139}},\"41424c\":{\"lock\":false,\"pos\":{\"x\":-22.5805168151855,\"y\":1.31255412101746,\"z\":-63.7807502746582},\"rot\":{\"x\":0.020810954272747,\"y\":269.991149902344,\"z\":0.0167674999684095}},\"647b40\":{\"lock\":false,\"pos\":{\"x\":-22.6028251647949,\"y\":1.31024301052094,\"z\":-71.6484832763672},\"rot\":{\"x\":0.0208107922226191,\"y\":269.991149902344,\"z\":0.016767431050539}},\"9a67bf\":{\"lock\":false,\"pos\":{\"x\":-22.6425685882568,\"y\":1.30951547622681,\"z\":-74.0846176147461},\"rot\":{\"x\":0.0208108704537153,\"y\":269.9912109375,\"z\":0.0167674385011196}},\"9e4397\":{\"lock\":false,\"pos\":{\"x\":-22.5964412689209,\"y\":1.31179511547089,\"z\":-66.3536529541016},\"rot\":{\"x\":0.0208110846579075,\"y\":269.99072265625,\"z\":0.0167671237140894}},\"d467b7\":{\"lock\":false,\"pos\":{\"x\":-19.7298603057861,\"y\":1.31206059455872,\"z\":-69.0034790039063},\"rot\":{\"x\":0.0207998398691416,\"y\":270.028869628906,\"z\":0.0167793389409781}},\"dd312f\":{\"lock\":false,\"pos\":{\"x\":-19.5082302093506,\"y\":1.31121933460236,\"z\":-72.1525039672852},\"rot\":{\"x\":0.0167680606245995,\"y\":179.991668701172,\"z\":359.979187011719}},\"e43300\":{\"lock\":false,\"pos\":{\"x\":-22.6156921386719,\"y\":1.31099140644073,\"z\":-69.0756149291992},\"rot\":{\"x\":0.0208105240017176,\"y\":269.993041992188,\"z\":0.0167687423527241}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Elspeth Baudin Custom Investigator -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.96 - posZ: 81.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.yaml deleted file mode 100644 index d747d0523..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1746802526940892011/A775E42F9014CD75B091D7D060012681E58B906E/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By Davi -DragSelectable: true -GMNotes: fancreations/investigators_fortune_or_folly_parallel_rex.json -GUID: 7fa06f -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua' -LuaScriptState: "{\"ml\":{\"0f3a96\":{\"lock\":false,\"pos\":{\"x\":-34.2316,\"y\":1.6326,\"z\":11.6933},\"rot\":{\"x\":359.9554,\"y\":224.9998,\"z\":0.0684}},\"22a929\":{\"lock\":false,\"pos\":{\"x\":-3.956,\"y\":1.5975,\"z\":-10.4412},\"rot\":{\"x\":359.9197,\"y\":270,\"z\":0.0168}},\"24e42d\":{\"lock\":false,\"pos\":{\"x\":-36.7734,\"y\":1.6418,\"z\":-15.28},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0168}},\"2c6d3b\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6417,\"z\":15.19},\"rot\":{\"x\":359.9201,\"y\":269.9998,\"z\":0.0168}},\"2dfd79\":{\"lock\":false,\"pos\":{\"x\":-36.7731,\"y\":1.6361,\"z\":11.46},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":0.0799}},\"3359db\":{\"lock\":false,\"pos\":{\"x\":-32.8963,\"y\":1.624,\"z\":-11.1805},\"rot\":{\"x\":359.9316,\"y\":314.9998,\"z\":359.9554}},\"360107\":{\"lock\":false,\"pos\":{\"x\":-4.244,\"y\":1.6416,\"z\":15.0067},\"rot\":{\"x\":359.9197,\"y\":270.0001,\"z\":180.0168}},\"392d3e\":{\"lock\":false,\"pos\":{\"x\":-36.7731,\"y\":1.6486,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":269.9977,\"z\":0.0168}},\"3943d5\":{\"lock\":false,\"pos\":{\"x\":-4.0346,\"y\":1.4838,\"z\":-23.4806},\"rot\":{\"x\":359.9316,\"y\":315.0011,\"z\":359.9554}},\"3a4050\":{\"lock\":false,\"pos\":{\"x\":-27.2281,\"y\":1.6228,\"z\":11.3825},\"rot\":{\"x\":359.9316,\"y\":315.0001,\"z\":359.9554}},\"3b60c1\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6258,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":270.0091,\"z\":0.0169}},\"41625c\":{\"lock\":false,\"pos\":{\"x\":-12.2031,\"y\":1.6162,\"z\":14.0413},\"rot\":{\"x\":359.9201,\"y\":270.0175,\"z\":0.0168}},\"4fe831\":{\"lock\":false,\"pos\":{\"x\":-33.3589,\"y\":1.6235,\"z\":-15.1968},\"rot\":{\"x\":359.9201,\"y\":270.0001,\"z\":0.0169}},\"551d28\":{\"lock\":false,\"pos\":{\"x\":2.454,\"y\":1.4721,\"z\":-32.3421},\"rot\":{\"x\":359.9316,\"y\":315.0011,\"z\":359.9554}},\"5c0e2e\":{\"lock\":false,\"pos\":{\"x\":0.2701,\"y\":1.4896,\"z\":28.7803},\"rot\":{\"x\":359.9201,\"y\":269.9994,\"z\":0.0169}},\"62791a\":{\"lock\":false,\"pos\":{\"x\":-27.001,\"y\":1.6202,\"z\":3.6619},\"rot\":{\"x\":359.9554,\"y\":225,\"z\":0.0684}},\"7234af\":{\"lock\":false,\"pos\":{\"x\":-33.4277,\"y\":1.6269,\"z\":-3.8532},\"rot\":{\"x\":359.9554,\"y\":224.9966,\"z\":0.0684}},\"83d7bb\":{\"lock\":false,\"pos\":{\"x\":-4.2243,\"y\":1.4816,\"z\":-31.8957},\"rot\":{\"x\":359.9316,\"y\":315.0004,\"z\":359.9554}},\"8984ad\":{\"lock\":false,\"pos\":{\"x\":-23.6768,\"y\":1.6258,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":270.0192,\"z\":0.0168}},\"899c2c\":{\"lock\":false,\"pos\":{\"x\":-36.7733,\"y\":1.6508,\"z\":15.19},\"rot\":{\"x\":359.9201,\"y\":270,\"z\":0.0168}},\"93422e\":{\"lock\":false,\"pos\":{\"x\":-12.0801,\"y\":1.6416,\"z\":10.7578},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":0.0799}},\"9c140b\":{\"lock\":false,\"pos\":{\"x\":-26.7676,\"y\":1.6177,\"z\":-3.8214},\"rot\":{\"x\":359.9316,\"y\":314.9779,\"z\":359.9554}},\"9c6651\":{\"lock\":false,\"pos\":{\"x\":-30.2218,\"y\":1.6213,\"z\":-7.699},\"rot\":{\"x\":359.9203,\"y\":269.5397,\"z\":0.0175}},\"a45247\":{\"lock\":false,\"pos\":{\"x\":1.6961,\"y\":1.5583,\"z\":14.2788},\"rot\":{\"x\":359.9551,\"y\":224.998,\"z\":0.0687}},\"b6b9b7\":{\"lock\":false,\"pos\":{\"x\":-36.7732,\"y\":1.6441,\"z\":-7.7},\"rot\":{\"x\":359.9201,\"y\":269.9998,\"z\":0.0168}},\"c150be\":{\"lock\":false,\"pos\":{\"x\":-23.6765,\"y\":1.6303,\"z\":7.57},\"rot\":{\"x\":359.9201,\"y\":269.9998,\"z\":0.0168}},\"c27718\":{\"lock\":false,\"pos\":{\"x\":-36.7732,\"y\":1.6294,\"z\":-11.51},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":0.08}},\"c7e9e3\":{\"lock\":false,\"pos\":{\"x\":-12.1603,\"y\":1.631,\"z\":7.0481},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0168}},\"cc135d\":{\"lock\":false,\"pos\":{\"x\":-33.7965,\"y\":1.6331,\"z\":15.3121},\"rot\":{\"x\":359.9201,\"y\":270.0001,\"z\":0.0169}},\"d1bf92\":{\"lock\":false,\"pos\":{\"x\":-3.9276,\"y\":1.7444,\"z\":5.7577},\"rot\":{\"x\":359.9197,\"y\":269.9985,\"z\":180.0168}},\"d28cd1\":{\"lock\":false,\"pos\":{\"x\":-30.2242,\"y\":1.6372,\"z\":-0.03},\"rot\":{\"x\":359.9201,\"y\":269.9998,\"z\":0.0168}},\"d32960\":{\"lock\":false,\"pos\":{\"x\":-2.6886,\"y\":1.6143,\"z\":-5.0485},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":0.0803}},\"d51f74\":{\"lock\":false,\"pos\":{\"x\":-12.3273,\"y\":1.642,\"z\":10.8057},\"rot\":{\"x\":0.0169,\"y\":179.9845,\"z\":0.0799}},\"d5f792\":{\"lock\":false,\"pos\":{\"x\":-33.2551,\"y\":1.6289,\"z\":3.6656},\"rot\":{\"x\":359.9316,\"y\":315.0002,\"z\":359.9554}},\"d9882d\":{\"lock\":false,\"pos\":{\"x\":-27.011,\"y\":1.6157,\"z\":-11.771},\"rot\":{\"x\":359.9554,\"y\":225.0001,\"z\":0.0684}},\"e1e1c3\":{\"lock\":false,\"pos\":{\"x\":-2.7247,\"y\":1.599,\"z\":0.3733},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":0.0803}},\"e8fcf0\":{\"lock\":false,\"pos\":{\"x\":-30.2243,\"y\":1.6327,\"z\":-15.28},\"rot\":{\"x\":359.9201,\"y\":269.9999,\"z\":0.0168}},\"ec4a81\":{\"lock\":false,\"pos\":{\"x\":2.8296,\"y\":1.4739,\"z\":-24.3652},\"rot\":{\"x\":359.9316,\"y\":315.0031,\"z\":359.9554}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Fortune or Folly - Parallel Rex Murphy Set -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.98 - posZ: 81.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Gender Swapped Investigators 33272e.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Gender Swapped Investigators 33272e.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Gender Swapped Investigators 33272e.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Gender Swapped Investigators 33272e.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Gender Swapped Investigators 33272e.yaml deleted file mode 100644 index 40464d7c9..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Gender Swapped Investigators 33272e.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1597044073919531303/A7A92208CADC509C2546E65242ADDC8EF88FEAB8/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By /u/corpboy -DragSelectable: true -GMNotes: fancreations/investigators_gender_swapped.json -GUID: 33272e -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Gender Swapped Investigators 33272e.ttslua' -LuaScriptState: "{\"ml\":{\"169f5f\":{\"lock\":false,\"pos\":{\"x\":-19.3000202178955,\"y\":1.35298359394073,\"z\":-53.4358367919922},\"rot\":{\"x\":0.02080955542624,\"y\":270.001556396484,\"z\":0.0167712271213531}},\"1abe52\":{\"lock\":false,\"pos\":{\"x\":-19.2997913360596,\"y\":1.34861159324646,\"z\":-84.8181838989258},\"rot\":{\"x\":0.020808843895793,\"y\":270.000122070313,\"z\":0.0167707651853561}},\"23ea9a\":{\"lock\":false,\"pos\":{\"x\":-16.6402473449707,\"y\":1.3495774269104,\"z\":-84.8182144165039},\"rot\":{\"x\":0.0208143834024668,\"y\":269.999816894531,\"z\":0.0167734380811453}},\"260c46\":{\"lock\":false,\"pos\":{\"x\":-16.6403007507324,\"y\":1.34937584400177,\"z\":-69.0603103637695},\"rot\":{\"x\":0.0208140630275011,\"y\":270.000244140625,\"z\":0.0167755950242281}},\"6b77d7\":{\"lock\":false,\"pos\":{\"x\":-16.8499145507813,\"y\":1.30698132514954,\"z\":-91.5999984741211},\"rot\":{\"x\":0.0208082087337971,\"y\":270.000122070313,\"z\":0.0167680568993092}},\"6be340\":{\"lock\":false,\"pos\":{\"x\":-19.3000755310059,\"y\":1.35551571846008,\"z\":-61.2332572937012},\"rot\":{\"x\":0.0208098944276571,\"y\":269.999114990234,\"z\":0.0167708061635494}},\"77ba63\":{\"lock\":false,\"pos\":{\"x\":-22.6157627105713,\"y\":1.3086873292923,\"z\":-76.946044921875},\"rot\":{\"x\":0.0208086930215359,\"y\":270.000091552734,\"z\":0.0167710520327091}},\"7c3d2e\":{\"lock\":false,\"pos\":{\"x\":-19.293607711792,\"y\":1.35573351383209,\"z\":-76.9415588378906},\"rot\":{\"x\":0.0208112671971321,\"y\":269.999816894531,\"z\":0.0167707577347755}},\"7d5120\":{\"lock\":false,\"pos\":{\"x\":-22.6139030456543,\"y\":1.31556940078735,\"z\":-53.4381294250488},\"rot\":{\"x\":0.0208085980266333,\"y\":270.000030517578,\"z\":180.01676940918}},\"981000\":{\"lock\":false,\"pos\":{\"x\":-16.6400699615479,\"y\":1.35396289825439,\"z\":-53.3904228210449},\"rot\":{\"x\":0.0208099316805601,\"y\":270.000030517578,\"z\":0.0167689602822065}},\"b5091c\":{\"lock\":false,\"pos\":{\"x\":-26.3147144317627,\"y\":1.30734384059906,\"z\":-76.9476318359375},\"rot\":{\"x\":0.0208098907023668,\"y\":269.99560546875,\"z\":0.0167696326971054}},\"c61dd3\":{\"lock\":false,\"pos\":{\"x\":-16.6400871276855,\"y\":1.3564817905426,\"z\":-61.2309913635254},\"rot\":{\"x\":0.0208104159682989,\"y\":269.999847412109,\"z\":0.0167675204575062}},\"d8bab9\":{\"lock\":false,\"pos\":{\"x\":-19.2999992370605,\"y\":1.32235062122345,\"z\":-91.5984573364258},\"rot\":{\"x\":0.0208081062883139,\"y\":270.000061035156,\"z\":0.0167712885886431}},\"e22086\":{\"lock\":false,\"pos\":{\"x\":-16.6396045684814,\"y\":1.35669600963593,\"z\":-76.9456558227539},\"rot\":{\"x\":0.0208145752549171,\"y\":269.999847412109,\"z\":0.0167776327580214}},\"eff7e4\":{\"lock\":false,\"pos\":{\"x\":-19.2958831787109,\"y\":1.3484114408493,\"z\":-69.0607070922852},\"rot\":{\"x\":0.0208063907921314,\"y\":270.008483886719,\"z\":0.016773846000433}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Gender Swapped Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.98 - posZ: 81.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Idol Thoughts Custom Investigators 991ff9.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Idol Thoughts Custom Investigators 991ff9.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Idol Thoughts Custom Investigators 991ff9.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Idol Thoughts Custom Investigators 991ff9.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Idol Thoughts Custom Investigators 991ff9.yaml deleted file mode 100644 index c7833e4a6..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Idol Thoughts Custom Investigators 991ff9.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1011563111884720834/103D38A8FBBFA64EB66439667F8775B15FC679C9/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_idol_thoughts.json -GUID: 991ff9 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Idol Thoughts Custom Investigators 991ff9.ttslua' -LuaScriptState: "{\"ml\":{\"057e04\":{\"lock\":false,\"pos\":{\"x\":-16.6395988464355,\"y\":1.31085813045502,\"z\":-76.9456481933594},\"rot\":{\"x\":0.0208098888397217,\"y\":269.999450683594,\"z\":0.0167720001190901}},\"06fcb2\":{\"lock\":false,\"pos\":{\"x\":-22.6157550811768,\"y\":1.3256413936615,\"z\":-76.9460372924805},\"rot\":{\"x\":0.020808782428503,\"y\":270.000274658203,\"z\":0.0167717132717371}},\"08ab92\":{\"lock\":false,\"pos\":{\"x\":-19.2936096191406,\"y\":1.30989539623261,\"z\":-76.9415512084961},\"rot\":{\"x\":0.0208085216581821,\"y\":270.000030517578,\"z\":0.0167711414396763}},\"212311\":{\"lock\":false,\"pos\":{\"x\":-22.6156845092773,\"y\":1.32794523239136,\"z\":-69.0756072998047},\"rot\":{\"x\":0.0208083000034094,\"y\":269.999816894531,\"z\":0.0167704597115517}},\"3c216d\":{\"lock\":false,\"pos\":{\"x\":-16.6402435302734,\"y\":1.30855345726013,\"z\":-84.8182067871094},\"rot\":{\"x\":0.0208111256361008,\"y\":269.999206542969,\"z\":0.0167727693915367}},\"55809d\":{\"lock\":false,\"pos\":{\"x\":-19.3000640869141,\"y\":1.31449115276337,\"z\":-61.2332420349121},\"rot\":{\"x\":0.0208084266632795,\"y\":269.999938964844,\"z\":0.0167710799723864}},\"600e41\":{\"lock\":false,\"pos\":{\"x\":-22.6139163970947,\"y\":1.33252322673798,\"z\":-53.4381370544434},\"rot\":{\"x\":0.0208081752061844,\"y\":270.001251220703,\"z\":0.0167707018554211}},\"6011c1\":{\"lock\":false,\"pos\":{\"x\":-22.61696434021,\"y\":1.33023798465729,\"z\":-61.2413864135742},\"rot\":{\"x\":0.0208087377250195,\"y\":269.999908447266,\"z\":0.016770888119936}},\"6e7ea8\":{\"lock\":false,\"pos\":{\"x\":-19.295877456665,\"y\":1.31220149993896,\"z\":-69.0607070922852},\"rot\":{\"x\":0.0208094604313374,\"y\":270,\"z\":0.0167710334062576}},\"b1256b\":{\"lock\":false,\"pos\":{\"x\":-16.6400871276855,\"y\":1.31545794010162,\"z\":-61.2309913635254},\"rot\":{\"x\":0.0208090264350176,\"y\":269.998779296875,\"z\":0.0167700741440058}},\"c72bdd\":{\"lock\":false,\"pos\":{\"x\":-16.6400699615479,\"y\":1.31775283813477,\"z\":-53.3904228210449},\"rot\":{\"x\":0.0208091754466295,\"y\":269.999816894531,\"z\":0.0167703349143267}},\"d2913a\":{\"lock\":false,\"pos\":{\"x\":-16.6403007507324,\"y\":1.31316590309143,\"z\":-69.0603103637695},\"rot\":{\"x\":0.020810903981328,\"y\":270,\"z\":0.0167728774249554}},\"ecaa8c\":{\"lock\":false,\"pos\":{\"x\":-19.2997856140137,\"y\":1.30758762359619,\"z\":-84.8181838989258},\"rot\":{\"x\":0.0208093598484993,\"y\":270,\"z\":0.0167709905654192}},\"f89508\":{\"lock\":false,\"pos\":{\"x\":-19.3000202178955,\"y\":1.31677353382111,\"z\":-53.4358367919922},\"rot\":{\"x\":0.0208089053630829,\"y\":270.000122070313,\"z\":0.0167711284011602}},\"f9d436\":{\"lock\":false,\"pos\":{\"x\":-22.6169204711914,\"y\":1.32333660125732,\"z\":-84.8185119628906},\"rot\":{\"x\":0.0208087246865034,\"y\":270.000030517578,\"z\":0.0167713966220617}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Idol Thoughts Custom Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -21.84 - posY: 1.97 - posZ: 81.64 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Kaimonogatari Player cards 64ad17.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Kaimonogatari Player cards 64ad17.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Kaimonogatari Player cards 64ad17.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Kaimonogatari Player cards 64ad17.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Kaimonogatari Player cards 64ad17.yaml deleted file mode 100644 index 907fc2db1..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Kaimonogatari Player cards 64ad17.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1644335793265681039/FD6A85925D62077C37F89B6AD082D15D90244D13/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: version 1.5 -DragSelectable: true -GMNotes: fancreations/investigators_kaimonogatari.json -GUID: 64ad17 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Kaimonogatari Player cards 64ad17.ttslua' -LuaScriptState: "{\"ml\":{\"00b7d1\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2838,\"z\":87.0133},\"rot\":{\"x\":0.0208,\"y\":270.0003,\"z\":0.0168}},\"03a35e\":{\"lock\":false,\"pos\":{\"x\":-8.9869,\"y\":1.283,\"z\":94.4496},\"rot\":{\"x\":0.0208,\"y\":270.0348,\"z\":0.0168}},\"03bf91\":{\"lock\":false,\"pos\":{\"x\":-8.987,\"y\":1.2763,\"z\":71.4496},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"040cf6\":{\"lock\":false,\"pos\":{\"x\":19.4901,\"y\":1.2959,\"z\":92.0494},\"rot\":{\"x\":0.0208,\"y\":269.9989,\"z\":0.0168}},\"0441cb\":{\"lock\":false,\"pos\":{\"x\":-8.9837,\"y\":1.2729,\"z\":59.9495},\"rot\":{\"x\":0.0208,\"y\":269.9796,\"z\":0.0168}},\"0a6180\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2843,\"z\":94.4496},\"rot\":{\"x\":0.0208,\"y\":270.0153,\"z\":0.0168}},\"0cb1df\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2891,\"z\":73.8366},\"rot\":{\"x\":0.0208,\"y\":270.0189,\"z\":0.0168}},\"0cbe7d\":{\"lock\":false,\"pos\":{\"x\":-19.3011,\"y\":1.3122,\"z\":-69.0606},\"rot\":{\"x\":0.0206,\"y\":270.5735,\"z\":0.017}},\"0fd66c\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2925,\"z\":85.3358},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"0fd992\":{\"lock\":false,\"pos\":{\"x\":-19.3151,\"y\":1.3336,\"z\":-55.1488},\"rot\":{\"x\":0.0208,\"y\":270.0051,\"z\":0.9269}},\"133340\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2776,\"z\":71.4496},\"rot\":{\"x\":0.0208,\"y\":270.0128,\"z\":0.0168}},\"1483d9\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2849,\"z\":92.1617},\"rot\":{\"x\":0.0208,\"y\":269.9772,\"z\":0.0168}},\"166196\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2771,\"z\":64.0133},\"rot\":{\"x\":0.0208,\"y\":270.0005,\"z\":0.0168}},\"16c15b\":{\"lock\":false,\"pos\":{\"x\":-7.879,\"y\":1.2629,\"z\":70.9133},\"rot\":{\"x\":0.0208,\"y\":270.0198,\"z\":0.0168}},\"1a7b02\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2798,\"z\":77.8253},\"rot\":{\"x\":0.0208,\"y\":270.0033,\"z\":0.0168}},\"1bd191\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.2779,\"z\":80.1133},\"rot\":{\"x\":0.0208,\"y\":270.0249,\"z\":0.0168}},\"1be073\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.3032,\"z\":75.5133},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"1be35a\":{\"lock\":false,\"pos\":{\"x\":-16.6402,\"y\":1.3086,\"z\":-84.8182},\"rot\":{\"x\":0.0168,\"y\":180.0001,\"z\":359.9792}},\"1c6b3a\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2829,\"z\":76.0596},\"rot\":{\"x\":0.0208,\"y\":269.9926,\"z\":0.0168}},\"1c87fe\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2816,\"z\":85.2496},\"rot\":{\"x\":0.0208,\"y\":270.0196,\"z\":0.0168}},\"202a96\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2829,\"z\":85.2616},\"rot\":{\"x\":0.0208,\"y\":269.9774,\"z\":0.0168}},\"21ced3\":{\"lock\":false,\"pos\":{\"x\":-19.3034,\"y\":1.3168,\"z\":-53.4359},\"rot\":{\"x\":0.0209,\"y\":270.0017,\"z\":0.0163}},\"2450c5\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2802,\"z\":66.8594},\"rot\":{\"x\":0.0208,\"y\":270.0025,\"z\":0.0168}},\"24581f\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2758,\"z\":64.0253},\"rot\":{\"x\":0.0208,\"y\":270.0003,\"z\":0.0168}},\"273674\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3087,\"z\":-76.946},\"rot\":{\"x\":0.0208,\"y\":270.0039,\"z\":0.0168}},\"27aba8\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2785,\"z\":73.2253},\"rot\":{\"x\":0.0208,\"y\":270.0192,\"z\":0.0168}},\"27ba20\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2796,\"z\":78.3496},\"rot\":{\"x\":0.0208,\"y\":269.9618,\"z\":0.0168}},\"27ed55\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3178,\"z\":-53.3904},\"rot\":{\"x\":0.0168,\"y\":180.0039,\"z\":359.9792}},\"2848ab\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2842,\"z\":89.8616},\"rot\":{\"x\":0.0208,\"y\":269.9774,\"z\":0.0168}},\"2872fc\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2782,\"z\":64.5743},\"rot\":{\"x\":0.0208,\"y\":270.0121,\"z\":0.0168}},\"28e0b4\":{\"lock\":false,\"pos\":{\"x\":5.6424,\"y\":1.2809,\"z\":69.1595},\"rot\":{\"x\":0.0208,\"y\":269.978,\"z\":0.0168}},\"2a2c03\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2777,\"z\":66.3133},\"rot\":{\"x\":0.0208,\"y\":270.0127,\"z\":0.0168}},\"2a9a02\":{\"lock\":false,\"pos\":{\"x\":10.8335,\"y\":1.3194,\"z\":70.1049},\"rot\":{\"x\":0.0208,\"y\":269.9723,\"z\":0.0168}},\"2b5584\":{\"lock\":false,\"pos\":{\"x\":25.9535,\"y\":1.2989,\"z\":94.3343},\"rot\":{\"x\":0.0208,\"y\":269.9986,\"z\":0.0168}},\"2cf882\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2798,\"z\":73.2133},\"rot\":{\"x\":0.0208,\"y\":270.0112,\"z\":0.0168}},\"2d8ecc\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2796,\"z\":64.5596},\"rot\":{\"x\":0.0208,\"y\":269.9966,\"z\":0.0168}},\"2fecde\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3064,\"z\":-84.8185},\"rot\":{\"x\":0.0208,\"y\":270.0159,\"z\":0.0168}},\"30c749\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2789,\"z\":71.4616},\"rot\":{\"x\":0.0208,\"y\":269.9828,\"z\":0.0168}},\"31c14d\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2812,\"z\":82.4253},\"rot\":{\"x\":0.0208,\"y\":270.0004,\"z\":0.0168}},\"320094\":{\"lock\":false,\"pos\":{\"x\":-8.987,\"y\":1.2776,\"z\":76.0496},\"rot\":{\"x\":0.0208,\"y\":270.0482,\"z\":0.0168}},\"3450cc\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2952,\"z\":94.5358},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"345d3c\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2816,\"z\":71.4596},\"rot\":{\"x\":0.0208,\"y\":269.9965,\"z\":0.0168}},\"363a78\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2789,\"z\":76.0496},\"rot\":{\"x\":0.0208,\"y\":270.0044,\"z\":0.0168}},\"36dbe9\":{\"lock\":false,\"pos\":{\"x\":-12.6031,\"y\":1.2803,\"z\":89.8237},\"rot\":{\"x\":0.0208,\"y\":269.9794,\"z\":0.0168}},\"3b3d81\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2932,\"z\":87.6358},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"3c12da\":{\"lock\":false,\"pos\":{\"x\":12.7277,\"y\":1.2928,\"z\":89.9201},\"rot\":{\"x\":0.0208,\"y\":269.9804,\"z\":0.0168}},\"3d079d\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2809,\"z\":78.3616},\"rot\":{\"x\":0.0208,\"y\":269.9798,\"z\":0.0168}},\"3e5de2\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2802,\"z\":71.4743},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"3ff589\":{\"lock\":false,\"pos\":{\"x\":-5.429,\"y\":1.2742,\"z\":59.9495},\"rot\":{\"x\":0.0208,\"y\":270.0281,\"z\":0.0168}},\"416008\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2832,\"z\":89.3253},\"rot\":{\"x\":0.0208,\"y\":270.0187,\"z\":0.0168}},\"4402a1\":{\"lock\":false,\"pos\":{\"x\":-22.6179,\"y\":1.3461,\"z\":-53.4373},\"rot\":{\"x\":1.1625,\"y\":269.9696,\"z\":0.0168}},\"47bdc1\":{\"lock\":false,\"pos\":{\"x\":-8.987,\"y\":1.2743,\"z\":64.5497},\"rot\":{\"x\":0.0208,\"y\":270.0215,\"z\":0.0168}},\"47ddb0\":{\"lock\":false,\"pos\":{\"x\":22.669,\"y\":1.295,\"z\":85.135},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"488fce\":{\"lock\":false,\"pos\":{\"x\":-8.987,\"y\":1.2783,\"z\":78.3496},\"rot\":{\"x\":0.0208,\"y\":270.0379,\"z\":0.0168}},\"4c56c4\":{\"lock\":false,\"pos\":{\"x\":25.9535,\"y\":1.2962,\"z\":85.1343},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"519e24\":{\"lock\":false,\"pos\":{\"x\":1.7638,\"y\":1.2869,\"z\":94.475},\"rot\":{\"x\":0.0208,\"y\":270.0354,\"z\":0.0168}},\"55769f\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2795,\"z\":73.7616},\"rot\":{\"x\":0.0208,\"y\":269.9561,\"z\":0.0168}},\"58bf2c\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2823,\"z\":87.5496},\"rot\":{\"x\":0.0208,\"y\":269.9702,\"z\":0.0168}},\"592017\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2802,\"z\":76.0616},\"rot\":{\"x\":0.0208,\"y\":269.972,\"z\":0.0168}},\"5925a5\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2782,\"z\":59.9594},\"rot\":{\"x\":0.0208,\"y\":269.9965,\"z\":0.0168}},\"595894\":{\"lock\":false,\"pos\":{\"x\":-12.6025,\"y\":1.2817,\"z\":94.4237},\"rot\":{\"x\":0.0208,\"y\":269.99,\"z\":0.0168}},\"599b2e\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2836,\"z\":78.3596},\"rot\":{\"x\":0.0208,\"y\":269.9924,\"z\":0.0168}},\"5a02fe\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2825,\"z\":87.0253},\"rot\":{\"x\":0.0208,\"y\":270.0186,\"z\":0.0168}},\"5a418b\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.2752,\"z\":70.9133},\"rot\":{\"x\":0.0168,\"y\":179.9918,\"z\":359.9792}},\"5a4b91\":{\"lock\":false,\"pos\":{\"x\":-12.603,\"y\":1.279,\"z\":85.2172},\"rot\":{\"x\":0.0208,\"y\":269.9775,\"z\":0.0168}},\"5a7432\":{\"lock\":false,\"pos\":{\"x\":-16.6403,\"y\":1.3132,\"z\":-69.0603},\"rot\":{\"x\":0.0168,\"y\":179.9955,\"z\":359.9792}},\"5c2d70\":{\"lock\":false,\"pos\":{\"x\":-12.603,\"y\":1.2797,\"z\":87.5237},\"rot\":{\"x\":0.0208,\"y\":269.9663,\"z\":0.0168}},\"5d6157\":{\"lock\":false,\"pos\":{\"x\":12.4059,\"y\":1.2933,\"z\":92.1521},\"rot\":{\"x\":0.0208,\"y\":269.9875,\"z\":0.0168}},\"5df58d\":{\"lock\":false,\"pos\":{\"x\":-16.6396,\"y\":1.3109,\"z\":-76.9456},\"rot\":{\"x\":0.0168,\"y\":180,\"z\":359.9792}},\"5ff3e1\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.2786,\"z\":82.4133},\"rot\":{\"x\":0.0208,\"y\":270.0186,\"z\":0.0168}},\"60af01\":{\"lock\":false,\"pos\":{\"x\":-16.6401,\"y\":1.3155,\"z\":-61.231},\"rot\":{\"x\":0.0168,\"y\":179.9924,\"z\":359.9792}},\"62d7b6\":{\"lock\":false,\"pos\":{\"x\":22.669,\"y\":1.2964,\"z\":89.735},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"65091e\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2829,\"z\":89.8496},\"rot\":{\"x\":0.0208,\"y\":270.0009,\"z\":0.0168}},\"6793a3\":{\"lock\":false,\"pos\":{\"x\":-8.9869,\"y\":1.2796,\"z\":82.9496},\"rot\":{\"x\":0.0208,\"y\":270.0181,\"z\":0.0168}},\"67ffbf\":{\"lock\":false,\"pos\":{\"x\":-26.3001,\"y\":1.3119,\"z\":-61.241},\"rot\":{\"x\":0.0208,\"y\":269.9922,\"z\":0.0168}},\"69aef7\":{\"lock\":false,\"pos\":{\"x\":-19.2507,\"y\":1.3294,\"z\":-86.424},\"rot\":{\"x\":0.159,\"y\":270.0175,\"z\":0.9902}},\"6cd869\":{\"lock\":false,\"pos\":{\"x\":-8.9931,\"y\":1.2749,\"z\":66.8824},\"rot\":{\"x\":0.0208,\"y\":269.9902,\"z\":0.0168}},\"71abe6\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2803,\"z\":80.6496},\"rot\":{\"x\":0.0208,\"y\":269.9639,\"z\":0.0168}},\"729701\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2822,\"z\":82.9616},\"rot\":{\"x\":0.0208,\"y\":269.9788,\"z\":0.0168}},\"74493a\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2852,\"z\":91.6133},\"rot\":{\"x\":0.0208,\"y\":270.019,\"z\":0.0168}},\"74658f\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.2813,\"z\":91.6133},\"rot\":{\"x\":0.0208,\"y\":270.0141,\"z\":0.0168}},\"769e65\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2809,\"z\":82.9496},\"rot\":{\"x\":0.0208,\"y\":270.0154,\"z\":0.0168}},\"7970d2\":{\"lock\":false,\"pos\":{\"x\":-5.4321,\"y\":1.2749,\"z\":62.2497},\"rot\":{\"x\":0.0208,\"y\":270.0382,\"z\":0.0168}},\"7a29a7\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2811,\"z\":77.8133},\"rot\":{\"x\":0.0208,\"y\":270.0003,\"z\":0.0168}},\"7ce81c\":{\"lock\":false,\"pos\":{\"x\":19.4901,\"y\":1.2966,\"z\":94.3494},\"rot\":{\"x\":0.0208,\"y\":269.9988,\"z\":0.0168}},\"7cf799\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2843,\"z\":80.6596},\"rot\":{\"x\":0.0208,\"y\":269.9926,\"z\":0.0168}},\"7cf99b\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.2806,\"z\":89.3133},\"rot\":{\"x\":0.0208,\"y\":270.0039,\"z\":0.0168}},\"7d3855\":{\"lock\":false,\"pos\":{\"x\":5.6428,\"y\":1.2876,\"z\":92.1596},\"rot\":{\"x\":0.0208,\"y\":270.0381,\"z\":0.0168}},\"7d4931\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2795,\"z\":69.1743},\"rot\":{\"x\":0.0208,\"y\":270.0142,\"z\":0.0168}},\"805888\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.3097,\"z\":-69.0606},\"rot\":{\"x\":0.0208,\"y\":270.0825,\"z\":0.0168}},\"8249b7\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2918,\"z\":83.0358},\"rot\":{\"x\":0.0208,\"y\":269.9907,\"z\":0.0168}},\"830efe\":{\"lock\":false,\"pos\":{\"x\":-19.3021,\"y\":1.3145,\"z\":-61.2332},\"rot\":{\"x\":0.0208,\"y\":269.8826,\"z\":0.0167}},\"85cbad\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2862,\"z\":92.1743},\"rot\":{\"x\":0.0208,\"y\":270.0354,\"z\":0.0168}},\"88c948\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2782,\"z\":69.1616},\"rot\":{\"x\":0.0208,\"y\":269.9563,\"z\":0.0168}},\"8a2863\":{\"lock\":false,\"pos\":{\"x\":-8.9869,\"y\":1.2817,\"z\":89.8496},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"8ab0aa\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2809,\"z\":73.7744},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"8adb9e\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2845,\"z\":89.3133},\"rot\":{\"x\":0.0208,\"y\":270.0004,\"z\":0.0168}},\"8bc00c\":{\"lock\":false,\"pos\":{\"x\":12.7277,\"y\":1.2915,\"z\":85.3209},\"rot\":{\"x\":0.0208,\"y\":269.9714,\"z\":0.0168}},\"8cd646\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2938,\"z\":89.9358},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"8df09a\":{\"lock\":false,\"pos\":{\"x\":-19.3032,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0209,\"y\":269.8336,\"z\":0.0167}},\"8ec9e8\":{\"lock\":false,\"pos\":{\"x\":-26.3,\"y\":1.3142,\"z\":-53.4369},\"rot\":{\"x\":0.0208,\"y\":270.0057,\"z\":0.0168}},\"90adc7\":{\"lock\":false,\"pos\":{\"x\":-8.9868,\"y\":1.2736,\"z\":62.2497},\"rot\":{\"x\":0.0208,\"y\":269.9756,\"z\":0.0168}},\"9284f6\":{\"lock\":false,\"pos\":{\"x\":12.7274,\"y\":1.2941,\"z\":94.5185},\"rot\":{\"x\":0.0208,\"y\":269.9738,\"z\":0.0168}},\"92a8c8\":{\"lock\":false,\"pos\":{\"x\":-8.9869,\"y\":1.281,\"z\":87.5496},\"rot\":{\"x\":0.0208,\"y\":269.9668,\"z\":0.0168}},\"9663f1\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.287,\"z\":89.8596},\"rot\":{\"x\":0.0208,\"y\":269.9928,\"z\":0.0168}},\"96fb56\":{\"lock\":false,\"pos\":{\"x\":-19.3331,\"y\":1.3285,\"z\":-78.5001},\"rot\":{\"x\":0.0188,\"y\":270.002,\"z\":1.0175}},\"98d59a\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2849,\"z\":87.5744},\"rot\":{\"x\":0.0208,\"y\":270.0286,\"z\":0.0168}},\"99751d\":{\"lock\":false,\"pos\":{\"x\":19.4901,\"y\":1.2952,\"z\":89.7494},\"rot\":{\"x\":0.0208,\"y\":269.999,\"z\":0.0168}},\"9d7db7\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2823,\"z\":73.7596},\"rot\":{\"x\":0.0208,\"y\":269.9927,\"z\":0.0168}},\"a03156\":{\"lock\":false,\"pos\":{\"x\":19.5868,\"y\":1.2508,\"z\":69.6144},\"rot\":{\"x\":359.9792,\"y\":89.9929,\"z\":359.9832}},\"a311eb\":{\"lock\":false,\"pos\":{\"x\":12.4068,\"y\":1.294,\"z\":94.5291},\"rot\":{\"x\":0.0208,\"y\":270.0088,\"z\":0.0168}},\"a4ca98\":{\"lock\":false,\"pos\":{\"x\":5.6429,\"y\":1.2883,\"z\":94.4596},\"rot\":{\"x\":0.0208,\"y\":269.9978,\"z\":0.0168}},\"a4d6ce\":{\"lock\":false,\"pos\":{\"x\":12.7274,\"y\":1.2921,\"z\":87.6185},\"rot\":{\"x\":0.0208,\"y\":269.9931,\"z\":0.0168}},\"a50220\":{\"lock\":false,\"pos\":{\"x\":-8.9869,\"y\":1.2803,\"z\":85.2496},\"rot\":{\"x\":0.0208,\"y\":270.0254,\"z\":0.0168}},\"aa4203\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2856,\"z\":85.2596},\"rot\":{\"x\":0.0208,\"y\":269.9926,\"z\":0.0168}},\"ab19ea\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2825,\"z\":82.4133},\"rot\":{\"x\":0.0208,\"y\":270.0214,\"z\":0.0168}},\"acf78b\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2898,\"z\":76.1357},\"rot\":{\"x\":0.0208,\"y\":270.0255,\"z\":0.0168}},\"af287c\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2819,\"z\":84.7253},\"rot\":{\"x\":0.0208,\"y\":270.0006,\"z\":0.0168}},\"b1ab4a\":{\"lock\":false,\"pos\":{\"x\":25.9535,\"y\":1.2975,\"z\":89.7342},\"rot\":{\"x\":0.0208,\"y\":270.0007,\"z\":0.0168}},\"b3612e\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2804,\"z\":75.5133},\"rot\":{\"x\":0.0208,\"y\":270.0006,\"z\":0.0168}},\"bb2d8c\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2816,\"z\":80.6616},\"rot\":{\"x\":0.0208,\"y\":269.9734,\"z\":0.0168}},\"bbd9b9\":{\"lock\":false,\"pos\":{\"x\":19.4901,\"y\":1.2939,\"z\":85.1494},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"bea40c\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.2799,\"z\":87.0133},\"rot\":{\"x\":0.0208,\"y\":270.0187,\"z\":0.0168}},\"bed1c4\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2765,\"z\":66.3253},\"rot\":{\"x\":0.0208,\"y\":270.0004,\"z\":0.0168}},\"bf1297\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0208,\"y\":270.0037,\"z\":0.0168}},\"c0e8e4\":{\"lock\":false,\"pos\":{\"x\":12.7274,\"y\":1.2935,\"z\":92.2185},\"rot\":{\"x\":0.0208,\"y\":269.9789,\"z\":0.0168}},\"c25061\":{\"lock\":false,\"pos\":{\"x\":9.221,\"y\":1.2896,\"z\":94.5498},\"rot\":{\"x\":0.0208,\"y\":269.985,\"z\":0.0168}},\"c48fc3\":{\"lock\":false,\"pos\":{\"x\":-8.987,\"y\":1.279,\"z\":80.6496},\"rot\":{\"x\":0.0208,\"y\":270.0384,\"z\":0.0168}},\"c53e8d\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2782,\"z\":73.7496},\"rot\":{\"x\":0.0208,\"y\":269.9773,\"z\":0.0168}},\"c6ef37\":{\"lock\":false,\"pos\":{\"x\":25.9413,\"y\":1.2982,\"z\":92.0275},\"rot\":{\"x\":0.0208,\"y\":270.0007,\"z\":0.0168}},\"c821e9\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.285,\"z\":82.9596},\"rot\":{\"x\":0.0208,\"y\":270.0027,\"z\":0.0168}},\"c9c916\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2788,\"z\":66.8742},\"rot\":{\"x\":0.0208,\"y\":270.0125,\"z\":0.0168}},\"ca55a3\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2863,\"z\":87.5596},\"rot\":{\"x\":0.0208,\"y\":270.0103,\"z\":0.0168}},\"cad5d5\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2831,\"z\":84.7133},\"rot\":{\"x\":0.0208,\"y\":270.0192,\"z\":0.0168}},\"cc2723\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2784,\"z\":68.6133},\"rot\":{\"x\":0.0208,\"y\":270.0134,\"z\":0.0168}},\"ce6e77\":{\"lock\":false,\"pos\":{\"x\":22.669,\"y\":1.2957,\"z\":87.435},\"rot\":{\"x\":0.0208,\"y\":269.9996,\"z\":0.0168}},\"cf1b06\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.3073,\"z\":-76.9456},\"rot\":{\"x\":0.0208,\"y\":270.0413,\"z\":0.0168}},\"d40f7c\":{\"lock\":false,\"pos\":{\"x\":22.669,\"y\":1.297,\"z\":92.035},\"rot\":{\"x\":0.0208,\"y\":269.9996,\"z\":0.0168}},\"d490f4\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2856,\"z\":94.4616},\"rot\":{\"x\":0.0208,\"y\":269.9772,\"z\":0.0168}},\"d49971\":{\"lock\":false,\"pos\":{\"x\":-8.987,\"y\":1.2749,\"z\":66.8496},\"rot\":{\"x\":0.0208,\"y\":270.0309,\"z\":0.0168}},\"d8c089\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2829,\"z\":80.6744},\"rot\":{\"x\":0.0208,\"y\":270.0127,\"z\":0.0168}},\"d90685\":{\"lock\":false,\"pos\":{\"x\":-5.4322,\"y\":1.2836,\"z\":92.1496},\"rot\":{\"x\":0.0208,\"y\":270.0153,\"z\":0.0168}},\"d921bc\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2945,\"z\":92.2358},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"dabd8d\":{\"lock\":false,\"pos\":{\"x\":-8.9869,\"y\":1.2823,\"z\":92.1496},\"rot\":{\"x\":0.0208,\"y\":270.0178,\"z\":0.0168}},\"db5369\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2842,\"z\":85.2744},\"rot\":{\"x\":0.0208,\"y\":269.9992,\"z\":0.0168}},\"dba2a6\":{\"lock\":false,\"pos\":{\"x\":-5.4323,\"y\":1.2762,\"z\":66.8496},\"rot\":{\"x\":0.0208,\"y\":269.9579,\"z\":0.0168}},\"dda3dc\":{\"lock\":false,\"pos\":{\"x\":-26.2996,\"y\":1.305,\"z\":-84.818},\"rot\":{\"x\":0.0208,\"y\":270.0212,\"z\":0.0168}},\"ddcdcc\":{\"lock\":false,\"pos\":{\"x\":25.9559,\"y\":1.2969,\"z\":87.4343},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"dedfbb\":{\"lock\":false,\"pos\":{\"x\":22.669,\"y\":1.2977,\"z\":94.335},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"df828a\":{\"lock\":false,\"pos\":{\"x\":15.565,\"y\":1.2905,\"z\":78.4206},\"rot\":{\"x\":0.0208,\"y\":269.9646,\"z\":0.0168}},\"e10b00\":{\"lock\":false,\"pos\":{\"x\":-0.7817,\"y\":1.2791,\"z\":70.9133},\"rot\":{\"x\":0.0208,\"y\":270.0049,\"z\":0.0168}},\"e1f933\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2775,\"z\":66.8616},\"rot\":{\"x\":0.0208,\"y\":269.9755,\"z\":0.0168}},\"e4f0d2\":{\"lock\":false,\"pos\":{\"x\":15.5652,\"y\":1.2911,\"z\":80.7358},\"rot\":{\"x\":0.0208,\"y\":269.9763,\"z\":0.0168}},\"e5ebfc\":{\"lock\":false,\"pos\":{\"x\":-5.4323,\"y\":1.2769,\"z\":69.1496},\"rot\":{\"x\":0.0208,\"y\":270.0253,\"z\":0.0168}},\"e94aa3\":{\"lock\":false,\"pos\":{\"x\":9.1791,\"y\":1.2889,\"z\":92.162},\"rot\":{\"x\":0.0208,\"y\":269.9738,\"z\":0.0168}},\"e9746a\":{\"lock\":false,\"pos\":{\"x\":-8.9914,\"y\":1.283,\"z\":94.459},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"e9d7dc\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2762,\"z\":62.2617},\"rot\":{\"x\":0.0208,\"y\":269.9798,\"z\":0.0168}},\"ee3b9e\":{\"lock\":false,\"pos\":{\"x\":-4.3259,\"y\":1.2839,\"z\":91.6253},\"rot\":{\"x\":0.0208,\"y\":270.0003,\"z\":0.0168}},\"f20025\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2856,\"z\":89.8744},\"rot\":{\"x\":0.0208,\"y\":270.0287,\"z\":0.0168}},\"f424b5\":{\"lock\":false,\"pos\":{\"x\":-19.2956,\"y\":1.3099,\"z\":-76.9414},\"rot\":{\"x\":0.0208,\"y\":269.9008,\"z\":0.0167}},\"f52130\":{\"lock\":false,\"pos\":{\"x\":19.4901,\"y\":1.2945,\"z\":87.4494},\"rot\":{\"x\":0.0208,\"y\":269.9991,\"z\":0.0168}},\"f5d683\":{\"lock\":false,\"pos\":{\"x\":-8.9869,\"y\":1.2769,\"z\":73.7496},\"rot\":{\"x\":0.0208,\"y\":270.0284,\"z\":0.0168}},\"f5dde8\":{\"lock\":false,\"pos\":{\"x\":-12.6025,\"y\":1.281,\"z\":92.1235},\"rot\":{\"x\":0.0208,\"y\":269.9702,\"z\":0.0168}},\"f67bb7\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2768,\"z\":64.5617},\"rot\":{\"x\":0.0208,\"y\":269.975,\"z\":0.0168}},\"f81d7c\":{\"lock\":false,\"pos\":{\"x\":-8.987,\"y\":1.2756,\"z\":69.1496},\"rot\":{\"x\":0.0208,\"y\":270.034,\"z\":0.0168}},\"f91daf\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2836,\"z\":82.9744},\"rot\":{\"x\":0.0208,\"y\":270.0137,\"z\":0.0168}},\"facdd4\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2815,\"z\":76.0744},\"rot\":{\"x\":0.0208,\"y\":270.0117,\"z\":0.0168}},\"fc5916\":{\"lock\":false,\"pos\":{\"x\":5.6423,\"y\":1.2789,\"z\":62.2596},\"rot\":{\"x\":0.0208,\"y\":269.9967,\"z\":0.0168}},\"fd5d1b\":{\"lock\":false,\"pos\":{\"x\":-5.4323,\"y\":1.2755,\"z\":64.5497},\"rot\":{\"x\":0.0208,\"y\":270.0133,\"z\":0.0168}},\"fd989b\":{\"lock\":false,\"pos\":{\"x\":1.7635,\"y\":1.2822,\"z\":78.3744},\"rot\":{\"x\":0.0208,\"y\":270.0119,\"z\":0.0168}},\"fe6cd0\":{\"lock\":false,\"pos\":{\"x\":-11.4337,\"y\":1.2793,\"z\":84.7133},\"rot\":{\"x\":0.0208,\"y\":270.0186,\"z\":0.0168}},\"feac86\":{\"lock\":false,\"pos\":{\"x\":-1.8791,\"y\":1.2836,\"z\":87.5616},\"rot\":{\"x\":0.0208,\"y\":269.9852,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Kaimonogatari Player cards -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -34.69 - posY: 2.83 - posZ: -108.22 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Lola Hayes Rework 197f36.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Lola Hayes Rework 197f36.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Lola Hayes Rework 197f36.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Lola Hayes Rework 197f36.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Lola Hayes Rework 197f36.yaml deleted file mode 100644 index f131baba6..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Lola Hayes Rework 197f36.yaml +++ /dev/null @@ -1,72 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - b: 0.34902 - g: 0.34902 - r: 0.35294 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1754686449895663371/D5D8A1205E220C2ED2D0CA50705FBADE82C053BF/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By Mint Tea Fan -DragSelectable: true -GMNotes: fancreations/investigators_lola_hayes_rework.json -GUID: 197f36 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Lola Hayes Rework 197f36.ttslua' -LuaScriptState: "{\"ml\":{\"019d9e\":{\"lock\":false,\"pos\":{\"x\":3.92140078544617,\"y\":1.32441914081573,\"z\":-56.127498626709},\"rot\":{\"x\":0.0208084993064404,\"y\":269.999938964844,\"z\":0.0167712345719337}},\"01a7a5\":{\"lock\":false,\"pos\":{\"x\":3.91159749031067,\"y\":1.32307767868042,\"z\":-60.6982879638672},\"rot\":{\"x\":0.0208089128136635,\"y\":269.999206542969,\"z\":0.0167708117514849}},\"08377f\":{\"lock\":false,\"pos\":{\"x\":26.8402538299561,\"y\":1.29663562774658,\"z\":-54.9671783447266},\"rot\":{\"x\":0.0208043605089188,\"y\":270.015258789063,\"z\":0.0167764481157064}},\"092130\":{\"lock\":false,\"pos\":{\"x\":6.99819850921631,\"y\":1.31993222236633,\"z\":-75.2736968994141},\"rot\":{\"x\":0.0208056177943945,\"y\":270.010589599609,\"z\":0.0167749170213938}},\"0b0905\":{\"lock\":false,\"pos\":{\"x\":32.6690406799316,\"y\":1.29989576339722,\"z\":-51.0611038208008},\"rot\":{\"x\":0.0208149328827858,\"y\":269.978942871094,\"z\":0.0167632307857275}},\"1da0bd\":{\"lock\":false,\"pos\":{\"x\":28.7816009521484,\"y\":1.29809892177582,\"z\":-52.3765258789063},\"rot\":{\"x\":0.0208087395876646,\"y\":269.999755859375,\"z\":0.0167710147798061}},\"1dae6f\":{\"lock\":false,\"pos\":{\"x\":3.83579897880554,\"y\":1.31878364086151,\"z\":-75.2736968994141},\"rot\":{\"x\":0.0208085812628269,\"y\":270.000152587891,\"z\":0.0167712830007076}},\"201fbe\":{\"lock\":false,\"pos\":{\"x\":26.8402519226074,\"y\":1.29891097545624,\"z\":-47.1935005187988},\"rot\":{\"x\":0.0208149291574955,\"y\":269.979064941406,\"z\":0.0167632326483727}},\"20afe9\":{\"lock\":false,\"pos\":{\"x\":10.4299983978271,\"y\":1.32745599746704,\"z\":-53.8278999328613},\"rot\":{\"x\":0.0208123754709959,\"y\":269.986633300781,\"z\":0.0167661476880312}},\"277df0\":{\"lock\":false,\"pos\":{\"x\":31.3143997192383,\"y\":1.34831249713898,\"z\":-76.6369018554688},\"rot\":{\"x\":359.979187011719,\"y\":90,\"z\":359.983215332031}},\"28fa8c\":{\"lock\":false,\"pos\":{\"x\":26.8402538299561,\"y\":1.29701471328735,\"z\":-53.6715660095215},\"rot\":{\"x\":0.0208039134740829,\"y\":270.016815185547,\"z\":0.0167769882827997}},\"2af612\":{\"lock\":false,\"pos\":{\"x\":32.5227279663086,\"y\":1.29066693782806,\"z\":-82.408088684082},\"rot\":{\"x\":0.0208140984177589,\"y\":269.982452392578,\"z\":0.0167647134512663}},\"2c10a3\":{\"lock\":false,\"pos\":{\"x\":7.19640207290649,\"y\":1.32562005519867,\"z\":-56.0881004333496},\"rot\":{\"x\":0.0208084769546986,\"y\":270.000122070313,\"z\":0.0167713537812233}},\"2cad41\":{\"lock\":false,\"pos\":{\"x\":3.94159936904907,\"y\":1.32711923122406,\"z\":-46.9281005859375},\"rot\":{\"x\":0.0208085831254721,\"y\":270,\"z\":0.0167712792754173}},\"2e8dc6\":{\"lock\":false,\"pos\":{\"x\":13.6491098403931,\"y\":1.32728123664856,\"z\":-58.4188995361328},\"rot\":{\"x\":0.0208083242177963,\"y\":270.000640869141,\"z\":0.0167717356234789}},\"2ec821\":{\"lock\":false,\"pos\":{\"x\":16.9171943664551,\"y\":1.29402875900269,\"z\":-51.5610733032227},\"rot\":{\"x\":0.0208087023347616,\"y\":270.000091552734,\"z\":0.0167712494730949}},\"354f96\":{\"lock\":false,\"pos\":{\"x\":16.9165992736816,\"y\":1.29269909858704,\"z\":-56.1026000976563},\"rot\":{\"x\":0.0208089090883732,\"y\":269.998504638672,\"z\":0.0167705900967121}},\"372afe\":{\"lock\":false,\"pos\":{\"x\":30.7249565124512,\"y\":1.29994642734528,\"z\":-48.4757537841797},\"rot\":{\"x\":0.0208044350147247,\"y\":270.014526367188,\"z\":0.0167762991040945}},\"3d460f\":{\"lock\":false,\"pos\":{\"x\":16.9165992736816,\"y\":1.29202950000763,\"z\":-58.3900985717773},\"rot\":{\"x\":0.0208089165389538,\"y\":269.998596191406,\"z\":0.0167706254869699}},\"3fc00d\":{\"lock\":false,\"pos\":{\"x\":30.724967956543,\"y\":1.29805028438568,\"z\":-54.9538269042969},\"rot\":{\"x\":0.0208147000521421,\"y\":269.98046875,\"z\":0.0167639553546906}},\"46aed1\":{\"lock\":false,\"pos\":{\"x\":7.19505834579468,\"y\":1.3242734670639,\"z\":-60.686767578125},\"rot\":{\"x\":0.0208175051957369,\"y\":269.969879150391,\"z\":0.0167601872235537}},\"4f6abf\":{\"lock\":false,\"pos\":{\"x\":10.4300022125244,\"y\":1.32812559604645,\"z\":-51.5404014587402},\"rot\":{\"x\":0.0208125319331884,\"y\":269.986633300781,\"z\":0.0167664457112551}},\"50de30\":{\"lock\":false,\"pos\":{\"x\":16.9101371765137,\"y\":1.29136097431183,\"z\":-60.6665916442871},\"rot\":{\"x\":0.0208124779164791,\"y\":269.986663818359,\"z\":0.016766257584095}},\"538240\":{\"lock\":false,\"pos\":{\"x\":7.19639539718628,\"y\":1.32628977298737,\"z\":-53.8004989624023},\"rot\":{\"x\":0.0208128653466702,\"y\":269.984405517578,\"z\":0.0167652033269405}},\"53cd6f\":{\"lock\":false,\"pos\":{\"x\":32.6690406799316,\"y\":1.30103349685669,\"z\":-47.1742553710938},\"rot\":{\"x\":0.0208085309714079,\"y\":269.999938964844,\"z\":0.0167711097747087}},\"567067\":{\"lock\":false,\"pos\":{\"x\":24.8910350799561,\"y\":1.29668068885803,\"z\":-52.3944778442383},\"rot\":{\"x\":0.0208133831620216,\"y\":269.983703613281,\"z\":0.0167649667710066}},\"5887cc\":{\"lock\":false,\"pos\":{\"x\":10.4299983978271,\"y\":1.32678639888763,\"z\":-56.1153984069824},\"rot\":{\"x\":0.0208130050450563,\"y\":269.984985351563,\"z\":0.0167658366262913}},\"59a93c\":{\"lock\":false,\"pos\":{\"x\":32.6690406799316,\"y\":1.29875802993774,\"z\":-54.9479560852051},\"rot\":{\"x\":0.0208092629909515,\"y\":269.998657226563,\"z\":0.0167708080261946}},\"5c93be\":{\"lock\":false,\"pos\":{\"x\":26.8402538299561,\"y\":1.2973940372467,\"z\":-52.3759536743164},\"rot\":{\"x\":0.0208149068057537,\"y\":269.979309082031,\"z\":0.0167634282261133}},\"5eed1b\":{\"lock\":false,\"pos\":{\"x\":13.6441516876221,\"y\":1.32661664485931,\"z\":-60.683422088623},\"rot\":{\"x\":0.0208079162985086,\"y\":270.001403808594,\"z\":0.0167719349265099}},\"610887\":{\"lock\":false,\"pos\":{\"x\":3.94160103797913,\"y\":1.32578003406525,\"z\":-51.503101348877},\"rot\":{\"x\":0.0208084210753441,\"y\":270.000061035156,\"z\":0.016771275550127}},\"6119f3\":{\"lock\":false,\"pos\":{\"x\":7.81915473937988,\"y\":1.31534194946289,\"z\":-91.9738616943359},\"rot\":{\"x\":0.0208124257624149,\"y\":269.985778808594,\"z\":0.0167659912258387}},\"61f8a6\":{\"lock\":false,\"pos\":{\"x\":24.8910350799561,\"y\":1.29592227935791,\"z\":-54.9857063293457},\"rot\":{\"x\":0.0208087246865034,\"y\":269.999755859375,\"z\":0.0167709402740002}},\"6930e1\":{\"lock\":false,\"pos\":{\"x\":32.6690406799316,\"y\":1.30065429210663,\"z\":-48.4698715209961},\"rot\":{\"x\":0.0208149123936892,\"y\":269.978820800781,\"z\":0.0167637094855309}},\"6eae6f\":{\"lock\":false,\"pos\":{\"x\":24.8910350799561,\"y\":1.2978184223175,\"z\":-48.5076332092285},\"rot\":{\"x\":0.020815022289753,\"y\":269.979156494141,\"z\":0.016763512045145}},\"702b7f\":{\"lock\":false,\"pos\":{\"x\":28.7816009521484,\"y\":1.29847812652588,\"z\":-51.0809097290039},\"rot\":{\"x\":0.0208148676902056,\"y\":269.979949951172,\"z\":0.0167637690901756}},\"728070\":{\"lock\":false,\"pos\":{\"x\":28.7816009521484,\"y\":1.29771971702576,\"z\":-53.6721382141113},\"rot\":{\"x\":0.0208141338080168,\"y\":269.981689453125,\"z\":0.0167641006410122}},\"747a1a\":{\"lock\":false,\"pos\":{\"x\":13.6926002502441,\"y\":1.32997536659241,\"z\":-49.268798828125},\"rot\":{\"x\":0.0208126474171877,\"y\":269.985595703125,\"z\":0.0167661849409342}},\"7b8100\":{\"lock\":false,\"pos\":{\"x\":28.7816028594971,\"y\":1.29734039306641,\"z\":-54.9677543640137},\"rot\":{\"x\":0.020811952650547,\"y\":269.988464355469,\"z\":0.0167668182402849}},\"7f7f75\":{\"lock\":false,\"pos\":{\"x\":6.22623920440674,\"y\":1.37304794788361,\"z\":-85.519287109375},\"rot\":{\"x\":359.979187011719,\"y\":89.9835586547852,\"z\":359.983245849609}},\"83355d\":{\"lock\":false,\"pos\":{\"x\":3.92138838768005,\"y\":1.32374942302704,\"z\":-58.4151992797852},\"rot\":{\"x\":0.0208090972155333,\"y\":269.998596191406,\"z\":0.0167706105858088}},\"8504ab\":{\"lock\":false,\"pos\":{\"x\":10.4300117492676,\"y\":1.32611680030823,\"z\":-58.4029006958008},\"rot\":{\"x\":0.0208083558827639,\"y\":270.000610351563,\"z\":0.0167714022099972}},\"865252\":{\"lock\":false,\"pos\":{\"x\":7.19640111923218,\"y\":1.32695925235748,\"z\":-51.5130004882813},\"rot\":{\"x\":0.0208086855709553,\"y\":269.999542236328,\"z\":0.0167709346860647}},\"8bc619\":{\"lock\":false,\"pos\":{\"x\":3.94160294532776,\"y\":1.32644963264465,\"z\":-49.2155990600586},\"rot\":{\"x\":0.0208084024488926,\"y\":269.999938964844,\"z\":0.0167711675167084}},\"8dd1fd\":{\"lock\":false,\"pos\":{\"x\":28.7816009521484,\"y\":1.29885733127594,\"z\":-49.7852935791016},\"rot\":{\"x\":0.0208091344684362,\"y\":269.999725341797,\"z\":0.0167706590145826}},\"8deccc\":{\"lock\":false,\"pos\":{\"x\":6.99819993972778,\"y\":1.31926262378693,\"z\":-77.5612030029297},\"rot\":{\"x\":0.0208084024488926,\"y\":270,\"z\":0.0167710911482573}},\"8f0604\":{\"lock\":false,\"pos\":{\"x\":7.19640207290649,\"y\":1.32495045661926,\"z\":-58.3755989074707},\"rot\":{\"x\":0.0208088997751474,\"y\":269.998352050781,\"z\":0.0167705584317446}},\"93db19\":{\"lock\":false,\"pos\":{\"x\":16.9171943664551,\"y\":1.29469835758209,\"z\":-49.2735748291016},\"rot\":{\"x\":0.02080905623734,\"y\":269.998504638672,\"z\":0.0167706962674856}},\"94d024\":{\"lock\":false,\"pos\":{\"x\":26.8402538299561,\"y\":1.29815244674683,\"z\":-49.784725189209},\"rot\":{\"x\":0.0208147242665291,\"y\":269.978881835938,\"z\":0.0167635474354029}},\"96dc11\":{\"lock\":false,\"pos\":{\"x\":24.8910350799561,\"y\":1.29630148410797,\"z\":-53.6900901794434},\"rot\":{\"x\":0.0208086483180523,\"y\":269.999603271484,\"z\":0.0167705751955509}},\"97cea6\":{\"lock\":false,\"pos\":{\"x\":16.9165992736816,\"y\":1.29336869716644,\"z\":-53.8151016235352},\"rot\":{\"x\":0.0208126399666071,\"y\":269.985687255859,\"z\":0.0167660601437092}},\"9bff41\":{\"lock\":false,\"pos\":{\"x\":7.19640207290649,\"y\":1.3282984495163,\"z\":-46.9379997253418},\"rot\":{\"x\":0.0208085980266333,\"y\":270.000122070313,\"z\":0.0167712979018688}},\"a05b8d\":{\"lock\":false,\"pos\":{\"x\":16.4209995269775,\"y\":1.3429182767868,\"z\":-76.586799621582},\"rot\":{\"x\":359.979187011719,\"y\":90,\"z\":359.983215332031}},\"a10a31\":{\"lock\":false,\"pos\":{\"x\":32.6513633728027,\"y\":1.29770743846893,\"z\":-58.5151557922363},\"rot\":{\"x\":0.0208142809569836,\"y\":269.981781005859,\"z\":0.016764285042882}},\"a55c84\":{\"lock\":false,\"pos\":{\"x\":26.8402538299561,\"y\":1.29777324199677,\"z\":-51.0803375244141},\"rot\":{\"x\":0.0208055581897497,\"y\":270.010009765625,\"z\":0.0167748406529427}},\"a5a5fd\":{\"lock\":false,\"pos\":{\"x\":30.7249565124512,\"y\":1.29956722259521,\"z\":-49.771369934082},\"rot\":{\"x\":0.0208145193755627,\"y\":269.979766845703,\"z\":0.0167634915560484}},\"a60082\":{\"lock\":false,\"pos\":{\"x\":28.7816009521484,\"y\":1.29961585998535,\"z\":-47.1940612792969},\"rot\":{\"x\":0.0208147093653679,\"y\":269.97900390625,\"z\":0.0167633593082428}},\"a9e612\":{\"lock\":false,\"pos\":{\"x\":16.9171943664551,\"y\":1.29536783695221,\"z\":-46.9860725402832},\"rot\":{\"x\":0.0208084620535374,\"y\":270.000244140625,\"z\":0.0167713891714811}},\"aa5286\":{\"lock\":false,\"pos\":{\"x\":13.6491022109985,\"y\":1.32795083522797,\"z\":-56.1313018798828},\"rot\":{\"x\":0.0208085123449564,\"y\":270.000091552734,\"z\":0.0167715921998024}},\"ac8f67\":{\"lock\":false,\"pos\":{\"x\":3.81709909439087,\"y\":1.3211362361908,\"z\":-67.2136001586914},\"rot\":{\"x\":0.0208126436918974,\"y\":269.985717773438,\"z\":0.0167659427970648}},\"acc5be\":{\"lock\":false,\"pos\":{\"x\":7.48732423782349,\"y\":1.32246577739716,\"z\":-67.2249984741211},\"rot\":{\"x\":0.020813025534153,\"y\":269.985778808594,\"z\":0.0167660154402256}},\"b102c3\":{\"lock\":false,\"pos\":{\"x\":13.6926012039185,\"y\":1.3306450843811,\"z\":-46.981201171875},\"rot\":{\"x\":0.0208125654608011,\"y\":269.98583984375,\"z\":0.0167661607265472}},\"b45739\":{\"lock\":false,\"pos\":{\"x\":30.7249660491943,\"y\":1.30032575130463,\"z\":-47.1801376342773},\"rot\":{\"x\":0.02080905623734,\"y\":270.000061035156,\"z\":0.0167709086090326}},\"b4fc98\":{\"lock\":false,\"pos\":{\"x\":24.8910350799561,\"y\":1.29819762706757,\"z\":-47.2120208740234},\"rot\":{\"x\":0.0208149868994951,\"y\":269.979248046875,\"z\":0.0167633313685656}},\"b811d0\":{\"lock\":false,\"pos\":{\"x\":16.9150009155273,\"y\":1.28909361362457,\"z\":-68.4179992675781},\"rot\":{\"x\":0.0208075027912855,\"y\":270.003295898438,\"z\":0.0167724974453449}},\"bb0dc0\":{\"lock\":false,\"pos\":{\"x\":13.6490983963013,\"y\":1.32929003238678,\"z\":-51.5563011169434},\"rot\":{\"x\":0.0208124667406082,\"y\":269.985534667969,\"z\":0.0167663432657719}},\"bb684e\":{\"lock\":false,\"pos\":{\"x\":3.8357982635498,\"y\":1.31811416149139,\"z\":-77.5612030029297},\"rot\":{\"x\":0.0208063647150993,\"y\":270.007354736328,\"z\":0.0167737249284983}},\"bb9641\":{\"lock\":false,\"pos\":{\"x\":3.94159889221191,\"y\":1.32511055469513,\"z\":-53.790599822998},\"rot\":{\"x\":0.0208086203783751,\"y\":269.999969482422,\"z\":0.0167711712419987}},\"be227d\":{\"lock\":false,\"pos\":{\"x\":26.8402538299561,\"y\":1.29853177070618,\"z\":-48.4891090393066},\"rot\":{\"x\":0.02081498503685,\"y\":269.97900390625,\"z\":0.016763050109148}},\"c04c67\":{\"lock\":false,\"pos\":{\"x\":32.6513633728027,\"y\":1.29732823371887,\"z\":-59.8107566833496},\"rot\":{\"x\":0.0208146143704653,\"y\":269.979461669922,\"z\":0.0167633686214685}},\"c5fe5b\":{\"lock\":false,\"pos\":{\"x\":30.7249565124512,\"y\":1.29918801784515,\"z\":-51.0669860839844},\"rot\":{\"x\":0.0208047740161419,\"y\":270.014007568359,\"z\":0.0167763773351908}},\"c7e3cf\":{\"lock\":false,\"pos\":{\"x\":30.7249565124512,\"y\":1.29880881309509,\"z\":-52.3625946044922},\"rot\":{\"x\":0.0208084918558598,\"y\":270.000427246094,\"z\":0.0167708285152912}},\"c95de1\":{\"lock\":false,\"pos\":{\"x\":32.6690406799316,\"y\":1.29951655864716,\"z\":-52.3567237854004},\"rot\":{\"x\":0.0208088513463736,\"y\":269.999328613281,\"z\":0.0167709048837423}},\"d3d7fb\":{\"lock\":false,\"pos\":{\"x\":32.6690406799316,\"y\":1.29913723468781,\"z\":-53.6523399353027},\"rot\":{\"x\":0.0208129361271858,\"y\":269.984558105469,\"z\":0.0167655125260353}},\"d45a1d\":{\"lock\":false,\"pos\":{\"x\":5.17509365081787,\"y\":1.31438422203064,\"z\":-91.9651794433594},\"rot\":{\"x\":0.0208127330988646,\"y\":269.985626220703,\"z\":0.0167658533900976}},\"d9a805\":{\"lock\":false,\"pos\":{\"x\":7.19639825820923,\"y\":1.32762885093689,\"z\":-49.2254981994629},\"rot\":{\"x\":0.0208087023347616,\"y\":269.999694824219,\"z\":0.0167710371315479}},\"dc6a2c\":{\"lock\":false,\"pos\":{\"x\":16.9150009155273,\"y\":1.28976321220398,\"z\":-66.130500793457},\"rot\":{\"x\":0.0208083242177963,\"y\":270.000732421875,\"z\":0.0167713966220617}},\"ddccf9\":{\"lock\":false,\"pos\":{\"x\":10.4736061096191,\"y\":1.32881104946136,\"z\":-49.2528991699219},\"rot\":{\"x\":0.0208082422614098,\"y\":270.001403808594,\"z\":0.016771525144577}},\"e0bf2d\":{\"lock\":false,\"pos\":{\"x\":10.4073534011841,\"y\":1.32543790340424,\"z\":-60.6943244934082},\"rot\":{\"x\":0.0208086799830198,\"y\":269.999328613281,\"z\":0.0167710985988379}},\"e26ddc\":{\"lock\":false,\"pos\":{\"x\":24.8910350799561,\"y\":1.29705989360809,\"z\":-51.0988616943359},\"rot\":{\"x\":0.020803939551115,\"y\":270.015869140625,\"z\":0.0167766232043505}},\"e4377f\":{\"lock\":false,\"pos\":{\"x\":10.4736051559448,\"y\":1.32948064804077,\"z\":-46.9654006958008},\"rot\":{\"x\":0.0208081118762493,\"y\":270.001190185547,\"z\":0.0167714916169643}},\"e86c65\":{\"lock\":false,\"pos\":{\"x\":13.6491022109985,\"y\":1.32862043380737,\"z\":-53.8437995910645},\"rot\":{\"x\":0.0208083298057318,\"y\":270.000091552734,\"z\":0.0167714711278677}},\"ebc4d9\":{\"lock\":false,\"pos\":{\"x\":28.7816009521484,\"y\":1.29923665523529,\"z\":-48.4896774291992},\"rot\":{\"x\":0.0208099763840437,\"y\":269.996398925781,\"z\":0.0167694985866547}},\"ef116e\":{\"lock\":false,\"pos\":{\"x\":30.7249565124512,\"y\":1.29842948913574,\"z\":-53.6582107543945},\"rot\":{\"x\":0.0208144132047892,\"y\":269.979614257813,\"z\":0.0167637132108212}},\"f317ac\":{\"lock\":false,\"pos\":{\"x\":32.6690406799316,\"y\":1.30027496814728,\"z\":-49.7654914855957},\"rot\":{\"x\":0.0208088606595993,\"y\":269.999816894531,\"z\":0.0167711395770311}},\"fa142f\":{\"lock\":false,\"pos\":{\"x\":24.8910350799561,\"y\":1.29743921756744,\"z\":-49.8032493591309},\"rot\":{\"x\":0.0208056848496199,\"y\":270.010162353516,\"z\":0.0167747549712658}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Lola Hayes Rework -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -33.93 - posY: 1.97 - posZ: -99.81 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Magical Girl Arkham Project 814e2a.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Magical Girl Arkham Project 814e2a.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Magical Girl Arkham Project 814e2a.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Magical Girl Arkham Project 814e2a.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Magical Girl Arkham Project 814e2a.yaml deleted file mode 100644 index 895b4c1fe..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Magical Girl Arkham Project 814e2a.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1903353113607751170/B835836D4DB21CA06206BF84EEAAD6B3E6C157CB/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_magical_girl.json -GUID: 814e2a -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Magical Girl Arkham Project 814e2a.ttslua' -LuaScriptState: "{\"ml\":{\"28957b\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.1159,\"z\":-61.2332},\"rot\":{\"x\":359.9792,\"y\":90.0003,\"z\":359.9832}},\"6f2834\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.1089,\"z\":-84.8182},\"rot\":{\"x\":359.9792,\"y\":90.0013,\"z\":359.9832}},\"b4a99c\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.1181,\"z\":-53.4358},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"cfa958\":{\"lock\":false,\"pos\":{\"x\":-26.3002,\"y\":1.111,\"z\":-69.0606},\"rot\":{\"x\":359.9792,\"y\":89.9785,\"z\":359.9832}},\"e8b5fc\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.1113,\"z\":-76.9415},\"rot\":{\"x\":359.9792,\"y\":90.0002,\"z\":359.9832}},\"f6152e\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3223,\"z\":-69.0756},\"rot\":{\"x\":0.0208,\"y\":269.9924,\"z\":0.0168}},\"f6199b\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.1136,\"z\":-69.0607},\"rot\":{\"x\":359.9792,\"y\":90.0047,\"z\":359.9832}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Magical Girl Arkham Project -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -57.86 - posY: 2.38 - posZ: -72.02 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Mass Effect Investigators b82c6f.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Mass Effect Investigators b82c6f.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Mass Effect Investigators b82c6f.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Mass Effect Investigators b82c6f.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Mass Effect Investigators b82c6f.yaml deleted file mode 100644 index 1a7007a6c..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Mass Effect Investigators b82c6f.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1667985852037525429/FFCBAFD8EF7EFD1127F4482DF01FFD8AE9638B4D/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_mass_effect.json -GUID: b82c6f -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Mass Effect Investigators b82c6f.ttslua' -LuaScriptState: "{\"ml\":{\"08d3e3\":{\"lock\":false,\"pos\":{\"x\":13.7846,\"y\":1.1313,\"z\":-49.5292},\"rot\":{\"x\":0.0208,\"y\":270.0289,\"z\":0.0168}},\"0bb6e8\":{\"lock\":false,\"pos\":{\"x\":10.0417,\"y\":1.3206,\"z\":-76.9242},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"0ccbc7\":{\"lock\":false,\"pos\":{\"x\":1.8744,\"y\":1.3711,\"z\":-86.5372},\"rot\":{\"x\":359.9789,\"y\":90.0433,\"z\":359.9843}},\"17f1f6\":{\"lock\":false,\"pos\":{\"x\":13.7266,\"y\":1.3242,\"z\":-69.0544},\"rot\":{\"x\":0.0208,\"y\":269.9988,\"z\":0.0168}},\"1850a0\":{\"lock\":false,\"pos\":{\"x\":10.1154,\"y\":1.13,\"z\":-49.5287},\"rot\":{\"x\":0.0208,\"y\":270.0003,\"z\":0.0168}},\"1a4d37\":{\"lock\":false,\"pos\":{\"x\":13.727,\"y\":1.3219,\"z\":-76.9246},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"2b6cc2\":{\"lock\":false,\"pos\":{\"x\":2.5928,\"y\":1.3179,\"z\":-76.9188},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"31a747\":{\"lock\":false,\"pos\":{\"x\":6.2777,\"y\":1.3215,\"z\":-69.0494},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"4fd5ba\":{\"lock\":false,\"pos\":{\"x\":13.7264,\"y\":1.3288,\"z\":-53.4163},\"rot\":{\"x\":0.0208,\"y\":269.9996,\"z\":0.0168}},\"513d5a\":{\"lock\":false,\"pos\":{\"x\":10.0422,\"y\":1.3274,\"z\":-53.4154},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"547fe6\":{\"lock\":false,\"pos\":{\"x\":13.7252,\"y\":1.3265,\"z\":-61.2201},\"rot\":{\"x\":0.0208,\"y\":270.0005,\"z\":0.0168}},\"570e85\":{\"lock\":false,\"pos\":{\"x\":2.6965,\"y\":1.1181,\"z\":-80.8667},\"rot\":{\"x\":0.0208,\"y\":270.0195,\"z\":0.0168}},\"60fa35\":{\"lock\":false,\"pos\":{\"x\":6.3792,\"y\":1.1263,\"z\":-57.3239},\"rot\":{\"x\":0.0208,\"y\":270.0177,\"z\":0.0168}},\"6d5e35\":{\"lock\":false,\"pos\":{\"x\":13.7587,\"y\":1.1267,\"z\":-65.2426},\"rot\":{\"x\":0.0208,\"y\":270.0178,\"z\":0.0168}},\"6fd13b\":{\"lock\":false,\"pos\":{\"x\":2.5897,\"y\":1.1204,\"z\":-72.9237},\"rot\":{\"x\":0.0208,\"y\":270.0206,\"z\":0.0168}},\"71818d\":{\"lock\":false,\"pos\":{\"x\":6.3664,\"y\":1.1286,\"z\":-49.5291},\"rot\":{\"x\":0.0208,\"y\":270.0194,\"z\":0.0168}},\"80b260\":{\"lock\":false,\"pos\":{\"x\":2.62,\"y\":1.1272,\"z\":-49.5292},\"rot\":{\"x\":0.0208,\"y\":270.0222,\"z\":0.0168}},\"80fbd7\":{\"lock\":false,\"pos\":{\"x\":13.8384,\"y\":1.1221,\"z\":-80.8671},\"rot\":{\"x\":0.0208,\"y\":270.0192,\"z\":0.0168}},\"821d26\":{\"lock\":false,\"pos\":{\"x\":6.2777,\"y\":1.3192,\"z\":-76.9192},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0167}},\"828364\":{\"lock\":false,\"pos\":{\"x\":6.2797,\"y\":1.3261,\"z\":-53.4113},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"858c12\":{\"lock\":false,\"pos\":{\"x\":10.1694,\"y\":1.1208,\"z\":-80.8667},\"rot\":{\"x\":0.0208,\"y\":270.0009,\"z\":0.0168}},\"87c700\":{\"lock\":false,\"pos\":{\"x\":2.5934,\"y\":1.3202,\"z\":-69.0337},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"8c43cc\":{\"lock\":false,\"pos\":{\"x\":6.2767,\"y\":1.3169,\"z\":-84.7916},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"8d56c2\":{\"lock\":false,\"pos\":{\"x\":13.7254,\"y\":1.3196,\"z\":-84.7972},\"rot\":{\"x\":0.0208,\"y\":270.0055,\"z\":0.0168}},\"947614\":{\"lock\":false,\"pos\":{\"x\":13.7557,\"y\":1.1244,\"z\":-72.9234},\"rot\":{\"x\":0.0208,\"y\":270.0186,\"z\":0.0168}},\"9db582\":{\"lock\":false,\"pos\":{\"x\":6.2766,\"y\":1.3238,\"z\":-61.2146},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"b0675e\":{\"lock\":false,\"pos\":{\"x\":2.5933,\"y\":1.3224,\"z\":-61.2141},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"b6b587\":{\"lock\":false,\"pos\":{\"x\":2.5939,\"y\":1.1226,\"z\":-65.2427},\"rot\":{\"x\":0.0208,\"y\":270.021,\"z\":0.0168}},\"b6e8bc\":{\"lock\":false,\"pos\":{\"x\":6.336,\"y\":1.1217,\"z\":-72.9236},\"rot\":{\"x\":0.0208,\"y\":270.0179,\"z\":0.0168}},\"b9aa5d\":{\"lock\":false,\"pos\":{\"x\":10.0851,\"y\":1.1231,\"z\":-72.923},\"rot\":{\"x\":0.0208,\"y\":270.0019,\"z\":0.0168}},\"bced27\":{\"lock\":false,\"pos\":{\"x\":10.1282,\"y\":1.1277,\"z\":-57.3233},\"rot\":{\"x\":0.0208,\"y\":270.0015,\"z\":0.0168}},\"be4e02\":{\"lock\":false,\"pos\":{\"x\":10.0425,\"y\":1.3183,\"z\":-84.7966},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"c1cdf9\":{\"lock\":false,\"pos\":{\"x\":6.3705,\"y\":1.124,\"z\":-65.2395},\"rot\":{\"x\":0.0208,\"y\":270.0005,\"z\":0.0168}},\"c75ea5\":{\"lock\":false,\"pos\":{\"x\":10.0417,\"y\":1.3252,\"z\":-61.2201},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"daf913\":{\"lock\":false,\"pos\":{\"x\":10.0419,\"y\":1.3229,\"z\":-69.0393},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"dc76bd\":{\"lock\":false,\"pos\":{\"x\":0.1399,\"y\":1.4643,\"z\":-89.6423},\"rot\":{\"x\":0.0186,\"y\":270.0274,\"z\":0.0196}},\"e82a8b\":{\"lock\":false,\"pos\":{\"x\":10.0893,\"y\":1.1254,\"z\":-65.2422},\"rot\":{\"x\":0.0208,\"y\":270.0003,\"z\":0.0168}},\"ed77db\":{\"lock\":false,\"pos\":{\"x\":2.6329,\"y\":1.125,\"z\":-57.3239},\"rot\":{\"x\":0.0208,\"y\":270.0218,\"z\":0.0168}},\"f36d20\":{\"lock\":false,\"pos\":{\"x\":2.5934,\"y\":1.3247,\"z\":-53.4101},\"rot\":{\"x\":0.0208,\"y\":269.9967,\"z\":0.0168}},\"fc82f2\":{\"lock\":false,\"pos\":{\"x\":13.7976,\"y\":1.129,\"z\":-57.3239},\"rot\":{\"x\":0.0208,\"y\":270.0198,\"z\":0.0168}},\"fe3578\":{\"lock\":false,\"pos\":{\"x\":6.4201,\"y\":1.1194,\"z\":-80.8671},\"rot\":{\"x\":0.0208,\"y\":270.0186,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Mass Effect Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.96 - posZ: 81.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Maximillion Pegasus Custom Investigator 4608c8.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Maximillion Pegasus Custom Investigator 4608c8.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Maximillion Pegasus Custom Investigator 4608c8.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Maximillion Pegasus Custom Investigator 4608c8.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Maximillion Pegasus Custom Investigator 4608c8.yaml deleted file mode 100644 index 68a0feec5..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Maximillion Pegasus Custom Investigator 4608c8.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1684870715280907223/1E9DE758F089D7F880ADC8CA594F9AA938743F8B/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By Game#0398 -DragSelectable: true -GMNotes: fancreations/investigators_maximillion_pegasus.json -GUID: 4608c8 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Maximillion Pegasus Custom Investigator 4608c8.ttslua' -LuaScriptState: "{\"ml\":{\"043636\":{\"lock\":false,\"pos\":{\"x\":-19.2958831787109,\"y\":1.31220149993896,\"z\":-69.0607070922852},\"rot\":{\"x\":0.0208086650818586,\"y\":270,\"z\":0.0167712047696114}},\"38e58a\":{\"lock\":false,\"pos\":{\"x\":-22.6156921386719,\"y\":1.31099140644073,\"z\":-69.0756149291992},\"rot\":{\"x\":0.0208094250410795,\"y\":269.999908447266,\"z\":0.0167717207223177}},\"728c1e\":{\"lock\":false,\"pos\":{\"x\":-26.3002033233643,\"y\":1.34105360507965,\"z\":-69.0606002807617},\"rot\":{\"x\":0.0208094790577888,\"y\":270.003631591797,\"z\":0.016773009672761}},\"e1aefa\":{\"lock\":false,\"pos\":{\"x\":-16.6402912139893,\"y\":1.31316602230072,\"z\":-69.0602951049805},\"rot\":{\"x\":0.0208082552999258,\"y\":270.000030517578,\"z\":0.0167675074189901}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Maximillion Pegasus Custom Investigator -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.96 - posZ: 81.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Nightmare Pack - EN e32a71.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Nightmare Pack - EN e32a71.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Nightmare Pack - EN e32a71.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Nightmare Pack - EN e32a71.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Nightmare Pack - EN e32a71.yaml deleted file mode 100644 index 116e2b2cf..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Nightmare Pack - EN e32a71.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.4999999 - SpecularColor: - b: 0.735294163 - g: 0.735294163 - r: 0.735294163 - SpecularIntensity: 0.3 - SpecularSharpness: 8.0 - DiffuseURL: https://i.imgur.com/ftafgpa.pnghttps://i.imgur.com/ftafgpa.png - MaterialIndex: 2 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: by The Popest -DragSelectable: true -GMNotes: fancreations/investigators_nightmare_town.json -GUID: e32a71 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Nightmare Pack - EN e32a71.ttslua' -LuaScriptState: "{\"ml\":{\"0088ba\":{\"lock\":false,\"pos\":{\"x\":-6.92639875411987,\"y\":97.6375579833984,\"z\":2.96812868118286},\"rot\":{\"x\":359.5029296875,\"y\":180.023330688477,\"z\":0.330624610185623}},\"0195d3\":{\"lock\":false,\"pos\":{\"x\":-5.3164,\"y\":1.7026,\"z\":0.3783},\"rot\":{\"x\":359.9197,\"y\":270.0199,\"z\":0.0168}},\"02dd21\":{\"lock\":false,\"pos\":{\"x\":-26.2999973297119,\"y\":1.27566242218018,\"z\":-53.4368362426758},\"rot\":{\"x\":359.979156494141,\"y\":89.9969024658203,\"z\":359.983245849609}},\"0745af\":{\"lock\":false,\"pos\":{\"x\":-16.6232299804688,\"y\":1.3615038394928,\"z\":-62.4441375732422},\"rot\":{\"x\":0.0208165217190981,\"y\":269.999938964844,\"z\":0.0167675279080868}},\"0be33e\":{\"lock\":false,\"pos\":{\"x\":-19.2455997467041,\"y\":1.29233181476593,\"z\":-90.5261001586914},\"rot\":{\"x\":0.0208136830478907,\"y\":269.986114501953,\"z\":0.0167653951793909}},\"0de2c4\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.35992407798767,\"z\":-67.8206024169922},\"rot\":{\"x\":0.0208164416253567,\"y\":269.999755859375,\"z\":0.0167678892612457}},\"0f241b\":{\"lock\":false,\"pos\":{\"x\":-22.6168975830078,\"y\":1.3063827753067,\"z\":-84.8184967041016},\"rot\":{\"x\":0.016771724447608,\"y\":179.999954223633,\"z\":359.979187011719}},\"11dbe4\":{\"lock\":false,\"pos\":{\"x\":-19.3039,\"y\":1.294,\"z\":-84.8224},\"rot\":{\"x\":0.0208,\"y\":269.9865,\"z\":0.0168}},\"1842b6\":{\"lock\":false,\"pos\":{\"x\":-26.3059005737305,\"y\":1.27565884590149,\"z\":-53.4418983459473},\"rot\":{\"x\":359.979187011719,\"y\":90.0104064941406,\"z\":359.983215332031}},\"19a0c4\":{\"lock\":false,\"pos\":{\"x\":-19.30419921875,\"y\":1.30316603183746,\"z\":-53.4401016235352},\"rot\":{\"x\":0.0208098273724318,\"y\":270.000091552734,\"z\":0.0167705342173576}},\"1a160c\":{\"lock\":false,\"pos\":{\"x\":-22.1548,\"y\":1.3655,\"z\":-53.4315},\"rot\":{\"x\":0.02,\"y\":270.018,\"z\":0.0165}},\"1aebf8\":{\"lock\":false,\"pos\":{\"x\":-26.3001308441162,\"y\":1.27108907699585,\"z\":-69.0606002807617},\"rot\":{\"x\":359.979156494141,\"y\":89.9996719360352,\"z\":359.983245849609}},\"1b0fdd\":{\"lock\":false,\"pos\":{\"x\":-16.5254249572754,\"y\":1.35332095623016,\"z\":-90.5208129882813},\"rot\":{\"x\":359.983215332031,\"y\":3.27318957715761E-05,\"z\":0.0208062957972288}},\"1dee2f\":{\"lock\":false,\"pos\":{\"x\":-6.90673065185547,\"y\":97.6462097167969,\"z\":1.91000008583069},\"rot\":{\"x\":359.501251220703,\"y\":180.003860473633,\"z\":0.333155572414398}},\"1f8fcf\":{\"lock\":false,\"pos\":{\"x\":-16.6235466003418,\"y\":1.35957205295563,\"z\":-69.0435256958008},\"rot\":{\"x\":0.0208160616457462,\"y\":270.00048828125,\"z\":0.0167686101049185}},\"226716\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.35920107364655,\"z\":-70.2906036376953},\"rot\":{\"x\":0.0208164621144533,\"y\":269.999572753906,\"z\":0.0167677756398916}},\"24660b\":{\"lock\":false,\"pos\":{\"x\":-16.6233291625977,\"y\":1.36415886878967,\"z\":-53.3736343383789},\"rot\":{\"x\":0.0208165738731623,\"y\":270.000305175781,\"z\":0.0167682748287916}},\"2a0151\":{\"lock\":false,\"pos\":{\"x\":-26.29958152771,\"y\":1.26647675037384,\"z\":-84.817985534668},\"rot\":{\"x\":359.979156494141,\"y\":90.0002746582031,\"z\":359.983215332031}},\"2d7917\":{\"lock\":false,\"pos\":{\"x\":-22.6168994903564,\"y\":1.31328415870667,\"z\":-61.2414016723633},\"rot\":{\"x\":0.016771299764514,\"y\":179.999923706055,\"z\":359.979187011719}},\"307044\":{\"lock\":false,\"pos\":{\"x\":-16.6401996612549,\"y\":1.3549485206604,\"z\":-84.8181991577148},\"rot\":{\"x\":0.0208103768527508,\"y\":270.022247314453,\"z\":0.016776017844677}},\"3b2bad\":{\"lock\":false,\"pos\":{\"x\":-22.6207008361816,\"y\":1.31328284740448,\"z\":-61.2412986755371},\"rot\":{\"x\":0.0208657011389732,\"y\":269.805206298828,\"z\":0.0167002454400063}},\"3c3607\":{\"lock\":false,\"pos\":{\"x\":-16.6233367919922,\"y\":1.36186385154724,\"z\":-61.2142333984375},\"rot\":{\"x\":0.0208165049552917,\"y\":269.99951171875,\"z\":0.0167678613215685}},\"3ddfeb\":{\"lock\":false,\"pos\":{\"x\":-16.6394004821777,\"y\":1.35459744930267,\"z\":-86.0186004638672},\"rot\":{\"x\":0.0208164379000664,\"y\":269.999572753906,\"z\":0.0167675726115704}},\"3f0e28\":{\"lock\":false,\"pos\":{\"x\":-19.2959003448486,\"y\":1.31220149993896,\"z\":-69.0606994628906},\"rot\":{\"x\":0.0208025686442852,\"y\":270.020874023438,\"z\":0.0167785324156284}},\"41bfc7\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.3618528842926,\"z\":-61.2309989929199},\"rot\":{\"x\":0.0208135135471821,\"y\":270.010925292969,\"z\":0.0167720373719931}},\"437a37\":{\"lock\":false,\"pos\":{\"x\":-22.6156997680664,\"y\":1.30868768692017,\"z\":-76.9459991455078},\"rot\":{\"x\":0.0208149589598179,\"y\":269.979187011719,\"z\":0.0167635623365641}},\"4722e6\":{\"lock\":false,\"pos\":{\"x\":-26.3049983978271,\"y\":1.2733747959137,\"z\":-61.2458000183105},\"rot\":{\"x\":359.979156494141,\"y\":89.9815063476563,\"z\":359.983245849609}},\"4ad11b\":{\"lock\":false,\"pos\":{\"x\":-16.6396007537842,\"y\":1.357253074646,\"z\":-76.9456024169922},\"rot\":{\"x\":0.0208168551325798,\"y\":269.999694824219,\"z\":0.0167679917067289}},\"4d0a50\":{\"lock\":false,\"pos\":{\"x\":-22.613899230957,\"y\":1.31556940078735,\"z\":-53.4380989074707},\"rot\":{\"x\":0.0167713351547718,\"y\":179.999938964844,\"z\":359.979187011719}},\"4f37be\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2334},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"51f42c\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3156,\"z\":-53.4381},\"rot\":{\"x\":0.0208,\"y\":270.018,\"z\":0.0166}},\"543164\":{\"lock\":false,\"pos\":{\"x\":-16.6403007507324,\"y\":1.35956108570099,\"z\":-69.060302734375},\"rot\":{\"x\":0.0208166968077421,\"y\":269.999481201172,\"z\":0.0167676880955696}},\"5c7b14\":{\"lock\":false,\"pos\":{\"x\":-26.3050994873047,\"y\":1.27108597755432,\"z\":-69.0654067993164},\"rot\":{\"x\":359.979187011719,\"y\":90.010009765625,\"z\":359.983215332031}},\"607bc5\":{\"lock\":false,\"pos\":{\"x\":-22.621000289917,\"y\":1.30638003349304,\"z\":-84.8227005004883},\"rot\":{\"x\":0.0208084154874086,\"y\":270.001800537109,\"z\":0.0167717579752207}},\"6330da\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36378788948059,\"z\":-54.6207008361816},\"rot\":{\"x\":0.0208167098462582,\"y\":270.000457763672,\"z\":0.0167684089392424}},\"698808\":{\"lock\":false,\"pos\":{\"x\":-26.3044986724854,\"y\":1.26647329330444,\"z\":-84.8228073120117},\"rot\":{\"x\":359.979156494141,\"y\":90,\"z\":359.983215332031}},\"69f0d8\":{\"lock\":false,\"pos\":{\"x\":-22.617992401123,\"y\":1.33252048492432,\"z\":-53.4420967102051},\"rot\":{\"x\":0.0208107884973288,\"y\":269.996887207031,\"z\":0.0167698599398136}},\"6d91e6\":{\"lock\":false,\"pos\":{\"x\":-19.2978000640869,\"y\":1.29628801345825,\"z\":-76.94580078125},\"rot\":{\"x\":0.0208093039691448,\"y\":270,\"z\":0.0167701654136181}},\"7069c2\":{\"lock\":false,\"pos\":{\"x\":-16.6233425140381,\"y\":1.3569039106369,\"z\":-78.1588287353516},\"rot\":{\"x\":0.020816657692194,\"y\":270.000732421875,\"z\":0.0167684201151133}},\"709107\":{\"lock\":false,\"pos\":{\"x\":-9.4013557434082,\"y\":97.5541839599609,\"z\":7.28238010406494},\"rot\":{\"x\":359.660949707031,\"y\":269.990417480469,\"z\":359.491882324219}},\"73bbe6\":{\"lock\":false,\"pos\":{\"x\":-6.95197439193726,\"y\":97.6284790039063,\"z\":4.007155418396},\"rot\":{\"x\":359.502532958984,\"y\":180.026397705078,\"z\":0.33254799246788}},\"757716\":{\"lock\":false,\"pos\":{\"x\":-16.6233501434326,\"y\":1.35993504524231,\"z\":-67.803825378418},\"rot\":{\"x\":0.0208157859742641,\"y\":270.00048828125,\"z\":0.0167686063796282}},\"767abd\":{\"lock\":false,\"pos\":{\"x\":-11.8665,\"y\":14.5262,\"z\":4.6576},\"rot\":{\"x\":0.0801,\"y\":90,\"z\":359.9514}},\"778482\":{\"lock\":false,\"pos\":{\"x\":-19.3043,\"y\":1.3009,\"z\":-61.2375},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"779aa6\":{\"lock\":false,\"pos\":{\"x\":-16.638500213623,\"y\":1.35532283782959,\"z\":-83.5414962768555},\"rot\":{\"x\":0.0208173394203186,\"y\":269.998016357422,\"z\":0.0167670622467995}},\"7ae4a4\":{\"lock\":false,\"pos\":{\"x\":-16.6233386993408,\"y\":1.36222386360168,\"z\":-59.9842376708984},\"rot\":{\"x\":0.0208168067038059,\"y\":269.999603271484,\"z\":0.0167678035795689}},\"7c476f\":{\"lock\":false,\"pos\":{\"x\":-16.5496215820313,\"y\":1.35362160205841,\"z\":-89.4637145996094},\"rot\":{\"x\":359.983215332031,\"y\":-2.15352629311383E-05,\"z\":0.0208078436553478}},\"7d0121\":{\"lock\":false,\"pos\":{\"x\":-16.6235332489014,\"y\":1.35762691497803,\"z\":-75.6886291503906},\"rot\":{\"x\":0.0208214167505503,\"y\":269.981994628906,\"z\":0.0167614575475454}},\"808696\":{\"lock\":false,\"pos\":{\"x\":-19.3001003265381,\"y\":1.31449115276337,\"z\":-61.2332000732422},\"rot\":{\"x\":0.0208018757402897,\"y\":270.022583007813,\"z\":0.0167793910950422}},\"810d82\":{\"lock\":false,\"pos\":{\"x\":-19.2997989654541,\"y\":1.3075875043869,\"z\":-84.8181991577148},\"rot\":{\"x\":0.0208041854202747,\"y\":270.022644042969,\"z\":0.0167822297662497}},\"8a01b9\":{\"lock\":false,\"pos\":{\"x\":-19.2936000823975,\"y\":1.30989551544189,\"z\":-76.9414978027344},\"rot\":{\"x\":0.020802179351449,\"y\":270.023406982422,\"z\":0.0167793575674295}},\"90165e\":{\"lock\":false,\"pos\":{\"x\":-16.6233406066895,\"y\":1.36379873752594,\"z\":-54.6039276123047},\"rot\":{\"x\":0.0208164323121309,\"y\":270.000213623047,\"z\":0.016768142580986}},\"91d56f\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9416},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"928835\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"9c5af7\":{\"lock\":false,\"pos\":{\"x\":-26.3050975799561,\"y\":1.26877748966217,\"z\":-76.9504089355469},\"rot\":{\"x\":359.979156494141,\"y\":90,\"z\":359.983215332031}},\"9e80b9\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36414813995361,\"z\":-53.3903999328613},\"rot\":{\"x\":0.0208209455013275,\"y\":269.983947753906,\"z\":0.0167623087763786}},\"a01c9b\":{\"lock\":false,\"pos\":{\"x\":-19.2999992370605,\"y\":1.31677353382111,\"z\":-53.4357986450195},\"rot\":{\"x\":0.0208026729524136,\"y\":270.021057128906,\"z\":0.0167783722281456}},\"a52a3a\":{\"lock\":false,\"pos\":{\"x\":-16.6228427886963,\"y\":1.35726404190063,\"z\":-76.9288330078125},\"rot\":{\"x\":0.02081648260355,\"y\":270.00048828125,\"z\":0.0167677849531174}},\"aaf149\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3325,\"z\":-53.438},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"b6b36e\":{\"lock\":false,\"pos\":{\"x\":-16.6233329772949,\"y\":1.35921192169189,\"z\":-70.2738342285156},\"rot\":{\"x\":0.0208173170685768,\"y\":269.998687744141,\"z\":0.0167677458375692}},\"b95256\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"bde4a6\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36451041698456,\"z\":-52.1520004272461},\"rot\":{\"x\":0.020816758275032,\"y\":269.999816894531,\"z\":0.0167679078876972}},\"be44cf\":{\"lock\":false,\"pos\":{\"x\":-16.6268348693848,\"y\":1.35460567474365,\"z\":-86.0060272216797},\"rot\":{\"x\":0.0208113081753254,\"y\":270.017486572266,\"z\":0.0167743507772684}},\"bfb635\":{\"lock\":false,\"pos\":{\"x\":-26.3001384735107,\"y\":1.26878118515015,\"z\":-76.9456481933594},\"rot\":{\"x\":359.979156494141,\"y\":89.9997406005859,\"z\":359.983215332031}},\"c1bb90\":{\"lock\":false,\"pos\":{\"x\":-16.6234188079834,\"y\":1.35495948791504,\"z\":-84.8014526367188},\"rot\":{\"x\":0.0208165608346462,\"y\":270.000305175781,\"z\":0.0167681518942118}},\"ce1ca7\":{\"lock\":false,\"pos\":{\"x\":-9.40235042572021,\"y\":97.6034851074219,\"z\":3.199223279953},\"rot\":{\"x\":359.660064697266,\"y\":269.992919921875,\"z\":359.493011474609}},\"cf0fa6\":{\"lock\":false,\"pos\":{\"x\":-16.6233367919922,\"y\":1.36452126502991,\"z\":-52.1352310180664},\"rot\":{\"x\":0.0208160765469074,\"y\":270.000213623047,\"z\":0.0167679488658905}},\"cfcb92\":{\"lock\":false,\"pos\":{\"x\":-26.2994804382324,\"y\":1.27337789535522,\"z\":-61.2407188415527},\"rot\":{\"x\":359.979156494141,\"y\":90,\"z\":359.983245849609}},\"d6fdbf\":{\"lock\":false,\"pos\":{\"x\":-16.6399993896484,\"y\":1.36149287223816,\"z\":-62.4608993530273},\"rot\":{\"x\":0.0208269897848368,\"y\":269.965240478516,\"z\":0.0167553834617138}},\"d92dda\":{\"lock\":false,\"pos\":{\"x\":-22.6156997680664,\"y\":1.30868768692017,\"z\":-76.9459991455078},\"rot\":{\"x\":0.0167711619287729,\"y\":179.999893188477,\"z\":359.979187011719}},\"d9fb86\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.35689294338226,\"z\":-78.1755981445313},\"rot\":{\"x\":0.0208139065653086,\"y\":270.008666992188,\"z\":0.0167710781097412}},\"db82b2\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.2986,\"z\":-69.0649},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"ddb016\":{\"lock\":false,\"pos\":{\"x\":-22.6156997680664,\"y\":1.31099140644073,\"z\":-69.0755996704102},\"rot\":{\"x\":0.0167711619287729,\"y\":179.999893188477,\"z\":359.979187011719}},\"de216f\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36221301555634,\"z\":-60.0009994506836},\"rot\":{\"x\":0.0208135861903429,\"y\":270.010711669922,\"z\":0.0167716089636087}},\"e04b48\":{\"lock\":false,\"pos\":{\"x\":-16.6403007507324,\"y\":1.35761606693268,\"z\":-75.7053985595703},\"rot\":{\"x\":0.0208202619105577,\"y\":269.987365722656,\"z\":0.0167635194957256}},\"e4c465\":{\"lock\":false,\"pos\":{\"x\":-16.6260395050049,\"y\":1.35533106327057,\"z\":-83.5289001464844},\"rot\":{\"x\":0.020870653912425,\"y\":269.815185546875,\"z\":0.0167007204145193}},\"e6c6ea\":{\"lock\":false,\"pos\":{\"x\":-22.6138916015625,\"y\":1.33252322673798,\"z\":-53.4379997253418},\"rot\":{\"x\":0.0208101626485586,\"y\":269.99951171875,\"z\":0.0167707949876785}},\"eb67db\":{\"lock\":false,\"pos\":{\"x\":-22.619800567627,\"y\":1.31098866462708,\"z\":-69.0798034667969},\"rot\":{\"x\":0.0208089426159859,\"y\":270,\"z\":0.0167712215334177}},\"ee2ffa\":{\"lock\":false,\"pos\":{\"x\":-22.6136,\"y\":1.3325,\"z\":-53.4377},\"rot\":{\"x\":0.0208,\"y\":270.0079,\"z\":0.0168}},\"f94edc\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"f9adc0\":{\"lock\":false,\"pos\":{\"x\":-22.6197929382324,\"y\":1.32563877105713,\"z\":-76.9501953125},\"rot\":{\"x\":0.0208151005208492,\"y\":269.97607421875,\"z\":0.0167624745517969}},\"fed3c5\":{\"lock\":false,\"pos\":{\"x\":-16.523323059082,\"y\":1.35301625728607,\"z\":-91.5646133422852},\"rot\":{\"x\":359.983215332031,\"y\":5.10707141074818E-05,\"z\":0.0208062138408422}},\"ff3f4e\":{\"lock\":false,\"pos\":{\"x\":-22.63450050354,\"y\":1.30471432209015,\"z\":-90.496696472168},\"rot\":{\"x\":0.02080880664289,\"y\":270.000091552734,\"z\":0.0167712885886431}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Nightmare Pack - EN -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -45.87 - posY: 1.97 - posZ: -114.77 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.4 - scaleY: 0.29 - scaleZ: 1.53 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Pokemon Eldritch Edition Custom Investigators 1fb7ce.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Pokemon Eldritch Edition Custom Investigators 1fb7ce.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Pokemon Eldritch Edition Custom Investigators 1fb7ce.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Pokemon Eldritch Edition Custom Investigators 1fb7ce.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Pokemon Eldritch Edition Custom Investigators 1fb7ce.yaml deleted file mode 100644 index cb8126d80..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Pokemon Eldritch Edition Custom Investigators 1fb7ce.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1597043896926982160/40A0068DAB05395205E184765110430CAADDA2CF/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_pokemon_eldritch_edition.json -GUID: 1fb7ce -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Pokemon Eldritch Edition Custom Investigators 1fb7ce.ttslua' -LuaScriptState: "{\"ml\":{\"02dd21\":{\"lock\":false,\"pos\":{\"x\":-26.2999973297119,\"y\":1.27566242218018,\"z\":-53.4368362426758},\"rot\":{\"x\":359.979156494141,\"y\":89.9969024658203,\"z\":359.983245849609}},\"0de2c4\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.35992407798767,\"z\":-67.8206024169922},\"rot\":{\"x\":0.0208164416253567,\"y\":269.999755859375,\"z\":0.0167678892612457}},\"0f241b\":{\"lock\":false,\"pos\":{\"x\":-22.6168975830078,\"y\":1.3063827753067,\"z\":-84.8184967041016},\"rot\":{\"x\":0.016771724447608,\"y\":179.999954223633,\"z\":359.979187011719}},\"1aebf8\":{\"lock\":false,\"pos\":{\"x\":-26.3001308441162,\"y\":1.27108907699585,\"z\":-69.0606002807617},\"rot\":{\"x\":359.979156494141,\"y\":89.9996719360352,\"z\":359.983245849609}},\"226716\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.35920107364655,\"z\":-70.2906036376953},\"rot\":{\"x\":0.0208164621144533,\"y\":269.999572753906,\"z\":0.0167677756398916}},\"2a0151\":{\"lock\":false,\"pos\":{\"x\":-26.29958152771,\"y\":1.26647675037384,\"z\":-84.817985534668},\"rot\":{\"x\":359.979156494141,\"y\":90.0002746582031,\"z\":359.983215332031}},\"2d7917\":{\"lock\":false,\"pos\":{\"x\":-22.6168994903564,\"y\":1.31328415870667,\"z\":-61.2414016723633},\"rot\":{\"x\":0.016771299764514,\"y\":179.999923706055,\"z\":359.979187011719}},\"307044\":{\"lock\":false,\"pos\":{\"x\":-16.6401996612549,\"y\":1.3549485206604,\"z\":-84.8181991577148},\"rot\":{\"x\":0.0208103768527508,\"y\":270.022247314453,\"z\":0.016776017844677}},\"3ddfeb\":{\"lock\":false,\"pos\":{\"x\":-16.6394004821777,\"y\":1.35459744930267,\"z\":-86.0186004638672},\"rot\":{\"x\":0.0208164379000664,\"y\":269.999572753906,\"z\":0.0167675726115704}},\"3f0e28\":{\"lock\":false,\"pos\":{\"x\":-19.2959003448486,\"y\":1.31220149993896,\"z\":-69.0606994628906},\"rot\":{\"x\":0.0208025686442852,\"y\":270.020874023438,\"z\":0.0167785324156284}},\"41bfc7\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.3618528842926,\"z\":-61.2309989929199},\"rot\":{\"x\":0.0208135135471821,\"y\":270.010925292969,\"z\":0.0167720373719931}},\"4ad11b\":{\"lock\":false,\"pos\":{\"x\":-16.6396007537842,\"y\":1.357253074646,\"z\":-76.9456024169922},\"rot\":{\"x\":0.0208168551325798,\"y\":269.999694824219,\"z\":0.0167679917067289}},\"4d0a50\":{\"lock\":false,\"pos\":{\"x\":-22.613899230957,\"y\":1.31556940078735,\"z\":-53.4380989074707},\"rot\":{\"x\":0.0167713351547718,\"y\":179.999938964844,\"z\":359.979187011719}},\"543164\":{\"lock\":false,\"pos\":{\"x\":-16.6403007507324,\"y\":1.35956108570099,\"z\":-69.060302734375},\"rot\":{\"x\":0.0208166968077421,\"y\":269.999481201172,\"z\":0.0167676880955696}},\"6330da\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36378788948059,\"z\":-54.6207008361816},\"rot\":{\"x\":0.0208167098462582,\"y\":270.000457763672,\"z\":0.0167684089392424}},\"779aa6\":{\"lock\":false,\"pos\":{\"x\":-16.638500213623,\"y\":1.35532283782959,\"z\":-83.5414962768555},\"rot\":{\"x\":0.0208173394203186,\"y\":269.998016357422,\"z\":0.0167670622467995}},\"808696\":{\"lock\":false,\"pos\":{\"x\":-19.3001003265381,\"y\":1.31449115276337,\"z\":-61.2332000732422},\"rot\":{\"x\":0.0208018757402897,\"y\":270.022583007813,\"z\":0.0167793910950422}},\"810d82\":{\"lock\":false,\"pos\":{\"x\":-19.2997989654541,\"y\":1.3075875043869,\"z\":-84.8181991577148},\"rot\":{\"x\":0.0208041854202747,\"y\":270.022644042969,\"z\":0.0167822297662497}},\"8a01b9\":{\"lock\":false,\"pos\":{\"x\":-19.2936000823975,\"y\":1.30989551544189,\"z\":-76.9414978027344},\"rot\":{\"x\":0.020802179351449,\"y\":270.023406982422,\"z\":0.0167793575674295}},\"9e80b9\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36414813995361,\"z\":-53.3903999328613},\"rot\":{\"x\":0.0208209455013275,\"y\":269.983947753906,\"z\":0.0167623087763786}},\"a01c9b\":{\"lock\":false,\"pos\":{\"x\":-19.2999992370605,\"y\":1.31677353382111,\"z\":-53.4357986450195},\"rot\":{\"x\":0.0208026729524136,\"y\":270.021057128906,\"z\":0.0167783722281456}},\"bde4a6\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36451041698456,\"z\":-52.1520004272461},\"rot\":{\"x\":0.020816758275032,\"y\":269.999816894531,\"z\":0.0167679078876972}},\"bfb635\":{\"lock\":false,\"pos\":{\"x\":-26.3001384735107,\"y\":1.26878118515015,\"z\":-76.9456481933594},\"rot\":{\"x\":359.979156494141,\"y\":89.9997406005859,\"z\":359.983215332031}},\"cfcb92\":{\"lock\":false,\"pos\":{\"x\":-26.2994804382324,\"y\":1.27337789535522,\"z\":-61.2407188415527},\"rot\":{\"x\":359.979156494141,\"y\":90,\"z\":359.983245849609}},\"d6fdbf\":{\"lock\":false,\"pos\":{\"x\":-16.6399993896484,\"y\":1.36149287223816,\"z\":-62.4608993530273},\"rot\":{\"x\":0.0208269897848368,\"y\":269.965240478516,\"z\":0.0167553834617138}},\"d92dda\":{\"lock\":false,\"pos\":{\"x\":-22.6156997680664,\"y\":1.30868768692017,\"z\":-76.9459991455078},\"rot\":{\"x\":0.0167711619287729,\"y\":179.999893188477,\"z\":359.979187011719}},\"d9fb86\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.35689294338226,\"z\":-78.1755981445313},\"rot\":{\"x\":0.0208139065653086,\"y\":270.008666992188,\"z\":0.0167710781097412}},\"ddb016\":{\"lock\":false,\"pos\":{\"x\":-22.6156997680664,\"y\":1.31099140644073,\"z\":-69.0755996704102},\"rot\":{\"x\":0.0167711619287729,\"y\":179.999893188477,\"z\":359.979187011719}},\"de216f\":{\"lock\":false,\"pos\":{\"x\":-16.640100479126,\"y\":1.36221301555634,\"z\":-60.0009994506836},\"rot\":{\"x\":0.0208135861903429,\"y\":270.010711669922,\"z\":0.0167716089636087}},\"e04b48\":{\"lock\":false,\"pos\":{\"x\":-16.6403007507324,\"y\":1.35761606693268,\"z\":-75.7053985595703},\"rot\":{\"x\":0.0208202619105577,\"y\":269.987365722656,\"z\":0.0167635194957256}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: 'Pokemon: Eldritch Edition Custom Investigators' -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.96 - posZ: 81.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Rabbit Hole Expansion b7ff06.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Rabbit Hole Expansion b7ff06.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Rabbit Hole Expansion b7ff06.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Rabbit Hole Expansion b7ff06.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Rabbit Hole Expansion b7ff06.yaml deleted file mode 100644 index 29ca05799..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Rabbit Hole Expansion b7ff06.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1862800022614300553/046FEA88FB8D4DB6BE0AC9898149058EF32BFD0A/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: Mint Tea Fan -DragSelectable: true -GMNotes: fancreations/investigators_rabbit_hole.json -GUID: b7ff06 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Rabbit Hole Expansion b7ff06.ttslua' -LuaScriptState: "{\"ml\":{\"00dd71\":{\"lock\":false,\"pos\":{\"x\":-26.2173,\"y\":1.3086,\"z\":-72.6577},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"02c883\":{\"lock\":false,\"pos\":{\"x\":32.9852867126465,\"y\":1.29030799865723,\"z\":-84.2082672119141},\"rot\":{\"x\":0.0208085179328918,\"y\":269.999694824219,\"z\":0.0167710538953543}},\"02fc01\":{\"lock\":false,\"pos\":{\"x\":40.2900657653809,\"y\":1.29565036296844,\"z\":-75.0199737548828},\"rot\":{\"x\":0.0208079405128956,\"y\":270.002380371094,\"z\":0.016771974042058}},\"04b54a\":{\"lock\":false,\"pos\":{\"x\":32.9853057861328,\"y\":1.28963470458984,\"z\":-86.5082473754883},\"rot\":{\"x\":0.0208087041974068,\"y\":269.999176025391,\"z\":0.0167708452790976}},\"099880\":{\"lock\":false,\"pos\":{\"x\":52.9442138671875,\"y\":1.30697846412659,\"z\":-52.020336151123},\"rot\":{\"x\":0.0208041202276945,\"y\":270.0146484375,\"z\":0.0167763698846102}},\"0a5bc6\":{\"lock\":false,\"pos\":{\"x\":32.9852905273438,\"y\":1.30107951164246,\"z\":-47.4095573425293},\"rot\":{\"x\":0.0208172313868999,\"y\":269.969665527344,\"z\":0.0167601872235537}},\"0d6af3\":{\"lock\":false,\"pos\":{\"x\":32.9853057861328,\"y\":1.29300093650818,\"z\":-75.0083694458008},\"rot\":{\"x\":0.0208143349736929,\"y\":269.979888916016,\"z\":0.0167639516294003}},\"10020b\":{\"lock\":false,\"pos\":{\"x\":40.2900772094727,\"y\":1.30238282680511,\"z\":-52.0199775695801},\"rot\":{\"x\":0.0208036676049232,\"y\":270.016662597656,\"z\":0.0167774055153131}},\"19633b\":{\"lock\":false,\"pos\":{\"x\":58.0997085571289,\"y\":1.29873728752136,\"z\":-86.5708847045898},\"rot\":{\"x\":0.0208085551857948,\"y\":269.999694824219,\"z\":0.0167710352689028}},\"1dae6f\":{\"lock\":false,\"pos\":{\"x\":49.278491973877,\"y\":1.29555189609528,\"z\":-86.5086517333984},\"rot\":{\"x\":0.0208086501806974,\"y\":269.999603271484,\"z\":0.0167709235101938}},\"1f94f7\":{\"lock\":false,\"pos\":{\"x\":52.9442329406738,\"y\":1.30832493305206,\"z\":-47.4203338623047},\"rot\":{\"x\":0.020806897431612,\"y\":270.005187988281,\"z\":0.016773022711277}},\"23c1b4\":{\"lock\":false,\"pos\":{\"x\":-16.8891,\"y\":1.349,\"z\":-70.5804},\"rot\":{\"x\":0.0208,\"y\":269.9834,\"z\":0.0168}},\"267a1b\":{\"lock\":false,\"pos\":{\"x\":52.9442253112793,\"y\":1.30159246921539,\"z\":-70.4201965332031},\"rot\":{\"x\":0.0208076927810907,\"y\":270.002288818359,\"z\":0.0167718902230263}},\"268843\":{\"lock\":false,\"pos\":{\"x\":25.6118,\"y\":1.4599,\"z\":-36.9581},\"rot\":{\"x\":359.9201,\"y\":270.0034,\"z\":0.0169}},\"269ab3\":{\"lock\":false,\"pos\":{\"x\":29.3400764465332,\"y\":1.29369676113129,\"z\":-68.1084594726563},\"rot\":{\"x\":0.020807845517993,\"y\":270.002258300781,\"z\":0.016771798953414}},\"2be496\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.30161106586456,\"z\":-65.8086547851563},\"rot\":{\"x\":0.0208078343421221,\"y\":270.002349853516,\"z\":0.0167720001190901}},\"2cb6e7\":{\"lock\":false,\"pos\":{\"x\":32.969612121582,\"y\":1.28895890712738,\"z\":-88.7976989746094},\"rot\":{\"x\":0.0208085589110851,\"y\":270,\"z\":0.0167711675167084}},\"2f3aba\":{\"lock\":false,\"pos\":{\"x\":32.9852867126465,\"y\":1.2923276424408,\"z\":-77.3083038330078},\"rot\":{\"x\":0.0208077318966389,\"y\":270.002258300781,\"z\":0.0167720075696707}},\"337650\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.29622519016266,\"z\":-84.2086486816406},\"rot\":{\"x\":0.0208088215440512,\"y\":269.999420166016,\"z\":0.0167708713561296}},\"33eb6e\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.30632376670837,\"z\":-49.7088050842285},\"rot\":{\"x\":0.0208075325936079,\"y\":270.003967285156,\"z\":0.0167726073414087}},\"340ad1\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.30699694156647,\"z\":-47.4087791442871},\"rot\":{\"x\":0.020807271823287,\"y\":270.003662109375,\"z\":0.0167726241052151}},\"349045\":{\"lock\":false,\"pos\":{\"x\":29.3400764465332,\"y\":1.29100382328033,\"z\":-77.3084869384766},\"rot\":{\"x\":0.0208077188581228,\"y\":270.00244140625,\"z\":0.0167720038443804}},\"3752df\":{\"lock\":false,\"pos\":{\"x\":52.9442253112793,\"y\":1.29889953136444,\"z\":-79.620231628418},\"rot\":{\"x\":0.0208082459867001,\"y\":270.001159667969,\"z\":0.016771487891674}},\"395a86\":{\"lock\":false,\"pos\":{\"x\":-26.2173,\"y\":1.308,\"z\":-74.9452},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"3d228c\":{\"lock\":false,\"pos\":{\"x\":40.290111541748,\"y\":1.2922842502594,\"z\":-86.519889831543},\"rot\":{\"x\":0.0208086185157299,\"y\":269.999420166016,\"z\":0.0167709197849035}},\"3d5eba\":{\"lock\":false,\"pos\":{\"x\":32.9853057861328,\"y\":1.29434740543365,\"z\":-70.4082565307617},\"rot\":{\"x\":0.0208110846579075,\"y\":269.991394042969,\"z\":0.0167681761085987}},\"3e7287\":{\"lock\":false,\"pos\":{\"x\":32.9853057861328,\"y\":1.29502069950104,\"z\":-68.1082534790039},\"rot\":{\"x\":0.020812900736928,\"y\":269.984924316406,\"z\":0.0167657155543566}},\"3f0180\":{\"lock\":false,\"pos\":{\"x\":29.3400592803955,\"y\":1.29908239841461,\"z\":-49.7096290588379},\"rot\":{\"x\":0.0208098068833351,\"y\":269.99609375,\"z\":0.0167696662247181}},\"412cf1\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.30295753479004,\"z\":-61.2087898254395},\"rot\":{\"x\":0.0208124928176403,\"y\":269.986267089844,\"z\":0.0167661942541599}},\"41ee84\":{\"lock\":false,\"pos\":{\"x\":36.6243591308594,\"y\":1.29297626018524,\"z\":-79.608268737793},\"rot\":{\"x\":0.0208076797425747,\"y\":270.002807617188,\"z\":0.0167722273617983}},\"43ad41\":{\"lock\":false,\"pos\":{\"x\":52.9441375732422,\"y\":1.29755306243896,\"z\":-84.2202224731445},\"rot\":{\"x\":0.0208086110651493,\"y\":269.999877929688,\"z\":0.016771350055933}},\"43c2c3\":{\"lock\":false,\"pos\":{\"x\":52.9442291259766,\"y\":1.30293905735016,\"z\":-65.8201904296875},\"rot\":{\"x\":0.0208077672868967,\"y\":270.00244140625,\"z\":0.0167718306183815}},\"459f81\":{\"lock\":false,\"pos\":{\"x\":45.6394691467285,\"y\":1.29759645462036,\"z\":-75.0087127685547},\"rot\":{\"x\":0.0208079051226377,\"y\":270.002746582031,\"z\":0.0167721528559923}},\"4634ae\":{\"lock\":false,\"pos\":{\"x\":40.2742729187012,\"y\":1.29160833358765,\"z\":-88.8093566894531},\"rot\":{\"x\":0.0208088494837284,\"y\":269.999267578125,\"z\":0.0167710669338703}},\"465927\":{\"lock\":false,\"pos\":{\"x\":49.2785148620605,\"y\":1.30363082885742,\"z\":-58.9087753295898},\"rot\":{\"x\":0.0208077151328325,\"y\":270.002380371094,\"z\":0.0167719814926386}},\"473c08\":{\"lock\":false,\"pos\":{\"x\":52.9442253112793,\"y\":1.29957282543182,\"z\":-77.3202285766602},\"rot\":{\"x\":0.0208078902214766,\"y\":270.002258300781,\"z\":0.0167719908058643}},\"48009b\":{\"lock\":false,\"pos\":{\"x\":45.6394691467285,\"y\":1.29423034191132,\"z\":-86.5085906982422},\"rot\":{\"x\":0.0208089146763086,\"y\":269.999267578125,\"z\":0.0167709197849035}},\"487284\":{\"lock\":false,\"pos\":{\"x\":36.6086502075195,\"y\":1.29028046131134,\"z\":-88.7977523803711},\"rot\":{\"x\":0.0208086613565683,\"y\":269.9990234375,\"z\":0.0167708974331617}},\"4b6428\":{\"lock\":false,\"pos\":{\"x\":58.0996742248535,\"y\":1.30479645729065,\"z\":-65.8708190917969},\"rot\":{\"x\":0.0208076778799295,\"y\":270.002380371094,\"z\":0.0167720541357994}},\"4c0584\":{\"lock\":false,\"pos\":{\"x\":33.201171875,\"y\":1.28776490688324,\"z\":-93.1638031005859},\"rot\":{\"x\":0.0208169016987085,\"y\":269.971801757813,\"z\":0.0167610067874193}},\"4d182c\":{\"lock\":false,\"pos\":{\"x\":58.0995712280273,\"y\":1.29941058158875,\"z\":-84.270866394043},\"rot\":{\"x\":0.0208090059459209,\"y\":269.999145507813,\"z\":0.0167708732187748}},\"4d5596\":{\"lock\":false,\"pos\":{\"x\":58.0996742248535,\"y\":1.3021035194397,\"z\":-75.0709533691406},\"rot\":{\"x\":0.0208080522716045,\"y\":270.001251220703,\"z\":0.0167717095464468}},\"4f1c7e\":{\"lock\":false,\"pos\":{\"x\":32.9853057861328,\"y\":1.29569387435913,\"z\":-65.8082504272461},\"rot\":{\"x\":0.0208077598363161,\"y\":270.002380371094,\"z\":0.0167720690369606}},\"5cbb02\":{\"lock\":false,\"pos\":{\"x\":58.0996894836426,\"y\":1.3074893951416,\"z\":-56.6709594726563},\"rot\":{\"x\":0.0208077803254128,\"y\":270.002288818359,\"z\":0.016772024333477}},\"5ccbc7\":{\"lock\":false,\"pos\":{\"x\":32.9852867126465,\"y\":1.29771363735199,\"z\":-58.9083366394043},\"rot\":{\"x\":0.0208077672868967,\"y\":270.002349853516,\"z\":0.0167721454054117}},\"5db5fb\":{\"lock\":false,\"pos\":{\"x\":58.099681854248,\"y\":1.31018245220184,\"z\":-47.4709625244141},\"rot\":{\"x\":0.0208116956055164,\"y\":269.989166259766,\"z\":0.0167670231312513}},\"5ff300\":{\"lock\":false,\"pos\":{\"x\":45.6394691467285,\"y\":1.29490351676941,\"z\":-84.2085876464844},\"rot\":{\"x\":0.0208088960498571,\"y\":269.999053955078,\"z\":0.0167708117514849}},\"639ceb\":{\"lock\":false,\"pos\":{\"x\":36.624340057373,\"y\":1.29364931583405,\"z\":-77.3083343505859},\"rot\":{\"x\":0.0208080504089594,\"y\":270.001586914063,\"z\":0.0167716555297375}},\"68fe73\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.30093789100647,\"z\":-68.1086578369141},\"rot\":{\"x\":0.0208076797425747,\"y\":270.002410888672,\"z\":0.0167721286416054}},\"6bbf22\":{\"lock\":false,\"pos\":{\"x\":40.2900543212891,\"y\":1.2976701259613,\"z\":-68.1198654174805},\"rot\":{\"x\":0.0208079926669598,\"y\":270.002349853516,\"z\":0.0167719889432192}},\"70235c\":{\"lock\":false,\"pos\":{\"x\":29.3400764465332,\"y\":1.29840910434723,\"z\":-52.0096168518066},\"rot\":{\"x\":0.0208064876496792,\"y\":270.007263183594,\"z\":0.0167736392468214}},\"75f24b\":{\"lock\":false,\"pos\":{\"x\":58.099681854248,\"y\":1.30950915813446,\"z\":-49.7709503173828},\"rot\":{\"x\":0.0208070166409016,\"y\":270.004638671875,\"z\":0.0167729146778584}},\"788f24\":{\"lock\":false,\"pos\":{\"x\":40.2899627685547,\"y\":1.29295754432678,\"z\":-84.2198944091797},\"rot\":{\"x\":0.0208088979125023,\"y\":269.998901367188,\"z\":0.016770713031292}},\"7cb35b\":{\"lock\":false,\"pos\":{\"x\":40.2900505065918,\"y\":1.29430389404297,\"z\":-79.6199035644531},\"rot\":{\"x\":0.0208076313138008,\"y\":270.002807617188,\"z\":0.0167723186314106}},\"7d5da5\":{\"lock\":false,\"pos\":{\"x\":36.6243591308594,\"y\":1.29432249069214,\"z\":-75.0083999633789},\"rot\":{\"x\":0.0208078008145094,\"y\":270.00244140625,\"z\":0.0167720336467028}},\"7ea4af\":{\"lock\":false,\"pos\":{\"x\":32.9853057861328,\"y\":1.30040621757507,\"z\":-49.709545135498},\"rot\":{\"x\":0.0208124816417694,\"y\":269.987060546875,\"z\":0.016766419634223}},\"7f2a9e\":{\"lock\":false,\"pos\":{\"x\":32.9852867126465,\"y\":1.29973292350769,\"z\":-52.0095558166504},\"rot\":{\"x\":0.0208073686808348,\"y\":270.004211425781,\"z\":0.0167726278305054}},\"7fd726\":{\"lock\":false,\"pos\":{\"x\":52.9442329406738,\"y\":1.30495870113373,\"z\":-58.9203338623047},\"rot\":{\"x\":0.0208077188581228,\"y\":270.002380371094,\"z\":0.0167720317840576}},\"83824b\":{\"lock\":false,\"pos\":{\"x\":-26.2173,\"y\":1.3093,\"z\":-70.3702},\"rot\":{\"x\":0.0208,\"y\":270.0191,\"z\":0.0168}},\"886a80\":{\"lock\":false,\"pos\":{\"x\":40.2900695800781,\"y\":1.29497718811035,\"z\":-77.3198776245117},\"rot\":{\"x\":0.0208077095448971,\"y\":270.002380371094,\"z\":0.0167721137404442}},\"8b4374\":{\"lock\":false,\"pos\":{\"x\":36.6243591308594,\"y\":1.2956690788269,\"z\":-70.4082870483398},\"rot\":{\"x\":0.0208064690232277,\"y\":270.007598876953,\"z\":0.0167738925665617}},\"8b8aa1\":{\"lock\":false,\"pos\":{\"x\":29.3400764465332,\"y\":1.2930234670639,\"z\":-70.4084625244141},\"rot\":{\"x\":0.0208078846335411,\"y\":270.002380371094,\"z\":0.0167720504105091}},\"911810\":{\"lock\":false,\"pos\":{\"x\":52.9284477233887,\"y\":1.29620397090912,\"z\":-88.809684753418},\"rot\":{\"x\":0.0208090245723724,\"y\":269.998962402344,\"z\":0.0167707987129688}},\"97fcaf\":{\"lock\":false,\"pos\":{\"x\":40.2900695800781,\"y\":1.29699695110321,\"z\":-70.4198455810547},\"rot\":{\"x\":0.0208094101399183,\"y\":269.996856689453,\"z\":0.0167702175676823}},\"98fdce\":{\"lock\":false,\"pos\":{\"x\":40.2901344299316,\"y\":1.30373060703278,\"z\":-47.415901184082},\"rot\":{\"x\":0.0208132360130548,\"y\":269.983825683594,\"z\":0.0167652443051338}},\"9c599b\":{\"lock\":false,\"pos\":{\"x\":29.6464405059814,\"y\":1.28647398948669,\"z\":-93.163818359375},\"rot\":{\"x\":0.0208141412585974,\"y\":269.98095703125,\"z\":0.0167641583830118}},\"9d3cb8\":{\"lock\":false,\"pos\":{\"x\":40.2900276184082,\"y\":1.30305814743042,\"z\":-49.7128028869629},\"rot\":{\"x\":0.020798534154892,\"y\":270.034362792969,\"z\":0.0167835876345634}},\"9d50cf\":{\"lock\":false,\"pos\":{\"x\":36.6243591308594,\"y\":1.296342253685,\"z\":-68.108283996582},\"rot\":{\"x\":0.0208082608878613,\"y\":270.000854492188,\"z\":0.0167714674025774}},\"9f71b2\":{\"lock\":false,\"pos\":{\"x\":49.2785148620605,\"y\":1.30565047264099,\"z\":-52.0087585449219},\"rot\":{\"x\":0.020803464576602,\"y\":270.017059326172,\"z\":0.016777329146862}},\"9facb8\":{\"lock\":false,\"pos\":{\"x\":49.2785148620605,\"y\":1.29757165908813,\"z\":-79.6086196899414},\"rot\":{\"x\":0.0208079144358635,\"y\":270.00244140625,\"z\":0.0167720317840576}},\"9feaf2\":{\"lock\":false,\"pos\":{\"x\":29.3400802612305,\"y\":1.29975557327271,\"z\":-47.4096183776855},\"rot\":{\"x\":0.0208071246743202,\"y\":270.004577636719,\"z\":0.0167729370296001}},\"a06986\":{\"lock\":false,\"pos\":{\"x\":-16.8891,\"y\":1.3493,\"z\":-69.5747},\"rot\":{\"x\":0.0208,\"y\":269.989,\"z\":0.0168}},\"a46c2b\":{\"lock\":false,\"pos\":{\"x\":29.3400764465332,\"y\":1.29706299304962,\"z\":-56.6083946228027},\"rot\":{\"x\":0.0208078809082508,\"y\":270.002349853516,\"z\":0.0167719107121229}},\"a6306e\":{\"lock\":false,\"pos\":{\"x\":49.2785148620605,\"y\":1.30430400371552,\"z\":-56.608772277832},\"rot\":{\"x\":0.0208077989518642,\"y\":270.002380371094,\"z\":0.0167720001190901}},\"a8db40\":{\"lock\":false,\"pos\":{\"x\":45.6394691467285,\"y\":1.30298244953156,\"z\":-56.6086692810059},\"rot\":{\"x\":0.0208078250288963,\"y\":270.002349853516,\"z\":0.0167721584439278}},\"a9a0c8\":{\"lock\":false,\"pos\":{\"x\":49.2628059387207,\"y\":1.29487609863281,\"z\":-88.7981033325195},\"rot\":{\"x\":0.0208089780062437,\"y\":269.998779296875,\"z\":0.0167707093060017}},\"ad0691\":{\"lock\":false,\"pos\":{\"x\":40.2900619506836,\"y\":1.30103635787964,\"z\":-56.6199951171875},\"rot\":{\"x\":0.0208078436553478,\"y\":270.002380371094,\"z\":0.0167722105979919}},\"ad7249\":{\"lock\":false,\"pos\":{\"x\":-26.2173,\"y\":1.31,\"z\":-68.0826},\"rot\":{\"x\":0.0208,\"y\":269.9904,\"z\":0.0168}},\"ad95fd\":{\"lock\":false,\"pos\":{\"x\":36.6243591308594,\"y\":1.3017281293869,\"z\":-49.7084465026855},\"rot\":{\"x\":0.0208177231252193,\"y\":269.96923828125,\"z\":0.0167600549757481}},\"b06863\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":269.9965,\"z\":0.0168}},\"b0dd94\":{\"lock\":false,\"pos\":{\"x\":40.2900695800781,\"y\":1.29968988895416,\"z\":-61.2199897766113},\"rot\":{\"x\":0.0208128429949284,\"y\":269.986083984375,\"z\":0.0167661905288696}},\"b221a7\":{\"lock\":false,\"pos\":{\"x\":29.3400592803955,\"y\":1.29436993598938,\"z\":-65.808479309082},\"rot\":{\"x\":0.0208077821880579,\"y\":270.002380371094,\"z\":0.0167720317840576}},\"b3d984\":{\"lock\":false,\"pos\":{\"x\":36.624340057373,\"y\":1.30105495452881,\"z\":-52.0084228515625},\"rot\":{\"x\":0.0208045300096273,\"y\":270.013397216797,\"z\":0.0167760979384184}},\"b47adf\":{\"lock\":false,\"pos\":{\"x\":58.0996742248535,\"y\":1.30412328243256,\"z\":-68.1708221435547},\"rot\":{\"x\":0.0208166688680649,\"y\":269.972290039063,\"z\":0.0167610011994839}},\"b826dd\":{\"lock\":false,\"pos\":{\"x\":49.2785148620605,\"y\":1.30026459693909,\"z\":-70.4086456298828},\"rot\":{\"x\":0.020807733759284,\"y\":270.002532958984,\"z\":0.0167719628661871}},\"bae0d4\":{\"lock\":false,\"pos\":{\"x\":36.6243591308594,\"y\":1.29701554775238,\"z\":-65.8082809448242},\"rot\":{\"x\":0.020808219909668,\"y\":270.000854492188,\"z\":0.0167713537812233}},\"bb7677\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.311,\"z\":-69.0756},\"rot\":{\"x\":0.0208,\"y\":270.0023,\"z\":0.0168}},\"bf9817\":{\"lock\":false,\"pos\":{\"x\":36.624340057373,\"y\":1.29903519153595,\"z\":-58.9084396362305},\"rot\":{\"x\":0.0208145510405302,\"y\":269.979431152344,\"z\":0.0167637746781111}},\"c24c0f\":{\"lock\":false,\"pos\":{\"x\":26.107120513916,\"y\":1.28520059585571,\"z\":-93.1228866577148},\"rot\":{\"x\":0.020803477615118,\"y\":270.016937255859,\"z\":0.0167773775756359}},\"c27ee4\":{\"lock\":false,\"pos\":{\"x\":52.9442367553711,\"y\":1.30563199520111,\"z\":-56.6203308105469},\"rot\":{\"x\":0.0208133868873119,\"y\":269.9833984375,\"z\":0.0167651195079088}},\"c6629b\":{\"lock\":false,\"pos\":{\"x\":52.944221496582,\"y\":1.30024600028992,\"z\":-75.0203247070313},\"rot\":{\"x\":0.0208077225834131,\"y\":270.002410888672,\"z\":0.0167720802128315}},\"c9bc29\":{\"lock\":false,\"pos\":{\"x\":-16.8891,\"y\":1.3496,\"z\":-68.5691},\"rot\":{\"x\":0.0208,\"y\":270.0074,\"z\":0.0168}},\"cc9f3e\":{\"lock\":false,\"pos\":{\"x\":52.944206237793,\"y\":1.30428540706635,\"z\":-61.2203483581543},\"rot\":{\"x\":0.0208137333393097,\"y\":269.982269287109,\"z\":0.0167646743357182}},\"ccd2d7\":{\"lock\":false,\"pos\":{\"x\":29.3400802612305,\"y\":1.29638969898224,\"z\":-58.9083938598633},\"rot\":{\"x\":0.0208111088722944,\"y\":269.991333007813,\"z\":0.0167681202292442}},\"d5060d\":{\"lock\":false,\"pos\":{\"x\":32.9852867126465,\"y\":1.2916544675827,\"z\":-79.6082611083984},\"rot\":{\"x\":0.0208071451634169,\"y\":270.004455566406,\"z\":0.016772773116827}},\"d5a551\":{\"lock\":false,\"pos\":{\"x\":58.0996742248535,\"y\":1.3014303445816,\"z\":-77.3708572387695},\"rot\":{\"x\":0.0208079069852829,\"y\":270.002288818359,\"z\":0.0167720541357994}},\"d7edae\":{\"lock\":false,\"pos\":{\"x\":41.3516998291016,\"y\":1.43921434879303,\"z\":-32.6269416809082},\"rot\":{\"x\":359.920135498047,\"y\":270.003204345703,\"z\":0.0168775394558907}},\"d92dde\":{\"lock\":false,\"pos\":{\"x\":40.2900581359863,\"y\":1.30036306381226,\"z\":-58.9199981689453},\"rot\":{\"x\":0.0208116788417101,\"y\":269.988830566406,\"z\":0.0167670734226704}},\"dc8ab9\":{\"lock\":false,\"pos\":{\"x\":29.3400592803955,\"y\":1.29167699813843,\"z\":-75.0085983276367},\"rot\":{\"x\":0.0208077263087034,\"y\":270.002380371094,\"z\":0.0167721174657345}},\"dd5a8d\":{\"lock\":false,\"pos\":{\"x\":29.3400764465332,\"y\":1.29571652412415,\"z\":-61.2084007263184},\"rot\":{\"x\":0.0208144672214985,\"y\":269.979370117188,\"z\":0.0167636964470148}},\"e10da6\":{\"lock\":false,\"pos\":{\"x\":36.624340057373,\"y\":1.29095637798309,\"z\":-86.50830078125},\"rot\":{\"x\":0.0208088885992765,\"y\":269.998687744141,\"z\":0.016770800575614}},\"e338d7\":{\"lock\":false,\"pos\":{\"x\":-26.2173,\"y\":1.3113,\"z\":-63.5077},\"rot\":{\"x\":0.0208,\"y\":270.0022,\"z\":0.0168}},\"e4fc98\":{\"lock\":false,\"pos\":{\"x\":32.9853057861328,\"y\":1.29704034328461,\"z\":-61.2083282470703},\"rot\":{\"x\":0.0208131168037653,\"y\":269.984497070313,\"z\":0.016765546053648}},\"e5bd5d\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.29891812801361,\"z\":-75.0087738037109},\"rot\":{\"x\":0.0208078045397997,\"y\":270.002319335938,\"z\":0.0167719461023808}},\"e618ab\":{\"lock\":false,\"pos\":{\"x\":36.624340057373,\"y\":1.29162955284119,\"z\":-84.2082977294922},\"rot\":{\"x\":0.0208089463412762,\"y\":269.998657226563,\"z\":0.0167708601802588}},\"e7c879\":{\"lock\":false,\"pos\":{\"x\":49.2784957885742,\"y\":1.29824483394623,\"z\":-77.3086853027344},\"rot\":{\"x\":0.0208076257258654,\"y\":270.00244140625,\"z\":0.0167721770703793}},\"e910b0\":{\"lock\":false,\"pos\":{\"x\":-16.8891,\"y\":1.3499,\"z\":-67.5635},\"rot\":{\"x\":0.0208,\"y\":269.9978,\"z\":0.0168}},\"e969d6\":{\"lock\":false,\"pos\":{\"x\":36.624340057373,\"y\":1.29836189746857,\"z\":-61.2084426879883},\"rot\":{\"x\":0.0208120793104172,\"y\":269.987731933594,\"z\":0.0167666524648666}},\"ebc809\":{\"lock\":false,\"pos\":{\"x\":-26.2173,\"y\":1.3106,\"z\":-65.7951},\"rot\":{\"x\":0.0208,\"y\":269.9984,\"z\":0.0168}},\"ed565f\":{\"lock\":false,\"pos\":{\"x\":52.9442481994629,\"y\":1.29687976837158,\"z\":-86.520263671875},\"rot\":{\"x\":0.0208090785890818,\"y\":269.998687744141,\"z\":0.0167706850916147}},\"ef4d67\":{\"lock\":false,\"pos\":{\"x\":32.9852867126465,\"y\":1.29838681221008,\"z\":-56.6083335876465},\"rot\":{\"x\":0.0208145845681429,\"y\":269.979370117188,\"z\":0.0167634636163712}},\"f328e1\":{\"lock\":false,\"pos\":{\"x\":52.9442367553711,\"y\":1.30765187740326,\"z\":-49.7196083068848},\"rot\":{\"x\":0.0208082105964422,\"y\":270.001281738281,\"z\":0.0167715921998024}},\"f883a7\":{\"lock\":false,\"pos\":{\"x\":40.2900733947754,\"y\":1.29834342002869,\"z\":-65.8198394775391},\"rot\":{\"x\":0.0208077020943165,\"y\":270.002410888672,\"z\":0.0167720913887024}},\"f8e834\":{\"lock\":false,\"pos\":{\"x\":36.624340057373,\"y\":1.29970848560333,\"z\":-56.6084365844727},\"rot\":{\"x\":0.0208153408020735,\"y\":269.976440429688,\"z\":0.016762575134635}},\"f9302c\":{\"lock\":false,\"pos\":{\"x\":40.2985038757324,\"y\":1.2903425693512,\"z\":-93.1637954711914},\"rot\":{\"x\":0.0208130273967981,\"y\":269.984436035156,\"z\":0.0167654659599066}},\"f93232\":{\"lock\":false,\"pos\":{\"x\":29.3400592803955,\"y\":1.28898406028748,\"z\":-84.2084732055664},\"rot\":{\"x\":0.0208086147904396,\"y\":269.999938964844,\"z\":0.0167710352689028}},\"fa6c1a\":{\"lock\":false,\"pos\":{\"x\":36.7542610168457,\"y\":1.28905892372131,\"z\":-93.1517944335938},\"rot\":{\"x\":0.0208184327930212,\"y\":269.96630859375,\"z\":0.0167590919882059}},\"faed96\":{\"lock\":false,\"pos\":{\"x\":36.6243591308594,\"y\":1.30240142345428,\"z\":-47.4084205627441},\"rot\":{\"x\":0.0208073873072863,\"y\":270.004211425781,\"z\":0.0167727507650852}},\"fde4dd\":{\"lock\":false,\"pos\":{\"x\":52.9442291259766,\"y\":1.30226576328278,\"z\":-68.1201934814453},\"rot\":{\"x\":0.0208078939467669,\"y\":270.002471923828,\"z\":0.0167719721794128}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Rabbit Hole Expansion -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -44.31 - posY: 1.97 - posZ: -114.79 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Signature Replacements b06fd9.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Signature Replacements b06fd9.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Signature Replacements b06fd9.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Signature Replacements b06fd9.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Signature Replacements b06fd9.yaml deleted file mode 100644 index 9e359165e..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Signature Replacements b06fd9.yaml +++ /dev/null @@ -1,72 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - b: 0.34902 - g: 0.34902 - r: 0.35294 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1754686449895581106/83D855A76FC7568415189A03882317685F6B55EE/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By Mint Tea Fan -DragSelectable: true -GMNotes: fancreations/investigators_replacements.json -GUID: b06fd9 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Signature Replacements b06fd9.ttslua' -LuaScriptState: "{\"ml\":{\"098d30\":{\"lock\":false,\"pos\":{\"x\":6.9713,\"y\":1.3044,\"z\":-81.9249},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"62d0d7\":{\"lock\":false,\"pos\":{\"x\":6.9713,\"y\":1.3104,\"z\":-61.2247},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"7da10d\":{\"lock\":false,\"pos\":{\"x\":6.9713,\"y\":1.3064,\"z\":-75.0248},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"9ad488\":{\"lock\":false,\"pos\":{\"x\":6.9713,\"y\":1.3084,\"z\":-68.1247},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"a93c12\":{\"lock\":false,\"pos\":{\"x\":17.4327,\"y\":1.3008,\"z\":-54.6873},\"rot\":{\"x\":359.7432,\"y\":269.9996,\"z\":0.0168}},\"c96f3f\":{\"lock\":false,\"pos\":{\"x\":25.599,\"y\":1.4603,\"z\":-35.711},\"rot\":{\"x\":359.9201,\"y\":270.0024,\"z\":0.0169}},\"ec74df\":{\"lock\":false,\"pos\":{\"x\":6.9713,\"y\":1.3124,\"z\":-54.3247},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Signature Replacements -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -44.34 - posY: 1.97 - posZ: -111.05 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Strange Aeons Custom Investigators d78bd2.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Strange Aeons Custom Investigators d78bd2.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Strange Aeons Custom Investigators d78bd2.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Strange Aeons Custom Investigators d78bd2.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Strange Aeons Custom Investigators d78bd2.yaml deleted file mode 100644 index 804a9d116..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Strange Aeons Custom Investigators d78bd2.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142947772/120E2BA8DF8C4E2AAC9E059FA046CC3A6229ECDF/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_strange_aeons.json -GUID: d78bd2 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Strange Aeons Custom Investigators d78bd2.ttslua' -LuaScriptState: "{\"ml\":{\"089a45\":{\"lock\":false,\"pos\":{\"x\":-19.2959,\"y\":1.3122,\"z\":-69.0607},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"0d2913\":{\"lock\":false,\"pos\":{\"x\":-19.2998,\"y\":1.3076,\"z\":-84.8182},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"1f4db7\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.4902,\"z\":-91.0572},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"23d41e\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.32,\"z\":-47.118},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"29cf64\":{\"lock\":false,\"pos\":{\"x\":-19.2936,\"y\":1.3099,\"z\":-76.9416},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"3465a5\":{\"lock\":false,\"pos\":{\"x\":-19.3,\"y\":1.3168,\"z\":-53.4358},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"3aa40a\":{\"lock\":false,\"pos\":{\"x\":-19.3001,\"y\":1.3145,\"z\":-61.2333},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"3f56a4\":{\"lock\":false,\"pos\":{\"x\":-22.6169,\"y\":1.3282,\"z\":-84.8185},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"55c805\":{\"lock\":false,\"pos\":{\"x\":-22.6158,\"y\":1.3305,\"z\":-76.946},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"7634fc\":{\"lock\":false,\"pos\":{\"x\":-22.61,\"y\":1.34,\"z\":-47.12},\"rot\":{\"x\":0.0208,\"y\":269.9998,\"z\":0.0168}},\"8d39b5\":{\"lock\":false,\"pos\":{\"x\":-22.6157,\"y\":1.3328,\"z\":-69.0756},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"a57210\":{\"lock\":false,\"pos\":{\"x\":-22.6139,\"y\":1.3373,\"z\":-53.4381},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"ff2949\":{\"lock\":false,\"pos\":{\"x\":-22.617,\"y\":1.3351,\"z\":-61.2414},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Strange Aeons Custom Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -17.43 - posY: 2.83 - posZ: -101.73 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Streets of New Capenna 48b4ca.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Streets of New Capenna 48b4ca.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Streets of New Capenna 48b4ca.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Streets of New Capenna 48b4ca.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Streets of New Capenna 48b4ca.yaml deleted file mode 100644 index ef9ddc81e..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Streets of New Capenna 48b4ca.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1853807409892957080/8BAF356ADEADE6CF377438200268899C64FA420E/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_SNC.json -GUID: 48b4ca -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Streets of New Capenna 48b4ca.ttslua' -LuaScriptState: "{\"ml\":{\"00df29\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3082,\"z\":92.4413},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"1d30b7\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.3022,\"z\":76.3528},\"rot\":{\"x\":0.0208,\"y\":270.0235,\"z\":0.0168}},\"24ebf7\":{\"lock\":false,\"pos\":{\"x\":45.98,\"y\":1.3049,\"z\":90.1528},\"rot\":{\"x\":0.0208,\"y\":269.9692,\"z\":0.0168}},\"289dcb\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3029,\"z\":74.0413},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"2aaa95\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3035,\"z\":76.3413},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"35fa26\":{\"lock\":false,\"pos\":{\"x\":40.9603,\"y\":1.3018,\"z\":85.5488},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"3e8f18\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3069,\"z\":87.8413},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"43d9b3\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3062,\"z\":85.5412},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"450971\":{\"lock\":false,\"pos\":{\"x\":49.5625,\"y\":1.2995,\"z\":67.1528},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"4bf11c\":{\"lock\":false,\"pos\":{\"x\":40.9602,\"y\":1.2977,\"z\":71.7487},\"rot\":{\"x\":0.0208,\"y\":269.9998,\"z\":0.0168}},\"4f3c6c\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.3036,\"z\":80.9528},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"57acdc\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.3049,\"z\":85.5528},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"655321\":{\"lock\":false,\"pos\":{\"x\":40.9602,\"y\":1.3024,\"z\":87.8488},\"rot\":{\"x\":0.0208,\"y\":269.9823,\"z\":0.0168}},\"6724b6\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.3062,\"z\":90.1528},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"73aa68\":{\"lock\":false,\"pos\":{\"x\":40.9603,\"y\":1.3011,\"z\":83.2487},\"rot\":{\"x\":0.0208,\"y\":269.9993,\"z\":0.0168}},\"73bf72\":{\"lock\":false,\"pos\":{\"x\":45.9795,\"y\":1.3029,\"z\":83.2529},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"774533\":{\"lock\":false,\"pos\":{\"x\":40.9602,\"y\":1.3031,\"z\":90.1488},\"rot\":{\"x\":0.0208,\"y\":269.9823,\"z\":0.0168}},\"776d45\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3015,\"z\":69.4413},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"7b7c48\":{\"lock\":false,\"pos\":{\"x\":45.9795,\"y\":1.3036,\"z\":85.5528},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"7e4fd8\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3008,\"z\":67.1412},\"rot\":{\"x\":0.0208,\"y\":269.9994,\"z\":0.0168}},\"822ea2\":{\"lock\":false,\"pos\":{\"x\":49.5628,\"y\":1.3069,\"z\":92.4528},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"84f3bc\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.3009,\"z\":71.7528},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"91b291\":{\"lock\":false,\"pos\":{\"x\":49.5628,\"y\":1.3015,\"z\":74.0528},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"94d7d7\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3049,\"z\":80.9413},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"99b2e7\":{\"lock\":false,\"pos\":{\"x\":40.9603,\"y\":1.2998,\"z\":78.6487},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"9ad531\":{\"lock\":false,\"pos\":{\"x\":40.9611,\"y\":1.3038,\"z\":92.4497},\"rot\":{\"x\":0.0208,\"y\":270.0154,\"z\":0.0168}},\"9f5e6e\":{\"lock\":false,\"pos\":{\"x\":40.9602,\"y\":1.2984,\"z\":74.0487},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"9ff2b3\":{\"lock\":false,\"pos\":{\"x\":49.5628,\"y\":1.3002,\"z\":69.4528},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"a0038c\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3002,\"z\":64.8411},\"rot\":{\"x\":0.0208,\"y\":269.9995,\"z\":0.0168}},\"aaf8ac\":{\"lock\":false,\"pos\":{\"x\":58.3839,\"y\":1.3094,\"z\":90.0904},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":180.0168}},\"af9875\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.3056,\"z\":87.8529},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"b6e7d4\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3056,\"z\":83.2413},\"rot\":{\"x\":0.0208,\"y\":269.9997,\"z\":0.0168}},\"c2b022\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.2988,\"z\":64.8527},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"cf0176\":{\"lock\":false,\"pos\":{\"x\":53.2286,\"y\":1.3022,\"z\":71.7413},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"d474aa\":{\"lock\":false,\"pos\":{\"x\":45.9795,\"y\":1.3022,\"z\":80.9528},\"rot\":{\"x\":0.0208,\"y\":269.9998,\"z\":0.0168}},\"e20a09\":{\"lock\":false,\"pos\":{\"x\":53.2288,\"y\":1.3076,\"z\":90.1413},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"e5cc63\":{\"lock\":false,\"pos\":{\"x\":40.9603,\"y\":1.2991,\"z\":76.3487},\"rot\":{\"x\":0.0208,\"y\":270.0002,\"z\":0.0168}},\"ec5825\":{\"lock\":false,\"pos\":{\"x\":45.98,\"y\":1.3056,\"z\":92.4529},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"f44618\":{\"lock\":false,\"pos\":{\"x\":49.5629,\"y\":1.3042,\"z\":83.2528},\"rot\":{\"x\":0.0208,\"y\":269.9999,\"z\":0.0168}},\"f6916e\":{\"lock\":false,\"pos\":{\"x\":58.3838,\"y\":1.3101,\"z\":92.3904},\"rot\":{\"x\":0.0208,\"y\":270.0001,\"z\":0.0168}},\"f7b278\":{\"lock\":false,\"pos\":{\"x\":45.9795,\"y\":1.3043,\"z\":87.8529},\"rot\":{\"x\":0.0208,\"y\":270,\"z\":0.0168}},\"fc411e\":{\"lock\":false,\"pos\":{\"x\":40.9602,\"y\":1.3004,\"z\":80.9487},\"rot\":{\"x\":0.0208,\"y\":269.9717,\"z\":0.0168}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Streets of New Capenna -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -24.82 - posY: 2.36 - posZ: -62.97 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Bad Batch 0a1d16.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Bad Batch 0a1d16.ttslua deleted file mode 100644 index 1b26ccbc4..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Bad Batch 0a1d16.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,-1}, rotation={0,180,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Bad Batch 0a1d16.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Bad Batch 0a1d16.yaml deleted file mode 100644 index 74c45a46f..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Bad Batch 0a1d16.yaml +++ /dev/null @@ -1,61 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 0.02353 - g: 0.00392 - r: 0.02353 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/764975951334960553/C518D80E31E27DB23EEAC8CF9253E59798865790/ - MaterialIndex: 1 - MeshURL: http://cloud-3.steamusercontent.com/ugc/764975951334964971/3078F312706FC974833ECD2A359B87FD4F283509/ - NormalURL: http://cloud-3.steamusercontent.com/ugc/764975951334960069/E70E4A58A1B7827F1E5E2AF9FF44DF0BD5DA33F7/ - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_bad_batch.json -GUID: 0a1d16 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Bad Batch 0a1d16.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Bad Batch -PhysicsMaterial: - BounceCombine: 0 - Bounciness: 0.0 - DynamicFriction: 0.6 - FrictionCombine: 0 - StaticFriction: 0.6 -Rigidbody: - AngularDrag: 5.0 - Drag: 5.0 - Mass: 1.375 - UseGravity: true -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -22.82 - posY: 2.23 - posZ: -97.68 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 2.0 - scaleY: 2.0 - scaleZ: 2.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Ghosts Of Onigawa (Investigator Expansion) c19cfa.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Ghosts Of Onigawa (Investigator Expansion) c19cfa.ttslua deleted file mode 100644 index 391d6e568..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Ghosts Of Onigawa (Investigator Expansion) c19cfa.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,6}, rotation={0,0,0}, height=500, width=1600, - font_size=350, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Ghosts Of Onigawa (Investigator Expansion) c19cfa.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Ghosts Of Onigawa (Investigator Expansion) c19cfa.yaml deleted file mode 100644 index 6d6d2e369..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Ghosts Of Onigawa (Investigator Expansion) c19cfa.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: https://dl.airtable.com/.attachmentThumbnails/e9dd0f33f26dcf0a628d962e0806de04/b41b19e1 - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: https://arkham.cards -DragSelectable: true -GMNotes: fancreations/investigators_onigawa.json -GUID: c19cfa -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Ghosts Of Onigawa (Investigator Expansion) c19cfa.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Ghosts Of Onigawa (Investigator Expansion) -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -47.19 - posY: 2.83 - posZ: -121.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 0.96 - scaleY: 0.27 - scaleZ: 0.96 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Shadows of Arkham Player Cards 2e5eef.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Shadows of Arkham Player Cards 2e5eef.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Shadows of Arkham Player Cards 2e5eef.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Shadows of Arkham Player Cards 2e5eef.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Shadows of Arkham Player Cards 2e5eef.yaml deleted file mode 100644 index b18f12ec8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model The Shadows of Arkham Player Cards 2e5eef.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1697282751257289223/D03666A291CC5705A3656865488583FF4AB762B4/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_shadows_of_arkham.json -GUID: 2e5eef -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Shadows of Arkham Player Cards 2e5eef.ttslua' -LuaScriptState: "{\"ml\":{\"00ec68\":{\"lock\":false,\"position\":{\"x\":52.9890174865723,\"y\":1.29333806037903,\"z\":-93.6057357788086},\"rotation\":{\"x\":0.0199895389378071,\"y\":269.998107910156,\"z\":0.0199991464614868}},\"0316b8\":{\"lock\":false,\"position\":{\"x\":53.2300033569336,\"y\":1.30450367927551,\"z\":78.6399993896484},\"rotation\":{\"x\":0.0199890565127134,\"y\":269.999969482422,\"z\":0.0199999362230301}},\"037bc1\":{\"lock\":false,\"position\":{\"x\":58.3800010681152,\"y\":1.30066311359406,\"z\":62.4900016784668},\"rotation\":{\"x\":0.0199890714138746,\"y\":270.000061035156,\"z\":0.0200001243501902}},\"046176\":{\"lock\":false,\"position\":{\"x\":58.3800010681152,\"y\":1.31029713153839,\"z\":90.0899963378906},\"rotation\":{\"x\":0.0199889130890369,\"y\":270.000061035156,\"z\":0.0199998635798693}},\"07d486\":{\"lock\":false,\"position\":{\"x\":-19.3082790374756,\"y\":1.30661237239838,\"z\":-84.7379150390625},\"rotation\":{\"x\":0.0199892167001963,\"y\":270,\"z\":0.0199996847659349}},\"084441\":{\"lock\":false,\"position\":{\"x\":49.2799987792969,\"y\":1.30174660682678,\"z\":-65.8099975585938},\"rotation\":{\"x\":0.0199889466166496,\"y\":270.000030517578,\"z\":0.0199998766183853}},\"0b7b88\":{\"lock\":false,\"position\":{\"x\":32.9900016784668,\"y\":1.29445779323578,\"z\":-70.4100036621094},\"rotation\":{\"x\":0.0199888814240694,\"y\":270.000030517578,\"z\":0.0199998747557402}},\"0be9f3\":{\"lock\":false,\"position\":{\"x\":40.2900009155273,\"y\":1.30422675609589,\"z\":-49.7200012207031},\"rotation\":{\"x\":0.0199888404458761,\"y\":270.000030517578,\"z\":0.0199997909367085}},\"0cebea\":{\"lock\":false,\"position\":{\"x\":37.4199981689453,\"y\":1.29899501800537,\"z\":78.6600036621094},\"rotation\":{\"x\":0.0199889577925205,\"y\":269.999938964844,\"z\":0.0199999120086432}},\"0ffb49\":{\"lock\":false,\"position\":{\"x\":36.620002746582,\"y\":1.29251289367676,\"z\":-79.6100006103516},\"rotation\":{\"x\":0.0199891477823257,\"y\":270,\"z\":0.0199997574090958}},\"180ad1\":{\"lock\":false,\"position\":{\"x\":58.379997253418,\"y\":1.29745161533356,\"z\":53.2899971008301},\"rotation\":{\"x\":0.0199890490621328,\"y\":269.999969482422,\"z\":0.0200000181794167}},\"1cbd7b\":{\"lock\":false,\"position\":{\"x\":49.5600051879883,\"y\":1.30001544952393,\"z\":69.4499969482422},\"rotation\":{\"x\":0.0199890844523907,\"y\":269.999938964844,\"z\":0.0199999641627073}},\"1cd8ab\":{\"lock\":false,\"position\":{\"x\":32.9900016784668,\"y\":1.29124653339386,\"z\":-79.6100006103516},\"rotation\":{\"x\":0.0199889782816172,\"y\":270,\"z\":0.0199996642768383}},\"1cde85\":{\"lock\":false,\"position\":{\"x\":40.9600028991699,\"y\":1.30183231830597,\"z\":83.25},\"rotation\":{\"x\":0.0199889782816172,\"y\":269.999938964844,\"z\":0.0199997965246439}},\"1f2d61\":{\"lock\":false,\"position\":{\"x\":52.9399948120117,\"y\":1.30382287502289,\"z\":-63.5199928283691},\"rotation\":{\"x\":0.0199888907372952,\"y\":269.999969482422,\"z\":0.0199997611343861}},\"20032d\":{\"lock\":false,\"position\":{\"x\":40.9599990844727,\"y\":1.29460656642914,\"z\":62.5499992370605},\"rotation\":{\"x\":0.0199888497591019,\"y\":270,\"z\":0.019999835640192}},\"24ceaa\":{\"lock\":false,\"position\":{\"x\":40.2900009155273,\"y\":1.2953953742981,\"z\":-75.0199966430664},\"rotation\":{\"x\":0.0199888348579407,\"y\":270,\"z\":0.0199998505413532}},\"254e1c\":{\"lock\":false,\"position\":{\"x\":49.560001373291,\"y\":1.30483257770538,\"z\":83.25},\"rotation\":{\"x\":0.0199889410287142,\"y\":270.000030517578,\"z\":0.0200001746416092}},\"27c7a8\":{\"lock\":false,\"position\":{\"x\":52.9400024414063,\"y\":1.30783712863922,\"z\":-52.0199966430664},\"rotation\":{\"x\":0.0199888460338116,\"y\":270,\"z\":0.0199999995529652}},\"27f23d\":{\"lock\":false,\"position\":{\"x\":40.9599761962891,\"y\":1.28978943824768,\"z\":48.7499160766602},\"rotation\":{\"x\":0.0199898928403854,\"y\":269.996948242188,\"z\":0.019998911768198}},\"2802c1\":{\"lock\":false,\"position\":{\"x\":40.2900009155273,\"y\":1.29298686981201,\"z\":-81.9199981689453},\"rotation\":{\"x\":0.0199889708310366,\"y\":270,\"z\":0.0199997909367085}},\"2b4ccd\":{\"lock\":false,\"position\":{\"x\":58.3794555664063,\"y\":1.30306661128998,\"z\":69.3763885498047},\"rotation\":{\"x\":0.019983533769846,\"y\":270.015502929688,\"z\":0.0200053323060274}},\"2c6a8e\":{\"lock\":false,\"position\":{\"x\":33.8600006103516,\"y\":1.29212963581085,\"z\":62.5499992370605},\"rotation\":{\"x\":0.0199890900403261,\"y\":270,\"z\":0.0199998486787081}},\"2d49cf\":{\"lock\":false,\"position\":{\"x\":53.2300033569336,\"y\":1.30370080471039,\"z\":76.3399963378906},\"rotation\":{\"x\":0.0199890248477459,\"y\":269.999938964844,\"z\":0.0199999548494816}},\"2f5e39\":{\"lock\":false,\"position\":{\"x\":40.2899971008301,\"y\":1.29619824886322,\"z\":-72.7200088500977},\"rotation\":{\"x\":0.0199888180941343,\"y\":270,\"z\":0.0199999939650297}},\"3282d4\":{\"lock\":false,\"position\":{\"x\":36.620002746582,\"y\":1.29492139816284,\"z\":-72.7099990844727},\"rotation\":{\"x\":0.0199890546500683,\"y\":270,\"z\":0.0199999008327723}},\"361151\":{\"lock\":false,\"position\":{\"x\":-19.2999992370605,\"y\":1.3175402879715,\"z\":-53.439998626709},\"rotation\":{\"x\":0.019978741183877,\"y\":270.030609130859,\"z\":0.0200103744864464}},\"377f65\":{\"lock\":false,\"position\":{\"x\":25.5706024169922,\"y\":1.29965567588806,\"z\":92.3952865600586},\"rotation\":{\"x\":0.0199942197650671,\"y\":269.984924316406,\"z\":0.0199946351349354}},\"384dfa\":{\"lock\":false,\"position\":{\"x\":58.3800048828125,\"y\":1.31110000610352,\"z\":92.3899993896484},\"rotation\":{\"x\":0.0199889671057463,\"y\":269.999938964844,\"z\":0.0199998449534178}},\"3ae6c4\":{\"lock\":false,\"position\":{\"x\":40.9599990844727,\"y\":1.29380369186401,\"z\":60.25},\"rotation\":{\"x\":0.0199888423085213,\"y\":270,\"z\":0.0199998654425144}},\"3b983b\":{\"lock\":false,\"position\":{\"x\":-19.2918758392334,\"y\":1.31209874153137,\"z\":-69.0368881225586},\"rotation\":{\"x\":0.0199905168265104,\"y\":269.996307373047,\"z\":0.019998399540782}},\"427789\":{\"lock\":false,\"position\":{\"x\":-22.6200008392334,\"y\":1.31092262268066,\"z\":-69.0800018310547},\"rotation\":{\"x\":0.0199892036616802,\"y\":269.999877929688,\"z\":0.0199997294694185}},\"463ad7\":{\"lock\":false,\"position\":{\"x\":49.2799949645996,\"y\":1.30495798587799,\"z\":-56.6100044250488},\"rotation\":{\"x\":0.0199889857321978,\"y\":270,\"z\":0.0199998263269663}},\"4a3cb4\":{\"lock\":false,\"position\":{\"x\":53.2300033569336,\"y\":1.30851793289185,\"z\":90.1399993896484},\"rotation\":{\"x\":0.0199890285730362,\"y\":269.999938964844,\"z\":0.0199999492615461}},\"4a92af\":{\"lock\":false,\"position\":{\"x\":40.9599990844727,\"y\":1.29300093650818,\"z\":57.9500007629395},\"rotation\":{\"x\":0.0199889596551657,\"y\":270,\"z\":0.0199998430907726}},\"4b4086\":{\"lock\":false,\"position\":{\"x\":58.3254814147949,\"y\":1.51360487937927,\"z\":42.2086868286133},\"rotation\":{\"x\":9.23278457776178E-06,\"y\":269.997741699219,\"z\":1.04533889100367E-07}},\"4b880b\":{\"lock\":false,\"position\":{\"x\":52.9400024414063,\"y\":1.30302000045776,\"z\":-65.8199996948242},\"rotation\":{\"x\":0.0199885722249746,\"y\":270.000793457031,\"z\":0.0200000759214163}},\"4b9cb9\":{\"lock\":false,\"position\":{\"x\":41.0037727355957,\"y\":1.28888833522797,\"z\":46.1245384216309},\"rotation\":{\"x\":0.019988689571619,\"y\":270.000671386719,\"z\":0.0200000945478678}},\"4d49f7\":{\"lock\":false,\"position\":{\"x\":37.4199981689453,\"y\":1.29176950454712,\"z\":57.9599990844727},\"rotation\":{\"x\":0.0199888795614243,\"y\":270,\"z\":0.0200000703334808}},\"50cc1a\":{\"lock\":false,\"position\":{\"x\":32.9899978637695,\"y\":1.28883790969849,\"z\":-86.510009765625},\"rotation\":{\"x\":0.0199888162314892,\"y\":270.000030517578,\"z\":0.0200000032782555}},\"51d058\":{\"lock\":false,\"position\":{\"x\":-22.6099987030029,\"y\":1.31638550758362,\"z\":-53.4399948120117},\"rotation\":{\"x\":0.0199892148375511,\"y\":269.999877929688,\"z\":0.0199998188763857}},\"51e6f7\":{\"lock\":false,\"position\":{\"x\":36.598518371582,\"y\":1.2876660823822,\"z\":-93.4732894897461},\"rotation\":{\"x\":0.0199889671057463,\"y\":269.999938964844,\"z\":0.0200000815093517}},\"54a1c3\":{\"lock\":false,\"position\":{\"x\":40.2900009155273,\"y\":1.30502963066101,\"z\":-47.4199981689453},\"rotation\":{\"x\":0.0199889913201332,\"y\":270.000030517578,\"z\":0.0199998654425144}},\"55f7ad\":{\"lock\":false,\"position\":{\"x\":52.939998626709,\"y\":1.30864000320435,\"z\":-49.7200012207031},\"rotation\":{\"x\":0.019989000633359,\"y\":270,\"z\":0.0199998654425144}},\"56a480\":{\"lock\":false,\"position\":{\"x\":40.2899971008301,\"y\":1.29700112342834,\"z\":-70.4200057983398},\"rotation\":{\"x\":0.0199890546500683,\"y\":270,\"z\":0.0199998579919338}},\"58391c\":{\"lock\":false,\"position\":{\"x\":58.0999984741211,\"y\":1.31122553348541,\"z\":-47.4700012207031},\"rotation\":{\"x\":0.0199897903949022,\"y\":269.9970703125,\"z\":0.0199989173561335}},\"5a45af\":{\"lock\":false,\"position\":{\"x\":58.0999984741211,\"y\":1.29918277263641,\"z\":-81.9700012207031},\"rotation\":{\"x\":0.0199890248477459,\"y\":270.000030517578,\"z\":0.0199997220188379}},\"5b57aa\":{\"lock\":false,\"position\":{\"x\":40.9600028991699,\"y\":1.29862082004547,\"z\":74.0500030517578},\"rotation\":{\"x\":0.0199890341609716,\"y\":269.999938964844,\"z\":0.0199998673051596}},\"608e80\":{\"lock\":false,\"position\":{\"x\":58.1001319885254,\"y\":1.30801498889923,\"z\":-56.6675224304199},\"rotation\":{\"x\":0.0199854355305433,\"y\":270.01025390625,\"z\":0.020003417506814}},\"60cad6\":{\"lock\":false,\"position\":{\"x\":58.370002746582,\"y\":1.29582846164703,\"z\":48.6500015258789},\"rotation\":{\"x\":0.0199897009879351,\"y\":269.997650146484,\"z\":0.0199992582201958}},\"6199c4\":{\"lock\":false,\"position\":{\"x\":40.2899971008301,\"y\":1.29940962791443,\"z\":-63.52001953125},\"rotation\":{\"x\":0.019988814368844,\"y\":270,\"z\":0.019999897107482}},\"6296e1\":{\"lock\":false,\"position\":{\"x\":36.6099967956543,\"y\":1.28930139541626,\"z\":-88.8000106811523},\"rotation\":{\"x\":0.0199889745563269,\"y\":270.000061035156,\"z\":0.019999697804451}},\"64e584\":{\"lock\":false,\"position\":{\"x\":45.9799957275391,\"y\":1.30358362197876,\"z\":83.2499923706055},\"rotation\":{\"x\":0.0199889298528433,\"y\":270.000061035156,\"z\":0.0199998896569014}},\"69243f\":{\"lock\":false,\"position\":{\"x\":-22.6200008392334,\"y\":1.30542838573456,\"z\":-84.8199996948242},\"rotation\":{\"x\":0.0199893899261951,\"y\":269.999877929688,\"z\":0.0199998654425144}},\"695e58\":{\"lock\":false,\"position\":{\"x\":36.6199951171875,\"y\":1.29732990264893,\"z\":-65.8100051879883},\"rotation\":{\"x\":0.0199890527874231,\"y\":270,\"z\":0.0199998524039984}},\"6b88b1\":{\"lock\":false,\"position\":{\"x\":49.2800025939941,\"y\":1.30736660957336,\"z\":-49.7099952697754},\"rotation\":{\"x\":0.0199889950454235,\"y\":269.999938964844,\"z\":0.0199998300522566}},\"6ca16c\":{\"lock\":false,\"position\":{\"x\":49.560001373291,\"y\":1.30563545227051,\"z\":85.5500030517578},\"rotation\":{\"x\":0.0199889410287142,\"y\":270,\"z\":0.0199998021125793}},\"6d003a\":{\"lock\":false,\"position\":{\"x\":-22.6199989318848,\"y\":1.31365931034088,\"z\":-61.2399978637695},\"rotation\":{\"x\":0.0199891235679388,\"y\":269.999877929688,\"z\":0.0199997890740633}},\"6e58a2\":{\"lock\":false,\"position\":{\"x\":45.9800033569336,\"y\":1.30438649654388,\"z\":85.5500030517578},\"rotation\":{\"x\":0.0199888721108437,\"y\":269.999938964844,\"z\":0.0200000405311584}},\"6fc778\":{\"lock\":false,\"position\":{\"x\":36.6199989318848,\"y\":1.29171001911163,\"z\":-81.9100036621094},\"rotation\":{\"x\":0.0199888665229082,\"y\":270.000030517578,\"z\":0.0199997052550316}},\"6fd7e8\":{\"lock\":false,\"position\":{\"x\":58.0999946594238,\"y\":1.30319702625275,\"z\":-70.4700088500977},\"rotation\":{\"x\":0.0199889298528433,\"y\":270,\"z\":0.0199999194592237}},\"6fe6b0\":{\"lock\":false,\"position\":{\"x\":40.2899971008301,\"y\":1.29138112068176,\"z\":-86.5200042724609},\"rotation\":{\"x\":0.0199888497591019,\"y\":270,\"z\":0.0200000405311584}},\"70e3b0\":{\"lock\":false,\"position\":{\"x\":53.2299995422363,\"y\":1.30691230297089,\"z\":85.5400009155273},\"rotation\":{\"x\":0.0199889615178108,\"y\":269.999969482422,\"z\":0.0199999772012234}},\"7114ca\":{\"lock\":false,\"position\":{\"x\":36.6199951171875,\"y\":1.30054140090942,\"z\":-56.6100044250488},\"rotation\":{\"x\":0.0199888497591019,\"y\":270,\"z\":0.0199999287724495}},\"7141a7\":{\"lock\":false,\"position\":{\"x\":40.9600028991699,\"y\":1.2994236946106,\"z\":76.3499984741211},\"rotation\":{\"x\":0.019988851621747,\"y\":270,\"z\":0.0199999567121267}},\"756f99\":{\"lock\":false,\"position\":{\"x\":49.560001373291,\"y\":1.30322682857513,\"z\":78.6500015258789},\"rotation\":{\"x\":0.019988976418972,\"y\":270,\"z\":0.0200000368058681}},\"75b89c\":{\"lock\":false,\"position\":{\"x\":49.2800025939941,\"y\":1.30816948413849,\"z\":-47.4099960327148},\"rotation\":{\"x\":0.0199861433357,\"y\":270.007598876953,\"z\":0.020002568140626}},\"76f23d\":{\"lock\":false,\"position\":{\"x\":53.2299995422363,\"y\":1.30048942565918,\"z\":67.1399993896484},\"rotation\":{\"x\":0.0199889130890369,\"y\":270,\"z\":0.0200000330805779}},\"770882\":{\"lock\":false,\"position\":{\"x\":40.2899971008301,\"y\":1.2986067533493,\"z\":-65.8200225830078},\"rotation\":{\"x\":0.0199889186769724,\"y\":270,\"z\":0.0199999790638685}},\"773624\":{\"lock\":false,\"position\":{\"x\":53.2300109863281,\"y\":1.30289804935455,\"z\":74.0402526855469},\"rotation\":{\"x\":0.019988315179944,\"y\":270.001586914063,\"z\":0.0200003776699305}},\"778a96\":{\"lock\":false,\"position\":{\"x\":40.9598579406738,\"y\":1.30424046516418,\"z\":90.1491775512695},\"rotation\":{\"x\":0.019989512860775,\"y\":269.999938964844,\"z\":0.02000049687922}},\"779fd0\":{\"lock\":false,\"position\":{\"x\":37.4200019836426,\"y\":1.30381226539612,\"z\":92.4599990844727},\"rotation\":{\"x\":0.0199889428913593,\"y\":269.999877929688,\"z\":0.0199997518211603}},\"77b826\":{\"lock\":false,\"position\":{\"x\":37.4199981689453,\"y\":1.29257225990295,\"z\":60.2599983215332},\"rotation\":{\"x\":0.0199889149516821,\"y\":270,\"z\":0.0200002063065767}},\"7a2e26\":{\"lock\":false,\"position\":{\"x\":49.2799987792969,\"y\":1.30254948139191,\"z\":-63.5099983215332},\"rotation\":{\"x\":0.019988851621747,\"y\":270.000732421875,\"z\":0.020000271499157}},\"7c7931\":{\"lock\":false,\"position\":{\"x\":-25.8119049072266,\"y\":1.30920231342316,\"z\":-70.8182373046875},\"rotation\":{\"x\":0.0199853219091892,\"y\":270.0107421875,\"z\":0.0200036633759737}},\"7ff457\":{\"lock\":false,\"position\":{\"x\":-25.8259696960449,\"y\":1.33209419250488,\"z\":-67.5839462280273},\"rotation\":{\"x\":0.0199849028140306,\"y\":270.011932373047,\"z\":0.0200038161128759}},\"81a6e1\":{\"lock\":false,\"position\":{\"x\":-25.863733291626,\"y\":1.30753016471863,\"z\":-75.5568389892578},\"rotation\":{\"x\":0.0199889112263918,\"y\":269.999694824219,\"z\":0.0199999287724495}},\"847b3d\":{\"lock\":false,\"position\":{\"x\":40.2900009155273,\"y\":1.29378974437714,\"z\":-79.620002746582},\"rotation\":{\"x\":0.0199889149516821,\"y\":270,\"z\":0.0199999324977398}},\"84f5d6\":{\"lock\":false,\"position\":{\"x\":36.6199951171875,\"y\":1.29010426998138,\"z\":-86.510009765625},\"rotation\":{\"x\":0.0199888981878757,\"y\":270,\"z\":0.0199999623000622}},\"860f3c\":{\"lock\":false,\"position\":{\"x\":-26.045352935791,\"y\":1.30354130268097,\"z\":-86.8024368286133},\"rotation\":{\"x\":0.0199937485158443,\"y\":269.986572265625,\"z\":0.0199953615665436}},\"89dd2b\":{\"lock\":false,\"position\":{\"x\":58.3900032043457,\"y\":1.2990608215332,\"z\":57.8900032043457},\"rotation\":{\"x\":0.0199890565127134,\"y\":270,\"z\":0.0200000386685133}},\"8b681a\":{\"lock\":false,\"position\":{\"x\":5.53419923782349,\"y\":1.33791208267212,\"z\":72.7426147460938},\"rotation\":{\"x\":359.980010986328,\"y\":89.992546081543,\"z\":359.980010986328}},\"8b9844\":{\"lock\":false,\"position\":{\"x\":25.5706005096436,\"y\":1.29885721206665,\"z\":90.1077499389648},\"rotation\":{\"x\":0.0199910085648298,\"y\":269.994018554688,\"z\":0.0199977327138186}},\"8c7658\":{\"lock\":false,\"position\":{\"x\":49.2641258239746,\"y\":1.29203510284424,\"z\":-93.61572265625},\"rotation\":{\"x\":0.019987940788269,\"y\":270.002502441406,\"z\":0.0200008489191532}},\"8cdefb\":{\"lock\":false,\"position\":{\"x\":33.8418960571289,\"y\":1.29453921318054,\"z\":69.4711685180664},\"rotation\":{\"x\":0.0199848040938377,\"y\":270.011749267578,\"z\":0.0200043004006147}},\"8d8e9d\":{\"lock\":false,\"position\":{\"x\":49.6114349365234,\"y\":1.30248034000397,\"z\":76.4601821899414},\"rotation\":{\"x\":0.0199729725718498,\"y\":270.045928955078,\"z\":0.0200158730149269}},\"8e2e9c\":{\"lock\":false,\"position\":{\"x\":52.9399948120117,\"y\":1.29579436779022,\"z\":-86.5200042724609},\"rotation\":{\"x\":0.0199889522045851,\"y\":270.000061035156,\"z\":0.0199999958276749}},\"9040da\":{\"lock\":false,\"position\":{\"x\":37.4199981689453,\"y\":1.29498076438904,\"z\":67.1600036621094},\"rotation\":{\"x\":0.01998888887465,\"y\":270,\"z\":0.0199998095631599}},\"92173a\":{\"lock\":false,\"position\":{\"x\":40.2900047302246,\"y\":1.30342388153076,\"z\":-52.0199966430664},\"rotation\":{\"x\":0.0199889540672302,\"y\":270,\"z\":0.0199998710304499}},\"95cac6\":{\"lock\":false,\"position\":{\"x\":49.2799949645996,\"y\":1.30014097690582,\"z\":-70.4100112915039},\"rotation\":{\"x\":0.0199887398630381,\"y\":270,\"z\":0.0199999324977398}},\"96217c\":{\"lock\":false,\"position\":{\"x\":-25.9478569030762,\"y\":1.31202936172485,\"z\":-62.5836143493652},\"rotation\":{\"x\":0.019984308630228,\"y\":270.013763427734,\"z\":0.0200045593082905}},\"96cbfb\":{\"lock\":false,\"position\":{\"x\":58.0999984741211,\"y\":1.29998564720154,\"z\":-79.6699981689453},\"rotation\":{\"x\":0.0199890434741974,\"y\":270.000030517578,\"z\":0.0199999138712883}},\"9794d9\":{\"lock\":false,\"position\":{\"x\":52.939998626709,\"y\":1.30542850494385,\"z\":-58.9199981689453},\"rotation\":{\"x\":0.0199899319559336,\"y\":269.997253417969,\"z\":0.019998911768198}},\"9ab6ec\":{\"lock\":false,\"position\":{\"x\":52.939998626709,\"y\":1.30061149597168,\"z\":-72.7200012207031},\"rotation\":{\"x\":0.0199889615178108,\"y\":270.000061035156,\"z\":0.0200000870972872}},\"9bd52b\":{\"lock\":false,\"position\":{\"x\":52.939998626709,\"y\":1.30944287776947,\"z\":-47.4199981689453},\"rotation\":{\"x\":0.0199889428913593,\"y\":270.000030517578,\"z\":0.019999835640192}},\"9bfe46\":{\"lock\":false,\"position\":{\"x\":53.2099990844727,\"y\":1.29406309127808,\"z\":48.75},\"rotation\":{\"x\":0.0199889931827784,\"y\":270,\"z\":0.0199998896569014}},\"9d1e7f\":{\"lock\":false,\"position\":{\"x\":-19.2818336486816,\"y\":1.3093523979187,\"z\":-76.9148406982422},\"rotation\":{\"x\":0.0199888311326504,\"y\":270.001007080078,\"z\":0.020000284537673}},\"9d7ea2\":{\"lock\":false,\"position\":{\"x\":52.939998626709,\"y\":1.30623137950897,\"z\":-56.6199989318848},\"rotation\":{\"x\":0.019989987835288,\"y\":269.997314453125,\"z\":0.0199990179389715}},\"9d9325\":{\"lock\":false,\"position\":{\"x\":36.6199989318848,\"y\":1.29572427272797,\"z\":-70.4100036621094},\"rotation\":{\"x\":0.0199888944625854,\"y\":270.000061035156,\"z\":0.0200000405311584}},\"9f7f04\":{\"lock\":false,\"position\":{\"x\":37.4199981689453,\"y\":1.29337513446808,\"z\":62.560001373291},\"rotation\":{\"x\":0.0199891049414873,\"y\":270,\"z\":0.0199999343603849}},\"a01cdf\":{\"lock\":false,\"position\":{\"x\":37.4200019836426,\"y\":1.30140364170074,\"z\":85.5599975585938},\"rotation\":{\"x\":0.0199888423085213,\"y\":269.999969482422,\"z\":0.0199998095631599}},\"a30199\":{\"lock\":false,\"position\":{\"x\":49.560001373291,\"y\":1.30804395675659,\"z\":92.4499969482422},\"rotation\":{\"x\":0.0199890043586493,\"y\":270.000030517578,\"z\":0.0199999455362558}},\"aa6e09\":{\"lock\":false,\"position\":{\"x\":40.9600028991699,\"y\":1.3026350736618,\"z\":85.5500030517578},\"rotation\":{\"x\":0.0199889969080687,\"y\":269.999938964844,\"z\":0.0199998710304499}},\"ab9bbb\":{\"lock\":false,\"position\":{\"x\":40.9599990844727,\"y\":1.29701519012451,\"z\":69.4499969482422},\"rotation\":{\"x\":0.0199888106435537,\"y\":270.000030517578,\"z\":0.0199999678879976}},\"ad03f0\":{\"lock\":false,\"position\":{\"x\":-22.6199989318848,\"y\":1.30817544460297,\"z\":-76.9499969482422},\"rotation\":{\"x\":0.0199892818927765,\"y\":269.999877929688,\"z\":0.019999798387289}},\"ad9546\":{\"lock\":false,\"position\":{\"x\":36.6199951171875,\"y\":1.2997385263443,\"z\":-58.9100036621094},\"rotation\":{\"x\":0.0199887491762638,\"y\":270,\"z\":0.0199999324977398}},\"aee7f5\":{\"lock\":false,\"position\":{\"x\":53.2299995422363,\"y\":1.29888379573822,\"z\":62.5400009155273},\"rotation\":{\"x\":0.0199876055121422,\"y\":270.004028320313,\"z\":0.020001370459795}},\"b02709\":{\"lock\":false,\"position\":{\"x\":7.71186399459839,\"y\":1.27614212036133,\"z\":86.3208999633789},\"rotation\":{\"x\":0.0400094911456108,\"y\":270.001373291016,\"z\":0.0200004633516073}},\"b0eee0\":{\"lock\":false,\"position\":{\"x\":53.2299995422363,\"y\":1.3012923002243,\"z\":69.4400024414063},\"rotation\":{\"x\":0.0199890024960041,\"y\":270,\"z\":0.0200000703334808}},\"b1597a\":{\"lock\":false,\"position\":{\"x\":58.379997253418,\"y\":1.30628287792206,\"z\":78.5899887084961},\"rotation\":{\"x\":0.0199889522045851,\"y\":270,\"z\":0.0199997089803219}},\"b21f05\":{\"lock\":false,\"position\":{\"x\":52.939998626709,\"y\":1.30141425132751,\"z\":-70.4199981689453},\"rotation\":{\"x\":0.0199947394430637,\"y\":269.983703613281,\"z\":0.0199943017214537}},\"b38ed5\":{\"lock\":false,\"position\":{\"x\":36.620002746582,\"y\":1.29411852359772,\"z\":-75.0100021362305},\"rotation\":{\"x\":0.0199889410287142,\"y\":270,\"z\":0.0199998822063208}},\"b66a7d\":{\"lock\":false,\"position\":{\"x\":12.3254795074463,\"y\":1.28831422328949,\"z\":73.1418762207031},\"rotation\":{\"x\":0.0199928712099791,\"y\":270.002166748047,\"z\":0.0200013890862465}},\"bc5495\":{\"lock\":false,\"position\":{\"x\":-25.8703365325928,\"y\":1.31469368934631,\"z\":-55.0283317565918},\"rotation\":{\"x\":0.0199836567044258,\"y\":270.015075683594,\"z\":0.0200051311403513}},\"bd9272\":{\"lock\":false,\"position\":{\"x\":40.2700004577637,\"y\":1.29057478904724,\"z\":-88.8099975585938},\"rotation\":{\"x\":0.0199889149516821,\"y\":270.000030517578,\"z\":0.0199999082833529}},\"bdae2a\":{\"lock\":false,\"position\":{\"x\":53.2300033569336,\"y\":1.30932080745697,\"z\":92.4400024414063},\"rotation\":{\"x\":0.0199889373034239,\"y\":269.999938964844,\"z\":0.0199998822063208}},\"bf10b7\":{\"lock\":false,\"position\":{\"x\":53.2299995422363,\"y\":1.2980809211731,\"z\":60.2400016784668},\"rotation\":{\"x\":0.019997775554657,\"y\":269.974517822266,\"z\":0.019990861415863}},\"c022a5\":{\"lock\":false,\"position\":{\"x\":58.379997253418,\"y\":1.29825448989868,\"z\":55.5899963378906},\"rotation\":{\"x\":0.019989101216197,\"y\":270,\"z\":0.0200001448392868}},\"c61276\":{\"lock\":false,\"position\":{\"x\":40.9599990844727,\"y\":1.29621231555939,\"z\":67.1500015258789},\"rotation\":{\"x\":0.0199887827038765,\"y\":270,\"z\":0.0199998337775469}},\"c68875\":{\"lock\":false,\"position\":{\"x\":58.1000022888184,\"y\":1.30560553073883,\"z\":-63.569995880127},\"rotation\":{\"x\":0.0199887491762638,\"y\":270.000030517578,\"z\":0.0199999455362558}},\"cb8f72\":{\"lock\":false,\"position\":{\"x\":49.5600051879883,\"y\":1.2992125749588,\"z\":67.1500015258789},\"rotation\":{\"x\":0.0199891608208418,\"y\":269.999816894531,\"z\":0.0199998822063208}},\"cdaca2\":{\"lock\":false,\"position\":{\"x\":37.4199981689453,\"y\":1.29819214344025,\"z\":76.3600006103516},\"rotation\":{\"x\":0.0199891142547131,\"y\":270,\"z\":0.0199999343603849}},\"cddffe\":{\"lock\":false,\"position\":{\"x\":37.4200019836426,\"y\":1.3030092716217,\"z\":90.1600036621094},\"rotation\":{\"x\":0.0199888814240694,\"y\":269.999847412109,\"z\":0.0199998188763857}},\"d4cf15\":{\"lock\":false,\"position\":{\"x\":40.2186698913574,\"y\":1.28893339633942,\"z\":-93.4611511230469},\"rotation\":{\"x\":0.0199874341487885,\"y\":270.004272460938,\"z\":0.0200016312301159}},\"da1495\":{\"lock\":false,\"position\":{\"x\":-26.0381469726563,\"y\":1.32164466381073,\"z\":-83.5166168212891},\"rotation\":{\"x\":0.019985293969512,\"y\":270.01123046875,\"z\":0.0200037676841021}},\"da681d\":{\"lock\":false,\"position\":{\"x\":40.9600067138672,\"y\":1.3268084526062,\"z\":78.6500091552734},\"rotation\":{\"x\":0.0199894458055496,\"y\":269.999694824219,\"z\":0.0199996717274189}},\"dd00d1\":{\"lock\":false,\"position\":{\"x\":37.4199981689453,\"y\":1.29578363895416,\"z\":69.4599990844727},\"rotation\":{\"x\":0.0199887715280056,\"y\":270,\"z\":0.0199999623000622}},\"dd0cc6\":{\"lock\":false,\"position\":{\"x\":49.5600051879883,\"y\":1.30162119865417,\"z\":74.0500030517578},\"rotation\":{\"x\":0.0199889969080687,\"y\":269.999938964844,\"z\":0.0199998840689659}},\"e570e3\":{\"lock\":false,\"position\":{\"x\":-19.2999992370605,\"y\":1.31482100486755,\"z\":-61.2299995422363},\"rotation\":{\"x\":0.0195435732603073,\"y\":271.262908935547,\"z\":0.0204352717846632}},\"e5aac0\":{\"lock\":false,\"position\":{\"x\":53.2299995422363,\"y\":1.30610942840576,\"z\":83.2399978637695},\"rotation\":{\"x\":0.0199887715280056,\"y\":270,\"z\":0.0199999026954174}},\"e68a2a\":{\"lock\":false,\"position\":{\"x\":58.0999984741211,\"y\":1.31042265892029,\"z\":-49.7700004577637},\"rotation\":{\"x\":0.0199888292700052,\"y\":269.999877929688,\"z\":0.0199999064207077}},\"e6b6bf\":{\"lock\":false,\"position\":{\"x\":36.620002746582,\"y\":1.29813289642334,\"z\":-63.5097312927246},\"rotation\":{\"x\":0.0199888367205858,\"y\":270.000549316406,\"z\":0.0200001262128353}},\"e732c3\":{\"lock\":false,\"position\":{\"x\":45.9799995422363,\"y\":1.30197787284851,\"z\":78.6500015258789},\"rotation\":{\"x\":0.019989000633359,\"y\":269.999969482422,\"z\":0.0199998822063208}},\"e7d788\":{\"lock\":false,\"position\":{\"x\":-25.8039722442627,\"y\":1.33271718025208,\"z\":-52.0299491882324},\"rotation\":{\"x\":0.0199853088706732,\"y\":270.011352539063,\"z\":0.0200038943439722}},\"ec1719\":{\"lock\":false,\"position\":{\"x\":40.9599571228027,\"y\":1.30504357814789,\"z\":92.4499053955078},\"rotation\":{\"x\":0.0199895668774843,\"y\":269.997985839844,\"z\":0.0199991296976805}},\"f3cc51\":{\"lock\":false,\"position\":{\"x\":-25.860538482666,\"y\":1.30648255348206,\"z\":-78.5612335205078},\"rotation\":{\"x\":0.0199850853532553,\"y\":270.010681152344,\"z\":0.0200036037713289}},\"f4b556\":{\"lock\":false,\"position\":{\"x\":-25.9067420959473,\"y\":1.34442949295044,\"z\":-59.7475433349609},\"rotation\":{\"x\":0.0199818555265665,\"y\":270.021331787109,\"z\":0.020007137209177}},\"f51b8a\":{\"lock\":false,\"position\":{\"x\":40.2900047302246,\"y\":1.3018182516098,\"z\":-56.6199951171875},\"rotation\":{\"x\":0.019988875836134,\"y\":270,\"z\":0.0200000926852226}},\"f73973\":{\"lock\":false,\"position\":{\"x\":40.2900047302246,\"y\":1.30101537704468,\"z\":-58.919994354248},\"rotation\":{\"x\":0.0199887547641993,\"y\":270.000030517578,\"z\":0.0199999343603849}},\"f7dc68\":{\"lock\":false,\"position\":{\"x\":58.3800048828125,\"y\":1.29986023902893,\"z\":60.1900024414063},\"rotation\":{\"x\":0.0199885349720716,\"y\":270.001037597656,\"z\":0.0200002156198025}},\"fb9ed6\":{\"lock\":false,\"position\":{\"x\":58.0999984741211,\"y\":1.29838001728058,\"z\":-84.2699966430664},\"rotation\":{\"x\":0.01998888887465,\"y\":270.000030517578,\"z\":0.0199998803436756}},\"fbfc81\":{\"lock\":false,\"position\":{\"x\":58.1000022888184,\"y\":1.30961978435516,\"z\":-52.069995880127},\"rotation\":{\"x\":0.0199889782816172,\"y\":269.999969482422,\"z\":0.0199998859316111}},\"fcc08c\":{\"lock\":false,\"position\":{\"x\":52.939998626709,\"y\":1.2982029914856,\"z\":-79.620002746582},\"rotation\":{\"x\":0.0199889056384563,\"y\":270,\"z\":0.0199999623000622}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: The Shadows of Arkham Player Cards -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -17.12 - posY: 3.27 - posZ: -93.32 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Touhou Project Investigators c5c294.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Touhou Project Investigators c5c294.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Touhou Project Investigators c5c294.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Touhou Project Investigators c5c294.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Touhou Project Investigators c5c294.yaml deleted file mode 100644 index db585a293..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Touhou Project Investigators c5c294.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1697277697641042816/D60194A8F22DA3032E6C2AC2EE040E6321A2B259/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/investigators_touhou_project.json -GUID: c5c294 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Touhou Project Investigators c5c294.ttslua' -LuaScriptState: "{\"ml\":{\"0115c9\":{\"lock\":false,\"pos\":{\"x\":-19.2997627258301,\"y\":1.30758762359619,\"z\":-84.8181610107422},\"rot\":{\"x\":0.0208086222410202,\"y\":270.000122070313,\"z\":0.0167708657681942}},\"0869b0\":{\"lock\":false,\"pos\":{\"x\":-16.6232986450195,\"y\":1.3645213842392,\"z\":-52.1352844238281},\"rot\":{\"x\":0.0208164509385824,\"y\":269.999725341797,\"z\":0.0167680736631155}},\"0a0573\":{\"lock\":false,\"pos\":{\"x\":-26.3001403808594,\"y\":1.27108871936798,\"z\":-69.0605621337891},\"rot\":{\"x\":359.979156494141,\"y\":89.999755859375,\"z\":359.983245849609}},\"1342d8\":{\"lock\":false,\"pos\":{\"x\":-16.6233005523682,\"y\":1.36150372028351,\"z\":-62.4441528320313},\"rot\":{\"x\":0.0208265371620655,\"y\":269.965148925781,\"z\":0.0167555063962936}},\"13d5ca\":{\"lock\":false,\"pos\":{\"x\":-16.6233386993408,\"y\":1.36186385154724,\"z\":-61.2142486572266},\"rot\":{\"x\":0.0208137799054384,\"y\":270.010925292969,\"z\":0.0167719274759293}},\"1b5323\":{\"lock\":false,\"pos\":{\"x\":-16.6233882904053,\"y\":1.3569039106369,\"z\":-78.1589050292969},\"rot\":{\"x\":0.0208134669810534,\"y\":270.008728027344,\"z\":0.0167714152485132}},\"281a12\":{\"lock\":false,\"pos\":{\"x\":-16.6235446929932,\"y\":1.35957205295563,\"z\":-69.0435638427734},\"rot\":{\"x\":0.0208162851631641,\"y\":269.999542236328,\"z\":0.0167678333818913}},\"2b6fc7\":{\"lock\":false,\"pos\":{\"x\":-16.6234893798828,\"y\":1.35495936870575,\"z\":-84.8014602661133},\"rot\":{\"x\":0.0208100788295269,\"y\":270.022277832031,\"z\":0.0167760886251926}},\"2f94db\":{\"lock\":false,\"pos\":{\"x\":-22.6168899536133,\"y\":1.3063827753067,\"z\":-84.8184814453125},\"rot\":{\"x\":0.0167733915150166,\"y\":180.006057739258,\"z\":359.979187011719}},\"36536d\":{\"lock\":false,\"pos\":{\"x\":-19.3000545501709,\"y\":1.31449115276337,\"z\":-61.2332344055176},\"rot\":{\"x\":0.0208088923245668,\"y\":270.000030517578,\"z\":0.0167707651853561}},\"47b3b0\":{\"lock\":false,\"pos\":{\"x\":-16.6235466003418,\"y\":1.35762691497803,\"z\":-75.6886901855469},\"rot\":{\"x\":0.0208199042826891,\"y\":269.987365722656,\"z\":0.0167634058743715}},\"500c37\":{\"lock\":false,\"pos\":{\"x\":-16.622652053833,\"y\":1.35460841655731,\"z\":-86.0018463134766},\"rot\":{\"x\":0.0208170153200626,\"y\":269.999633789063,\"z\":0.0167679078876972}},\"503494\":{\"lock\":false,\"pos\":{\"x\":-19.293586730957,\"y\":1.30989539623261,\"z\":-76.9415283203125},\"rot\":{\"x\":0.0208088792860508,\"y\":270.000091552734,\"z\":0.0167709421366453}},\"51e457\":{\"lock\":false,\"pos\":{\"x\":-16.621789932251,\"y\":1.35533368587494,\"z\":-83.5248031616211},\"rot\":{\"x\":0.0208167061209679,\"y\":269.998016357422,\"z\":0.0167672149837017}},\"589aa6\":{\"lock\":false,\"pos\":{\"x\":-17.1323127746582,\"y\":1.3304169178009,\"z\":-48.3126525878906},\"rot\":{\"x\":0.0208026915788651,\"y\":269.992309570313,\"z\":0.0167681984603405}},\"665ba2\":{\"lock\":false,\"pos\":{\"x\":-22.6713542938232,\"y\":1.30378520488739,\"z\":-47.1474685668945},\"rot\":{\"x\":0.0208087246865034,\"y\":269.999694824219,\"z\":0.0167711805552244}},\"6a5902\":{\"lock\":false,\"pos\":{\"x\":-16.6233062744141,\"y\":1.36415886878967,\"z\":-53.3736763000488},\"rot\":{\"x\":0.0208215937018394,\"y\":269.983764648438,\"z\":0.0167623329907656}},\"7122c7\":{\"lock\":false,\"pos\":{\"x\":-26.3001747131348,\"y\":1.26878070831299,\"z\":-76.9456329345703},\"rot\":{\"x\":359.979156494141,\"y\":89.9993057250977,\"z\":359.983215332031}},\"768f18\":{\"lock\":false,\"pos\":{\"x\":-26.29958152771,\"y\":1.26647710800171,\"z\":-84.817985534668},\"rot\":{\"x\":359.979156494141,\"y\":90.0005798339844,\"z\":359.983215332031}},\"78041d\":{\"lock\":false,\"pos\":{\"x\":-26.3001346588135,\"y\":1.27337789535522,\"z\":-61.2409591674805},\"rot\":{\"x\":359.979156494141,\"y\":89.9918670654297,\"z\":359.983245849609}},\"8b68e0\":{\"lock\":false,\"pos\":{\"x\":-19.2999973297119,\"y\":1.31677353382111,\"z\":-53.4358177185059},\"rot\":{\"x\":0.020808944478631,\"y\":270.000030517578,\"z\":0.0167707353830338}},\"8d3616\":{\"lock\":false,\"pos\":{\"x\":-26.2999992370605,\"y\":1.27566230297089,\"z\":-53.436840057373},\"rot\":{\"x\":359.979156494141,\"y\":90.0000076293945,\"z\":359.983245849609}},\"96c54e\":{\"lock\":false,\"pos\":{\"x\":-16.6233100891113,\"y\":1.36379873752594,\"z\":-54.6039886474609},\"rot\":{\"x\":0.020816121250391,\"y\":270.000244140625,\"z\":0.0167683251202106}},\"a6c471\":{\"lock\":false,\"pos\":{\"x\":-22.6138801574707,\"y\":1.31556940078735,\"z\":-53.4381103515625},\"rot\":{\"x\":0.0167721062898636,\"y\":180.002349853516,\"z\":359.979187011719}},\"cc9de1\":{\"lock\":false,\"pos\":{\"x\":-22.6169376373291,\"y\":1.31328415870667,\"z\":-61.2413673400879},\"rot\":{\"x\":0.0167721807956696,\"y\":180.001998901367,\"z\":359.979187011719}},\"ccd02d\":{\"lock\":false,\"pos\":{\"x\":-16.6233386993408,\"y\":1.36222386360168,\"z\":-59.9842529296875},\"rot\":{\"x\":0.0208138879388571,\"y\":270.010620117188,\"z\":0.0167719721794128}},\"d01288\":{\"lock\":false,\"pos\":{\"x\":-16.6233234405518,\"y\":1.35921192169189,\"z\":-70.2738494873047},\"rot\":{\"x\":0.0208166427910328,\"y\":269.999420166016,\"z\":0.0167679861187935}},\"dde8a8\":{\"lock\":false,\"pos\":{\"x\":-16.6228141784668,\"y\":1.35726404190063,\"z\":-76.9289321899414},\"rot\":{\"x\":0.0208161640912294,\"y\":269.999725341797,\"z\":0.016768041998148}},\"f01f56\":{\"lock\":false,\"pos\":{\"x\":-19.2958545684814,\"y\":1.31220149993896,\"z\":-69.0606842041016},\"rot\":{\"x\":0.0208088848739862,\"y\":270.000122070313,\"z\":0.0167712066322565}},\"f0b6f4\":{\"lock\":false,\"pos\":{\"x\":-16.6233520507813,\"y\":1.35993504524231,\"z\":-67.803825378418},\"rot\":{\"x\":0.0208160504698753,\"y\":269.999847412109,\"z\":0.0167683139443398}},\"ff2498\":{\"lock\":false,\"pos\":{\"x\":-22.6156692504883,\"y\":1.31099128723145,\"z\":-69.0755920410156},\"rot\":{\"x\":0.0167712494730949,\"y\":180.000106811523,\"z\":359.979187011719}},\"fffb0c\":{\"lock\":false,\"pos\":{\"x\":-22.6157398223877,\"y\":1.30868756771088,\"z\":-76.9460220336914},\"rot\":{\"x\":0.0167720932513475,\"y\":180.002090454102,\"z\":359.979187011719}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Touhou Project Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -35.72 - posY: 1.97 - posZ: -126.28 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.75 - scaleY: 0.37 - scaleZ: 1.92 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Weird West Custom Investigators 58ddca.ttslua b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Weird West Custom Investigators 58ddca.ttslua deleted file mode 100644 index a3a97dfd8..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Weird West Custom Investigators 58ddca.ttslua +++ /dev/null @@ -1,22 +0,0 @@ -function onload(saved_data) - createDownloadButton() -end - - ---Beginning Setup - - ---Make Download button -function createDownloadButton() - self.createButton({ - label="Download", click_function="buttonClick_download", function_owner=self, - position={0,0.1,2.2}, rotation={0,0,0}, height=240, width=800, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by download button, -function buttonClick_download() - local params = { url = self.getGMNotes(), replace = self.guid } - Global.call('placeholder_download', params) -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Weird West Custom Investigators 58ddca.yaml b/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Weird West Custom Investigators 58ddca.yaml deleted file mode 100644 index 1c4a3ef75..000000000 --- a/unpacked/Custom_Model_Bag Community-Created Player CardsInvestigators ed4ca7/Custom_Model Weird West Custom Investigators 58ddca.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1697276706767572704/331469F5EAD01108E83C7662B9949F4AC3D00313/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: Created by Samirashul -DragSelectable: true -GMNotes: fancreations/investigators_weird_west.json -GUID: 58ddca -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Weird West Custom Investigators 58ddca.ttslua' -LuaScriptState: "{\"ml\":{\"05e2c0\":{\"lock\":false,\"pos\":{\"x\":-26.3001842498779,\"y\":1.47353863716125,\"z\":-76.9456405639648},\"rot\":{\"x\":0.0208083260804415,\"y\":270.001403808594,\"z\":180.01676940918}},\"09ad66\":{\"lock\":false,\"pos\":{\"x\":-22.615743637085,\"y\":1.30868756771088,\"z\":-76.9460296630859},\"rot\":{\"x\":0.0208102352917194,\"y\":269.995422363281,\"z\":0.0167690441012383}},\"3212ba\":{\"lock\":false,\"pos\":{\"x\":-22.7136993408203,\"y\":1.30798888206482,\"z\":-79.2113952636719},\"rot\":{\"x\":0.0208046901971102,\"y\":270.013366699219,\"z\":0.0167759861797094}},\"4a4add\":{\"lock\":false,\"pos\":{\"x\":-22.7518444061279,\"y\":1.31493735313416,\"z\":-55.4262008666992},\"rot\":{\"x\":0.0208011120557785,\"y\":270.025115966797,\"z\":0.0167802777141333}},\"560bdb\":{\"lock\":false,\"pos\":{\"x\":-22.6168918609619,\"y\":1.3063827753067,\"z\":-84.818489074707},\"rot\":{\"x\":0.0208111274987459,\"y\":269.991058349609,\"z\":0.0167677570134401}},\"598416\":{\"lock\":false,\"pos\":{\"x\":-26.3000087738037,\"y\":1.48041987419128,\"z\":-53.4368515014648},\"rot\":{\"x\":0.0208082254976034,\"y\":270.000610351563,\"z\":180.01676940918}},\"60c34e\":{\"lock\":false,\"pos\":{\"x\":-22.6686191558838,\"y\":1.30925226211548,\"z\":-74.9513778686523},\"rot\":{\"x\":0.0208004489541054,\"y\":270.027587890625,\"z\":0.0167813859879971}},\"652771\":{\"lock\":false,\"pos\":{\"x\":-22.6169414520264,\"y\":1.31328415870667,\"z\":-61.2413673400879},\"rot\":{\"x\":0.0208116583526134,\"y\":269.990875244141,\"z\":0.0167675074189901}},\"6a79ce\":{\"lock\":false,\"pos\":{\"x\":-22.7609882354736,\"y\":1.31608760356903,\"z\":-51.4852142333984},\"rot\":{\"x\":0.0208025313913822,\"y\":270.020202636719,\"z\":0.0167785175144672}},\"6a93db\":{\"lock\":false,\"pos\":{\"x\":-19.3000030517578,\"y\":1.31677353382111,\"z\":-53.4358215332031},\"rot\":{\"x\":0.02080830745399,\"y\":270.000762939453,\"z\":0.0167714785784483}},\"701c64\":{\"lock\":false,\"pos\":{\"x\":-26.300142288208,\"y\":1.50220584869385,\"z\":-61.2409629821777},\"rot\":{\"x\":0.0208188965916634,\"y\":269.965393066406,\"z\":180.01676940918}},\"730956\":{\"lock\":false,\"pos\":{\"x\":-19.3000602722168,\"y\":1.31449115276337,\"z\":-61.2332382202148},\"rot\":{\"x\":0.0208089556545019,\"y\":269.998840332031,\"z\":0.0167708117514849}},\"805c5d\":{\"lock\":false,\"pos\":{\"x\":-22.7589092254639,\"y\":1.3069132566452,\"z\":-82.8301010131836},\"rot\":{\"x\":0.0208124294877052,\"y\":269.987060546875,\"z\":0.0167664363980293}},\"80c874\":{\"lock\":false,\"pos\":{\"x\":-22.5390548706055,\"y\":1.31388795375824,\"z\":-59.2751998901367},\"rot\":{\"x\":0.0208148751407862,\"y\":269.978088378906,\"z\":0.0167632009834051}},\"8782a0\":{\"lock\":false,\"pos\":{\"x\":-22.7289066314697,\"y\":1.31035208702087,\"z\":-71.1191024780273},\"rot\":{\"x\":0.0208046063780785,\"y\":270.013366699219,\"z\":0.0167760066688061}},\"8903f5\":{\"lock\":false,\"pos\":{\"x\":-22.7560520172119,\"y\":1.31155574321747,\"z\":-66.9736251831055},\"rot\":{\"x\":0.0208087116479874,\"y\":269.998748779297,\"z\":0.0167708247900009}},\"a0221f\":{\"lock\":false,\"pos\":{\"x\":-26.3001880645752,\"y\":1.47584664821625,\"z\":-69.0605850219727},\"rot\":{\"x\":0.0208174251019955,\"y\":269.968963623047,\"z\":180.01676940918}},\"a98e88\":{\"lock\":false,\"pos\":{\"x\":-22.6028499603271,\"y\":1.31268572807312,\"z\":-63.3029747009277},\"rot\":{\"x\":0.0208002626895905,\"y\":270.028137207031,\"z\":0.0167814139276743}},\"ad33a4\":{\"lock\":false,\"pos\":{\"x\":-22.6156806945801,\"y\":1.31099140644073,\"z\":-69.0756072998047},\"rot\":{\"x\":0.020808132365346,\"y\":270.002166748047,\"z\":0.0167719703167677}},\"be922f\":{\"lock\":false,\"pos\":{\"x\":-22.7915019989014,\"y\":1.30566263198853,\"z\":-87.0623779296875},\"rot\":{\"x\":0.0208004154264927,\"y\":270.027099609375,\"z\":0.0167809296399355}},\"beae03\":{\"lock\":false,\"pos\":{\"x\":-22.613883972168,\"y\":1.31556940078735,\"z\":-53.4381103515625},\"rot\":{\"x\":0.0208098795264959,\"y\":269.995910644531,\"z\":0.0167693924158812}},\"caefe0\":{\"lock\":false,\"pos\":{\"x\":-19.2935924530029,\"y\":1.30989539623261,\"z\":-76.941535949707},\"rot\":{\"x\":0.0208082757890224,\"y\":270.0009765625,\"z\":0.0167715456336737}},\"cd9447\":{\"lock\":false,\"pos\":{\"x\":-26.2995929718018,\"y\":1.47123456001282,\"z\":-84.8179931640625},\"rot\":{\"x\":0.0208129994571209,\"y\":269.984710693359,\"z\":180.01676940918}},\"db4063\":{\"lock\":false,\"pos\":{\"x\":-19.2958602905273,\"y\":1.31220149993896,\"z\":-69.0606918334961},\"rot\":{\"x\":0.0208044555038214,\"y\":270.014404296875,\"z\":0.0167763326317072}},\"f49f9a\":{\"lock\":false,\"pos\":{\"x\":-19.299768447876,\"y\":1.30758762359619,\"z\":-84.8181686401367},\"rot\":{\"x\":0.0208086315542459,\"y\":270.000061035156,\"z\":0.0167712438851595}}}}\r" -MeasureMovement: false -Name: Custom_Model -Nickname: Weird West Custom Investigators -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 2.01 - posZ: 81.01 - rotX: 359.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.36 - scaleY: 0.28 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Curse tokens bd0253.yaml b/unpacked/Custom_Model_Bag Curse tokens bd0253.yaml deleted file mode 100644 index fa7bb9488..000000000 --- a/unpacked/Custom_Model_Bag Curse tokens bd0253.yaml +++ /dev/null @@ -1,74 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -Bag: - Order: 0 -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -ContainedObjects: -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -- !include 'Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml' -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1655601092778633181/7A00AF905BCD6EB5D866F2107CECBC0A49E360F7/ - MaterialIndex: 3 - MeshURL: https://pastebin.com/raw/ALrYhQGb - NormalURL: '' - TypeIndex: 6 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: bd0253 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: true -LuaScript: '' -LuaScriptState: '' -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Custom_Model_Bag -Nickname: Curse tokens -Snap: true -Sticky: true -Tags: -- displacement_excluded -Tooltip: true -Transform: - posX: -50.57 - posY: 1.75 - posZ: -1.21 - rotX: 359.92 - rotY: 270.0 - rotZ: 0.02 - scaleX: 0.7 - scaleY: 0.7 - scaleZ: 0.7 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38.yaml index f42a3e78f..a89ec0cf5 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 + b: 1 g: 0.99216 - r: 1.0 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e.yaml' @@ -16,6 +16,8 @@ ContainedObjects: Selector 8112ff.yaml' - !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Lucky Penny 2ab443.yaml' +- !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums + b2077d.yaml' - !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Double-Sided Resource bc81cb.yaml' - !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase @@ -24,6 +26,12 @@ ContainedObjects: Helper 2547b3.yaml' - !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.yaml' +- !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Subject 5U-21 + Helper 1335e8.yaml' +- !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Auto-fail Counter + a9a321.yaml' +- !include 'Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Elder Sign Counter + e62cb5.yaml' CustomMesh: CastShadows: true ColliderURL: '' @@ -35,7 +43,7 @@ CustomMesh: g: 0.8117647 r: 0.8745098 SpecularIntensity: 0.08 - SpecularSharpness: 5.0 + SpecularSharpness: 5 DiffuseURL: http://i.imgur.com/ukWGram.png MaterialIndex: 1 MeshURL: http://pastebin.com/raw/U9C5Ymds @@ -69,9 +77,9 @@ Transform: posX: -60.59 posY: 1.53 posZ: -75.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.9 scaleY: 0.85 scaleZ: 0.9 diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d.yaml similarity index 82% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d.yaml rename to unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d.yaml index a94e72e79..a093ff97d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Bag Secret Objectives & Ultimatums b2077d/Deck 5f3cba.yaml' - !include 'Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE SECRET OBJ. @@ -38,14 +38,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -9.0 - posY: 1.3 - posZ: -55.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posX: -37.16 + posY: 2.83 + posZ: -112.79 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Deck 1e8a13.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Deck 1e8a13.yaml similarity index 87% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Deck 1e8a13.yaml rename to unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Deck 1e8a13.yaml index c230c0c52..679f6d175 100644 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Deck 1e8a13.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Deck 1e8a13.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.71324 @@ -9,9 +9,9 @@ ColorDiffuse: r: 0.71324 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -50,18 +50,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33101 ColorDiffuse: @@ -100,18 +100,18 @@ ContainedObjects: posX: 7.354 posY: 1.152 posZ: 2.884 - rotX: 0.0 - rotY: 180.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 1 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -150,18 +150,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -200,18 +200,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -250,18 +250,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -300,18 +300,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -350,18 +350,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -400,18 +400,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -450,18 +450,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -500,18 +500,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -550,18 +550,18 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33111 ColorDiffuse: @@ -600,12 +600,12 @@ ContainedObjects: posX: 7.158 posY: 1.231 posZ: 2.808 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 359 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' CustomDeck: @@ -654,11 +654,11 @@ Transform: posX: 14.37 posY: 3.61 posZ: -31.02 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Deck 5f3cba.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Deck 5f3cba.yaml similarity index 87% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Deck 5f3cba.yaml rename to unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Deck 5f3cba.yaml index cb6b574e6..1c9b6645b 100644 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Deck 5f3cba.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Deck 5f3cba.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.71324 @@ -9,9 +9,9 @@ ColorDiffuse: r: 0.71324 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -50,18 +50,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33001 ColorDiffuse: @@ -100,18 +100,18 @@ ContainedObjects: posX: -5.625 posY: 1.171 posZ: 0.319 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -150,18 +150,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -200,18 +200,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -250,18 +250,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -300,18 +300,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -350,18 +350,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -400,18 +400,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -450,18 +450,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -500,18 +500,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -550,18 +550,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -600,18 +600,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -650,18 +650,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -700,18 +700,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -750,18 +750,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -800,18 +800,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -850,18 +850,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -900,18 +900,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -950,18 +950,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1000,18 +1000,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1050,18 +1050,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1100,18 +1100,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1150,18 +1150,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1200,18 +1200,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1250,18 +1250,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1300,18 +1300,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1350,18 +1350,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1400,18 +1400,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1450,18 +1450,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1500,18 +1500,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1550,18 +1550,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1600,18 +1600,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1650,18 +1650,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33034 ColorDiffuse: @@ -1700,18 +1700,18 @@ ContainedObjects: posX: -0.326 posY: 1.032 posZ: -3.647 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 33033 ColorDiffuse: @@ -1750,12 +1750,12 @@ ContainedObjects: posX: -0.481 posY: 1.176 posZ: -3.573 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' CustomDeck: @@ -1827,11 +1827,11 @@ Transform: posX: 16.5 posY: 3.61 posZ: -39.14 - rotX: 357.0 - rotY: 270.0 - rotZ: 185.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 357 + rotY: 270 + rotZ: 185 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE SECRET OBJ. f3dfc9.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE SECRET OBJ. f3dfc9.yaml similarity index 83% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE SECRET OBJ. f3dfc9.yaml rename to unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE SECRET OBJ. f3dfc9.yaml index 8018ed0b6..9d33433c8 100644 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE SECRET OBJ. f3dfc9.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE SECRET OBJ. f3dfc9.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: ' @@ -38,11 +38,11 @@ Transform: posX: 17.18 posY: 3.59 posZ: -38.82 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 90 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE ULTIMATUMS ed4645.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE ULTIMATUMS ed4645.yaml similarity index 83% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE ULTIMATUMS ed4645.yaml rename to unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE ULTIMATUMS ed4645.yaml index 7aa0c5a77..0a9d1cb9c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE ULTIMATUMS ed4645.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Bag Secret Objectives & Ultimatums b2077d/Notecard HOW TO USE ULTIMATUMS ed4645.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: ' At the start of each scenario, investigators may collectively choose to draw a random @@ -34,11 +34,11 @@ Transform: posX: 13.5 posY: 3.57 posZ: -31.3 - rotX: 336.0 - rotY: 87.0 - rotZ: 7.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 336 + rotY: 87 + rotZ: 7 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.ttslua b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.ttslua index cf8aa7716..4753dd08d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.ttslua +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.ttslua @@ -45,15 +45,6 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("core/CustomDataHelper") end) __bundle_register("core/CustomDataHelper", function(require, _LOADED, __bundle_register, __bundle_modules) --- set true to enable debug logging -DEBUG = false - -function log(message) - if DEBUG then - print(message) - end -end - --[[ Known locations and clues. We check this to determine if we should atttempt to spawn clues, first we look for _ and if diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.yaml index f763c18cb..315cb659e 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Custom Data Helper 2547b3.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: b: 0.339915335 g: 0.507659256 r: 0.7222887 SpecularIntensity: 0.4 - SpecularSharpness: 7.0 + SpecularSharpness: 7 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/254843371583187306/6844B833AD55B9A34095067B201B311E1348325F/ MaterialIndex: 2 MeshURL: http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/ @@ -47,9 +47,9 @@ Transform: posX: 30.16 posY: 4.16 posZ: -21.52 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.5 scaleY: 0.5 scaleZ: 0.5 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Lucky Penny 2ab443.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Lucky Penny 2ab443.yaml index abfc1898f..fad1ea839 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Lucky Penny 2ab443.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model Lucky Penny 2ab443.yaml @@ -1,24 +1,24 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: https://www.dropbox.com/s/wyu6zud8r8ewqnt/Coin.obj?dl=1 Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: https://www.dropbox.com/s/g0c0hdqw5w3q1an/Blursed-Coin-Faces.png?dl=1 MaterialIndex: 3 MeshURL: https://www.dropbox.com/s/wyu6zud8r8ewqnt/Coin.obj?dl=1 @@ -47,9 +47,9 @@ Transform: posX: 29.59 posY: 4.09 posZ: -21.08 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.3 scaleY: 0.3 scaleZ: 0.3 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e.yaml index e8c36fbaa..5ae091b69 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag For Other Fan Content 7f8782.yaml' @@ -25,13 +25,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1786216803655030730/FB25E1090FC3F69A55E021CB1A31B64FBB50BD23/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -62,9 +62,9 @@ Transform: posX: -27.38 posY: 2.5 posZ: -27.94 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.2 scaleY: 1.2 scaleZ: 1.2 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag For Other Fan Content 7f8782.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag For Other Fan Content 7f8782.yaml index 6c5ff87de..51eade282 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag For Other Fan Content 7f8782.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag For Other Fan Content 7f8782.yaml @@ -1,46 +1,46 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826278/41B14E1673F5F709A93FDAF0F142B53E18AEA3C9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127641434/3B605FA81140800D2929A2F4FC605C61113815ED/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -61,24 +61,24 @@ ContainedObjects: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826516/584635E992B674121F4E8C62F1CA259D8D33A9C2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127641670/CAB545E928EDC617CA1314223774D88A2CFA2E19/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -103,10 +103,10 @@ ContainedObjects: posY: 0.960002661 posZ: -2.48673582 rotX: -2.41597045e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.29868076e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -116,33 +116,33 @@ ContainedObjects: posX: 23.243 posY: 1.971 posZ: -4.644 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826334/69C1571BD3ED38E6837B38FC2A9784C90D6686EA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127641507/8115C513A8A814EB45C429400A4E9679A4AA27C7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -163,24 +163,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127589908/773A07E5D19FAFDA6AF71CEBC069175C769EF9ED/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588327/419EF2D650774CCB0500C73CFC43AC77D234747F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -208,7 +208,7 @@ ContainedObjects: rotY: 270.756348 rotZ: 349.5606 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -218,33 +218,33 @@ ContainedObjects: posX: 21.879 posY: 1.971 posZ: -4.199 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826572/5AB6F8CD81E839C6CFD9555918A3E264300CBF04/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127642047/17C45A9A42806A38F1B15D4358DDA48258D819C4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -265,24 +265,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127590872/69AEF24314609C572C8EC2443582BE04F2186806/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588477/F570ACBA35CB2F916284EFF8F671646235DA822C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -310,7 +310,7 @@ ContainedObjects: rotY: 270.0128 rotZ: 356.5814 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -320,33 +320,33 @@ ContainedObjects: posX: 20.017 posY: 1.971 posZ: -4.015 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826462/33429FB27677A30F054B0ACF868F9CB80879046C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127641618/DCD566DE13398919BD5F836857CCE5E1B15A4D7A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -367,24 +367,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127593415/FA319D0449914FDED7A263FBECEF3FA4714C1905/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588525/D4FA9699B6ED018ED996622689AD6384CA7833D2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -412,7 +412,7 @@ ContainedObjects: rotY: 270.00824 rotZ: 0.000190097417 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -422,33 +422,33 @@ ContainedObjects: posX: 19.494 posY: 1.971 posZ: -4.498 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826516/584635E992B674121F4E8C62F1CA259D8D33A9C2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127641670/CAB545E928EDC617CA1314223774D88A2CFA2E19/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -469,24 +469,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826278/41B14E1673F5F709A93FDAF0F142B53E18AEA3C9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127641434/3B605FA81140800D2929A2F4FC605C61113815ED/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -514,7 +514,7 @@ ContainedObjects: rotY: 180.000015 rotZ: -8.925218e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -524,33 +524,33 @@ ContainedObjects: posX: 24.617 posY: 1.971 posZ: -1.601 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127826395/B3FDC858139FA6C9554725D93DDB9DCFB9D5B29D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127641576/396D35B8A84FBE0C49EEFAE98BD94E15A277FB88/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -574,28 +574,28 @@ ContainedObjects: posX: 23.641 posY: 1.971 posZ: -0.706 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127783438/7915A66641DDEEC59738335A0569F7BAECFA5709/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127783370/C8476BFEDBE29BCB732F8B405EB4C3EE690F6407/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -616,19 +616,19 @@ ContainedObjects: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.4572487 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127785929/29B7336804A600EE42390063183E9F387A8CC5E6/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127785872/67138C40F1DE5CE32201F2C85003B8FE670F1604/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -666,28 +666,28 @@ ContainedObjects: posX: 20.774 posY: 2.067 posZ: -1.265 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127784126/6CF27249FEF4F54E8DAD96DA6C3A3BBD24756AF0/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127784053/AA580BC3F93E7E83936844AFCBAC40CC0EE563C1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -711,28 +711,28 @@ ContainedObjects: posX: 17.915 posY: 2.528 posZ: -0.451 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127785226/0CBE7413D09EF71C304561E69D488973B2675AE4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127785008/9650915EDD064263792CFBD6711E037764ECA60E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -756,28 +756,28 @@ ContainedObjects: posX: 26.122 posY: 2.067 posZ: 1.909 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127784614/C1212DA66187F0A55704B0296256EB1F870C74F6/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127784553/636A86A9E948668712A9061BE31FA9E43BB1098B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -801,28 +801,28 @@ ContainedObjects: posX: 25.097 posY: 2.067 posZ: 2.043 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127785929/29B7336804A600EE42390063183E9F387A8CC5E6/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127785872/67138C40F1DE5CE32201F2C85003B8FE670F1604/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -843,19 +843,19 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.4572487 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127783438/7915A66641DDEEC59738335A0569F7BAECFA5709/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127783370/C8476BFEDBE29BCB732F8B405EB4C3EE690F6407/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -893,28 +893,28 @@ ContainedObjects: posX: 23.563 posY: 2.067 posZ: 1.685 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127786535/1374F15B948BFAFDE4DAD8140DC8DDD8BD509C87/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127786470/DF776DA59AEB125A32EF513421DB73B525CBAFAB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -938,9 +938,9 @@ ContainedObjects: posX: 19.552 posY: 2.067 posZ: 0.949 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 @@ -971,12 +971,12 @@ ContainedObjects: posX: 4.713 posY: 2.86 posZ: -4.792 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' Description: '' @@ -1004,11 +1004,11 @@ Transform: posX: 0.32 posY: 1.99 posZ: 0.16 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499.yaml index 026ceec96..7556a2e7d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.70196 g: 0.12265 - r: 0.0 + r: 0 ContainedObjects: - !include 'Bag Stands 74d499/Bag Alternatives 5b8959.yaml' - !include 'Bag Stands 74d499/Bag Barkham Investigators ffb761.yaml' @@ -94,11 +94,11 @@ Transform: posX: -1.25 posY: 1.99 posZ: 1.39 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959.yaml index 6a24f1a22..fb812e53f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: @@ -41,11 +41,11 @@ Transform: posX: 16.49 posY: 1.79 posZ: -16.11 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ashcan Pete bc2b80.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ashcan Pete bc2b80.yaml index e49e581c2..bd0b57518 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ashcan Pete bc2b80.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ashcan Pete bc2b80.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351080114/4D8203AF383B01CB7B302EFF49FC629C5AA11146/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351080066/13060798A5F3A894615E557FD8BBA2D687F3B8A2/ - WidthScale: 0.0 + WidthScale: 0 Description: Duke has been Sacrificed DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329268 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351205737/06E479385625E40513318FA7B65A3BB43B6C51CE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351205658/F4C9CEA767EB7EBFFA249DDEBA9961534C4FD0F9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 14.13 posY: 2.87 posZ: 2.76 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Duke 66a610.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Duke 66a610.yaml index 8e37daeeb..e40a72c25 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Duke 66a610.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Duke 66a610.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351095851/70F53C72CA6DE8070E52CA366CBB7B80264BF5B6/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351095787/538D7D90695B47562A96E19B4F47482429CF6EBF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329268 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351205900/3CD8AF69B384FB0B45BDDBC6C87748DA201D7C19/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351205842/2D2DF3A1166FB07C46B4265CC67AC3B49381FB6F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 3.19 posY: 3.12 posZ: -6.71 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Lily Chen (Quadwield) 62c3f3.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Lily Chen (Quadwield) 62c3f3.yaml index 3b87ee6cb..cc1dda338 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Lily Chen (Quadwield) 62c3f3.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Lily Chen (Quadwield) 62c3f3.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632852164/122AAC50A71B7D18F294A9BD89CD7ADCD4137BEC/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632852099/C6688E9A7DCB0639E5EA9A94A933117BE3D91406/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292681 - g: 0.0 + g: 0 r: 0.170584649 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632852799/B987558D827908D8E682E56B4E375FB80114B4C9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632852747/E5EE8542C7B2AF711792A707E05B4E897FF91A74/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 11.35 posY: 3.57 posZ: -9.35 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Norman Withers 84b0e7.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Norman Withers 84b0e7.yaml index b35ccdbcc..81e218157 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Norman Withers 84b0e7.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Norman Withers 84b0e7.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124480/072CCD17AAD9F44762EFB20DA674642F5D66958C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124438/5F3C01090BFF6D46E19F15A41359A7F8AFC809AF/ - WidthScale: 0.0 + WidthScale: 0 Description: Novella DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961678 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112131/81797D3C3350D506C21AFE126DEEECC4EDDC574F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112089/1C1F3DC7EC4D5A03C8A5991D1940DD873521B063/ - WidthScale: 0.0 + WidthScale: 0 Description: Novella DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 7.54 posY: 3.13 posZ: 1.32 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Sister of Battle Mary 8d2a57.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Sister of Battle Mary 8d2a57.yaml index 486971bab..32f337e4c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Sister of Battle Mary 8d2a57.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Sister of Battle Mary 8d2a57.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534350346256/CC27F5FD13BD3C0EE00298D3448F2132B07D2F59/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534350341026/33A1107FCBE63B79954F6233949CCD92075E8168/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3257833 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351206055/6177641413E66D4DC5088B9FAC86C421999A50D9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351222568/AA5B1E986CA44C9A16A52D159FB81F2C1C9A3FCF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -0.34 posY: 3.12 posZ: -6.59 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ursula Downs dc366b.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ursula Downs dc366b.yaml index 702728fc7..ef5db2f02 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ursula Downs dc366b.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Alternatives 5b8959/Figurine_Custom Ursula Downs dc366b.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351027159/2DBB796009E69901F3C1D1B8473BB3672936A415/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351027111/EC77E0839D2BF35011E726F6B056C604B1BC0957/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961648 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351206144/BF48660D48BA4D7E209EB1C77314516200863872/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351206096/3EBB1E7FBDB4A0E73B5EDC9270115DC7BD37BCDE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 0.94 posY: 3.14 posZ: -6.6 - rotX: 0.0 - rotY: 0.0 - rotZ: 359.0 + rotX: 0 + rotY: 0 + rotZ: 359 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761.yaml index 9efcd61ea..080bd03ec 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: @@ -40,11 +40,11 @@ Transform: posX: 6.27 posY: 1.79 posZ: -11.9 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Bark Harrigan c971c3.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Bark Harrigan c971c3.yaml index 219c5c2e8..a6a882445 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Bark Harrigan c971c3.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Bark Harrigan c971c3.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122033/EA0943FD858FD7EF1188ED6363B997D9CFB7F6E4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343121985/B74860D47613A5F110FD86E2D760C660C560347C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3257835 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109744/C48F56B459C4D7DA169C75B638C88096C7B0D142/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109705/5CBC385554F9CD0389E2A07743EECD5D35409198/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -1.56 posY: 3.14 posZ: -5.62 - rotX: 359.0 - rotY: 90.0 - rotZ: 1.0 + rotX: 359 + rotY: 90 + rotZ: 1 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Duke 0a4876.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Duke 0a4876.yaml index 9edcb95f0..4f9be1d07 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Duke 0a4876.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Duke 0a4876.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122497/B3DB3D61DCE74E7076DDA6AB6B3FF7DBC6CA5A87/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122453/D6DAFCA7AA289916A6EAAF69E0B08D4B55D57E17/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329267859 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110221/4D271515C4BDE28EE6ACAB84479097C6B872F3A1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110177/D5B45888598DE6C803A741BDB2285BEEC1089001/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -1.09 posY: 3.13 posZ: -5.44 - rotX: 1.0 - rotY: 0.0 - rotZ: 359.0 + rotX: 1 + rotY: 0 + rotZ: 359 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Jacqueline Canine 370dc2.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Jacqueline Canine 370dc2.yaml index bdb11458e..597d1914d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Jacqueline Canine 370dc2.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Jacqueline Canine 370dc2.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123015/87E6EBB0756C3E964B6F238DA3E6BBD99881EFCD/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122972/496A614B7D0455E6E1FE7FEB4DFF8C6A6A748C98/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292678 - g: 0.0 + g: 0 r: 0.170584351 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110712/9758DCD708860BB091FB1C11B77D4F8864DB45B0/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110669/A0661C0A60E2112B2AACD1C24396BDD40B89C300/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -1.24 posY: 3.14 posZ: -5.54 - rotX: 0.0 - rotY: 0.0 - rotZ: 359.0 + rotX: 0 + rotY: 0 + rotZ: 359 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Kate Winthpup b4eab6.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Kate Winthpup b4eab6.yaml index b590e8005..82f6dc504 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Kate Winthpup b4eab6.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Kate Winthpup b4eab6.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125925/26224E51EFC07F9A4359A2BEC39F1AE13A5D5029/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125883/E2B1FFEDE8317BD06F54857DFB745FC7A5672740/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961738 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113695/336E479B2D4CFBB13BCF6727A02ABD9213EAB8F5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113660/4DAA98F00C8E46A7A3F4DFA1B9422201EB7C64CC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -1.48 posY: 3.11 posZ: -5.03 - rotX: 2.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 2 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Skids O'Droole b7c253.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Skids O'Droole b7c253.yaml index fc5d8fd40..906234c00 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Skids O'Droole b7c253.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag Barkham Investigators ffb761/Figurine_Custom Skids O'Droole b7c253.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124568/678199B54EDC3EF4494A91B1C2178A180213A7BE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124527/8BD07B46684E9D56DBA93454BD516F41313D46C9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800737 r: 0.08509361 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112225/1548F58B35A11B751C99FF7D2CA936642BAE301F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112175/10140B73067B90C02617F05014D138D39E76E9B4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -1.4 posY: 3.14 posZ: -5.52 - rotX: 0.0 - rotY: 181.0 - rotZ: 359.0 + rotX: 0 + rotY: 181 + rotZ: 359 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5.yaml index 31b158af2..24dec3bf5 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: @@ -43,11 +43,11 @@ Transform: posX: 4.14 posY: 3.24 posZ: -16.33 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Gavriella Mizrah 58e76c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Gavriella Mizrah 58e76c.yaml index 790a44c5f..53e3c42d6 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Gavriella Mizrah 58e76c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Gavriella Mizrah 58e76c.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.59408 g: 0.59408 r: 0.59408 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122673/7A6A0F30F2D7CF2F8F33548DE0EF94D4443F2952/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122636/CCA770E23817DB041A752079D020341C3392A9B0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.162020653 g: 0.162020653 r: 0.162020653 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110415/1F049FB52103B0A63A68EAD64AA4942C290440B9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110365/607CFC0994A129AC8452F0A6FD2BE17609E73573/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -1.25 posY: 2.94 posZ: -8.38 - rotX: 1.0 - rotY: 359.0 - rotZ: 1.0 + rotX: 1 + rotY: 359 + rotZ: 1 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Jerome Davids 4eebfc.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Jerome Davids 4eebfc.yaml index bc633cb17..8c0406019 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Jerome Davids 4eebfc.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Jerome Davids 4eebfc.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.59408 g: 0.59408 r: 0.59408 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123355/7A11BAC58DD612E7158C8842C8AFE0BF3D8C90FB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123311/601F1BAC6250D2BE1D2D8C635246778D098FF1C6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.162020624 g: 0.162020624 r: 0.162020624 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111005/348A8E2F0446D09998C1D72E999C9ED25D992433/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110959/47D5246EE230991A1352CE0743B10168A9ECB586/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -0.77 posY: 3.12 posZ: -9.73 - rotX: 357.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 357 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Penny White 45d884.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Penny White 45d884.yaml index 8af54cf38..f00572901 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Penny White 45d884.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Penny White 45d884.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.59408 g: 0.59408 r: 0.59408 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124733/E87E89DE233547010A2303714F65A67CE1599169/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124689/3BD7F394964F51DE2342BB163110083CA9389E0A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.162020624 g: 0.162020624 r: 0.162020624 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112424/E2171B84B8D68AC259E83DB8AF0D8315DED7D34A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112380/E232D3010841C5E757778F8F6D032863DAB2FC9F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -0.94 posY: 3.14 posZ: -9.12 - rotX: 1.0 - rotY: 255.0 - rotZ: 359.0 + rotX: 1 + rotY: 255 + rotZ: 359 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Valentino Rivas 2b5c11.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Valentino Rivas 2b5c11.yaml index c6e2cd047..7fb9d99f6 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Valentino Rivas 2b5c11.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The Circle Undone Prologue Investigators 36c3f5/Figurine_Custom Valentino Rivas 2b5c11.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.59408 g: 0.59408 r: 0.59408 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125728/A01F2688903AF1F172EA8F6E35C197BF080CA3FD/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125669/07A11B3AA9B849680D17A3ACA41C374F29EEB2DF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.162020653 g: 0.162020653 r: 0.162020653 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113519/BADB45B19BB567E328DDEAB0B58B978946B6936B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113479/EA4B290E0CCFB030C9D1B50061A95B1D2A975E88/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -0.46 posY: 3.14 posZ: -9.59 - rotX: 359.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 359 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120.yaml index 4f74b340c..babb54f4d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: @@ -47,11 +47,11 @@ Transform: posX: 4.85 posY: 3.27 posZ: -16.44 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 01d035.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 01d035.yaml index e60aac142..364ab1e3a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 01d035.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 01d035.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126008/5F98DD009140C4BD39E4461593131568BC871913/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125963/C651F00D5A3DEEA70C450B496E271C6708710BE8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.325783521 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113771/369BEF14B41868A935F9AE48A36B6A31B3C84112/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113735/A56ABCAA1194E052A0A976A7CF57CCD1D95BA5A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -3.19 posY: 3.1 posZ: -6.39 - rotX: 1.0 - rotY: 0.0 - rotZ: 1.0 + rotX: 1 + rotY: 0 + rotZ: 1 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 21dca1.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 21dca1.yaml index fb20ecf50..a8509cf23 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 21dca1.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 21dca1.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126008/5F98DD009140C4BD39E4461593131568BC871913/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125963/C651F00D5A3DEEA70C450B496E271C6708710BE8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.2519618 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113771/369BEF14B41868A935F9AE48A36B6A31B3C84112/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113735/A56ABCAA1194E052A0A976A7CF57CCD1D95BA5A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -2.92 posY: 3.14 posZ: -7.03 - rotX: 0.0 - rotY: 0.0 - rotZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 1 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 2574ee.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 2574ee.yaml index 3b3ff9561..d590b8790 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 2574ee.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 2574ee.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126008/5F98DD009140C4BD39E4461593131568BC871913/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125963/C651F00D5A3DEEA70C450B496E271C6708710BE8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.329267919 - g: 0.0 + g: 0 r: 0.17058447 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113771/369BEF14B41868A935F9AE48A36B6A31B3C84112/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113735/A56ABCAA1194E052A0A976A7CF57CCD1D95BA5A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -2.73 posY: 3.14 posZ: -6.97 - rotX: 0.0 - rotY: 135.0 - rotZ: 0.0 + rotX: 0 + rotY: 135 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 458fc8.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 458fc8.yaml index 6d461e103..19e44bca2 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 458fc8.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 458fc8.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.59408 g: 0.59408 r: 0.59408 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126008/5F98DD009140C4BD39E4461593131568BC871913/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125963/C651F00D5A3DEEA70C450B496E271C6708710BE8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.162020653 g: 0.162020653 r: 0.162020653 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113771/369BEF14B41868A935F9AE48A36B6A31B3C84112/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113735/A56ABCAA1194E052A0A976A7CF57CCD1D95BA5A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 16.12 posY: 2.46 posZ: -5.57 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 531452.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 531452.yaml index 4426fd7f4..7074d7d46 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 531452.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian 531452.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126008/5F98DD009140C4BD39E4461593131568BC871913/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125963/C651F00D5A3DEEA70C450B496E271C6708710BE8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800856 r: 0.0850936845 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113771/369BEF14B41868A935F9AE48A36B6A31B3C84112/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113735/A56ABCAA1194E052A0A976A7CF57CCD1D95BA5A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -2.65 posY: 3.14 posZ: -6.91 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian d4d93e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian d4d93e.yaml index 7bcd198f3..508f49e8f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian d4d93e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Bag The City of Archives (SPOILERS) 228120/Figurine_Custom Body of a Yithian d4d93e.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126008/5F98DD009140C4BD39E4461593131568BC871913/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125963/C651F00D5A3DEEA70C450B496E271C6708710BE8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329267949 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113771/369BEF14B41868A935F9AE48A36B6A31B3C84112/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113735/A56ABCAA1194E052A0A976A7CF57CCD1D95BA5A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 14.36 posY: 2.74 posZ: -7.04 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Agnes Baker 881def.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Agnes Baker 881def.yaml index 73fba9741..a92281abf 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Agnes Baker 881def.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Agnes Baker 881def.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898124/10924A4D4866357782DFB81FFB8D67C93F064F29/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898077/CB788C381652994294C25179935B1C9A43958EF9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.329268247 - g: 0.0 + g: 0 r: 0.1705848 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911264/8125422EA13893015B535ECA5730368BC422A508/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911213/3C50F1305A311942B242F56F1DF8DB6333F02EC0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 18.12 posY: 2.07 posZ: 17.11 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Akachi Onyele 073478.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Akachi Onyele 073478.yaml index d4824a567..dc5f9ef2e 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Akachi Onyele 073478.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Akachi Onyele 073478.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343160099/FCE303FB3866184962E30F7245071A06425095E2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343160053/79D9A0D7E71BB628AD26366761558E96AACA93CC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.329267979 - g: 0.0 + g: 0 r: 0.17058453 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343159970/075B54C1767060DD9A1AD24DB57938CCFDDD6585/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343159910/4DFE2B07BE7E50D2EA69FFEB40624CF542B5E0DE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 0.47 posY: 2.07 posZ: -5.73 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amanda Sharpe ef4a8b.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amanda Sharpe ef4a8b.yaml index 86a4d30bd..6b904887f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amanda Sharpe ef4a8b.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amanda Sharpe ef4a8b.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343121817/321366F4FBE2B24C8D692FDBF493A6D1B630D8A7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343121778/B9E73495E82666A9087D80DF78DF610AB0CEA287/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961678 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109555/08705215BB0218B22B2D2FBF3D870FE043CBF9DE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109504/E045893755B64DC1954A3EA2AB34212F56D195DC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 9.08 posY: 2.07 posZ: -4.57 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amina Zidane 347366.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amina Zidane 347366.yaml index 76bd0f559..d1a509694 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amina Zidane 347366.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Amina Zidane 347366.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632804138/3C7683C5652FF748E998DA47244ECD565E47A9F0/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632804057/78FE712C27FC15638C93ED390EA244DC24AD9D80/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.329268128 - g: 0.0 + g: 0 r: 0.170584679 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632804895/36BF0E4DF393735062A1097E8B5DEF0CBFF7FE50/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632804852/FC13F19097AB6B8CFF69D41F181DF5FE3B171487/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 19.26 posY: 2.07 posZ: -15.3 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ashcan Pete 78f659.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ashcan Pete 78f659.yaml index b85f9bb48..039a24c59 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ashcan Pete 78f659.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ashcan Pete 78f659.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343121899/0330056F163A97214EBEDBDA800BF186EEC0B8B7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343121862/DD3C4ACBC52C4FBD8C573B953ED0081B810FA878/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.3292681 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109656/54EBB31786FD3F4119F15B55B4FFAD9108FB9C61/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109608/01B9628C63EE04370742D354B11FC41708BB6C5A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 21.19 posY: 2.07 posZ: -2.53 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Bob Jenkins 7ce9d9.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Bob Jenkins 7ce9d9.yaml index 3ee6acfb4..de78acb1c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Bob Jenkins 7ce9d9.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Bob Jenkins 7ce9d9.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127498935/83C60889FF4E253896F9877AA5D695B65DE9A41D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127498888/52A7D63128EF8CCABABCCAC25D7A161FDC87AC00/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329268217 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127498806/179CA133C12F46DEC40C21BDED8E51EBC441912D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127498690/7767353FD52F7E52E135E1998911A5AA910FE5B1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 9.34 posY: 2.07 posZ: -6.36 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Calvin Wright 00a0b3.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Calvin Wright 00a0b3.yaml index 4c616bcde..7c540888a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Calvin Wright 00a0b3.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Calvin Wright 00a0b3.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122138/C6DA1F44C07BF2315BEF34CE88BE2D37306D72B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122092/7E86DE74F323125CF4C743A41D5C38CD7E5E6F80/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329267949 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109838/295776AE6C4195E36179BFD4DC840A85F9DC5E2A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109794/51E0C9D150A28AE12DBC44D081B33F8585CA252A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 5.84 posY: 2.07 posZ: -5.02 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carolyn Fern 99e9da.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carolyn Fern 99e9da.yaml index daf06a981..2b7f157ee 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carolyn Fern 99e9da.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carolyn Fern 99e9da.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122241/ACA5D39ABF796E8BFEC57DB81EA70B8558194C3B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122187/0A3F1BFDDD7476762C6645E64A9CBDB74E0BE4BB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.325783551 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109932/062A9610BF91F9E900D727CF4C278508341AD4E0/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109894/23141F07C9E777CCA48F96486D98A8D4DAD0447E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 8.8 posY: 2.07 posZ: -4.62 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carson Sinclair 9b83f7.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carson Sinclair 9b83f7.yaml index b86af2b53..b65bb3c83 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carson Sinclair 9b83f7.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Carson Sinclair 9b83f7.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815627804095/14FB266940C7F4FA6C89D27D778171D8DC132E4B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815627803889/F70AAF20DE0C636E8188C8ED3567D152BFE34FEF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.32578373 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632822423/C4763118F4519CF03FB07EEC9E8D181987D818CF/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632822371/481BF5F70A061B239975FA608D6FD6BFEE26D87D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 24.42 posY: 2.07 posZ: -10.6 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Charlie Kane 409e5c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Charlie Kane 409e5c.yaml index f56f559a5..e43ebd2a8 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Charlie Kane 409e5c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Charlie Kane 409e5c.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.59408 g: 0.59408 r: 0.59408 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1814399894374997063/8267261868DBD6C630FAD36CE43AC9F594A23328/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1814399894374997017/BC85365BA8B6FD488A31D0453F5B589E9FBB33A3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.162020534 g: 0.162020534 r: 0.162020534 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1814399894375044931/1F649E841492469182395800CD8522A7A8F688DF/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1814399894375044875/74403D42281F3B6F52977E2A78B3429284D14162/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 13.21 posY: 2.07 posZ: -14.18 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daisy Walker 7de2d5.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daisy Walker 7de2d5.yaml index cd1de973d..e5c152e73 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daisy Walker 7de2d5.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daisy Walker 7de2d5.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898199/50F1F2731EA74D362AFAD8157D040D2C28537FC4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898160/BD419A43A39F1AAE574C3ED1E6BDCA059662526B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251962155 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911376/6F57094F6DE7748A2FECE162A8360433100F6A1A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911313/35AACEA1926713934B02DED9A74B78FFC3CE9883/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 17.64 posY: 2.07 posZ: 21.11 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daniela Reyes 812e07.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daniela Reyes 812e07.yaml index e9eb7477d..096a566eb 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daniela Reyes 812e07.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Daniela Reyes 812e07.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127372542/9DFD7E7891356D43184E9D1D80532C00E6C2C8C4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127372136/F93D4DA4D1F8449BCFA91E53342BA39B3FCE54E7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.325783819 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127384635/76BAC5BCC1AFB3749426C325F6C3D485C7938E50/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127384593/FA4F02D9F246B22593B426584366C312B382A888/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 10.17 posY: 2.07 posZ: -5.2 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Darrell Simmons 821043.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Darrell Simmons 821043.yaml index 3742093d6..757310b16 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Darrell Simmons 821043.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Darrell Simmons 821043.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632805684/E19E42FA0F5C66C9AE0C531B8502F0856EA77CB4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632805644/FA91A9D835F60BCCAD90EE43F432EEFCB812F1BE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329268128 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632806197/159CC606BB4D245E2432664D0C7BB86D7B3180E5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632806149/6DE55CD4B35E67EDD1EA12561615C29D7528C1EC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 23.71 posY: 2.07 posZ: -11.31 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Dexter Drake 6dbc60.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Dexter Drake 6dbc60.yaml index f0ae31c9b..b630b18b8 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Dexter Drake 6dbc60.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Dexter Drake 6dbc60.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122330/B1CA265DC32559781219981BF4F385D423CA0702/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122282/12781D255D67BE8DC5D7DC0319C69B25FE6FE0FB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292678 - g: 0.0 + g: 0 r: 0.170584351 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110029/BA54F4CD9A3A11718873A2526C95E5846D8709DC/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343109980/118F2314AFF798868F18CC252405A87BD978A967/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 12.74 posY: 2.73 posZ: -4.87 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Diana Stanley 2640ba.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Diana Stanley 2640ba.yaml index 5b9592bfa..65b1dd178 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Diana Stanley 2640ba.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Diana Stanley 2640ba.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122410/6B2888110D0DEBD972B1AABC1493F262DB074311/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122370/E81C333FD7195F674DEA2E36024F4788B51472AA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292679 - g: 0.0 + g: 0 r: 0.17058444 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110130/FBBAE9140E940B1875BB8141D84788EF5EA5E25C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110082/76D9557C29556247A925A3526A32EB896C0915C5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 6.08 posY: 2.07 posZ: -7.08 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Father Mateo 037a27.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Father Mateo 037a27.yaml index 4e0fae2d5..582aa0282 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Father Mateo 037a27.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Father Mateo 037a27.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343213159/D07849717C07B630C290BB7810B30108A652DC52/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343213115/923ED3CD7BAB52379528C97BA86565BC972937F2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292679 - g: 0.0 + g: 0 r: 0.17058444 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343213075/853E2B0B3A7ACD28E70E4DA3CD2347E714923AC3/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343213028/571662D666A8333EC73EA50FA1FC52121F182D33/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 15.61 posY: 2.84 posZ: 0.23 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Finn Edwards 259257.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Finn Edwards 259257.yaml index 883f4e63c..88cdc6104 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Finn Edwards 259257.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Finn Edwards 259257.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122592/94D7B9AA767123BF2B50B1E27FAC62242DC4C1B3/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122544/131B9D90BBADDD3576CD4F24E88B1A9EAA084B25/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800767 r: 0.08509364 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110324/4B8B05471D1F5CC0FDD294EF20DB32F386D4E59E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110275/E2025B1C14EE35E63D44BC3B5A2410B21C397D90/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 2.67 posY: 2.07 posZ: -7.58 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Gloria Goldberg 596da1.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Gloria Goldberg 596da1.yaml index 80b4c56a7..a0b9c1648 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Gloria Goldberg 596da1.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Gloria Goldberg 596da1.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343369844/741F46B92FA73AFDB7BBC76C10CC3E5ABD31D4CB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122725/89A2F73B69E58215A310CCB38DD6C4CFC335D072/ - WidthScale: 0.0 + WidthScale: 0 Description: Novella DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292678 - g: 0.0 + g: 0 r: 0.170584351 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343370892/71C122A8117FFF40D9874C42BCD6D0F8B8B7892D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110452/64B813104A1823E356C86EE768B4C207D41F159F/ - WidthScale: 0.0 + WidthScale: 0 Description: Novella DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 9.14 posY: 2.22 posZ: -10.16 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Harvey Walters a0293e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Harvey Walters a0293e.yaml index b1f3977b6..70d400cb5 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Harvey Walters a0293e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Harvey Walters a0293e.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122928/D4FBD31E1D7FBEEB07939D3DCCB1667E4D1ACA14/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343122863/EB70BA317BF67FCF51083EBC0D8C357FF19EAB1B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961648 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110630/EBF1D33617A617E04FBD4AE37506F77867222D6C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110588/754FAC695ACFD404B80954EA68E223E454E212D8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 9.05 posY: 2.07 posZ: -8.13 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jacqueline Fine 755af5.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jacqueline Fine 755af5.yaml index c789e7397..316fb1e3d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jacqueline Fine 755af5.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jacqueline Fine 755af5.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343340459/F0D2B8064964B8252241DB136C794FC1B6FF4B53/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123061/6DA4E0C0B84DED83550ED40969143A242525FEFF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292677 - g: 0.0 + g: 0 r: 0.170584291 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343339400/E453D38E8FE432F95339B60B4547A59EF8C6BA24/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110754/30A40B1E167B52D90D19922ADF83CBCF1C700638/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 4.77 posY: 2.07 posZ: -9.96 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jenny Barnes 4990c5.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jenny Barnes 4990c5.yaml index 1476b1b80..db87a4217 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jenny Barnes 4990c5.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jenny Barnes 4990c5.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123260/B4FC280EE97A57E792694AC4EDAADD48E44519C9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123208/8C29DCE72C2A5DE4D7E6A79046CF24C3D74D8535/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.2108011 r: 0.08509388 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110916/B7228A20C559122AB8D718C0AC201FED9E85B2DE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343110878/B9FEDC01D8D9AE1AAC6B02BE02B2750BF3DF54D6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 5.7 posY: 2.07 posZ: -1.24 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jim Culver 4ed067.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jim Culver 4ed067.yaml index 6699866b8..eba45ab47 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jim Culver 4ed067.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Jim Culver 4ed067.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123446/B7327A472FBB4072DC477381E8A7A6125C99531F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123404/7C7BBACF49827ED5D622033E6C1DEA9357096C7B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292681 - g: 0.0 + g: 0 r: 0.170584649 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111086/FF3A031718F35B572D6C3C8C7BCCAB6C11D4BF33/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111046/87284B158274F1722C2161D9F9B30E214647B1BB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 0.42 posY: 2.07 posZ: -3.64 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Joe Diamond bc0aa2.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Joe Diamond bc0aa2.yaml index 3f3d3693c..70decaed2 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Joe Diamond bc0aa2.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Joe Diamond bc0aa2.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123531/ADE4594F7EACB7EE9E942D3477724E674AE1AADE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123488/AB5C5C45431B8CF33A784A09E265D60D4D0168CC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.2519618 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111172/100EC490B6AC901F4AFC48F100829575055BEE86/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111123/FFF20A721CE1B8D3C49E32DBC0A7861229012FCE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 11.57 posY: 2.07 posZ: -4.39 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Kymani Jones f90c73.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Kymani Jones f90c73.yaml index 724d56475..4a068a489 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Kymani Jones f90c73.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Kymani Jones f90c73.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632728920/BB862271FE472CB9A059930312C7E02014C926AA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632712125/4C9C8B7E2D826AC3F667B25886A10E4E7C404D36/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210801154 r: 0.08509395 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632729904/030745C06892D3AE331E9B047F6202B3A834B89D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632729866/6CAF10394017D1E413216A18C7AFB68E4BE4A22E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 16.44 posY: 2.07 posZ: -15.19 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Leo Anderson 68f47f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Leo Anderson 68f47f.yaml index ed5b3da48..bcd17b955 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Leo Anderson 68f47f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Leo Anderson 68f47f.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123611/134B3903A912E19F89379A3CAFC11B690B0F1B6B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123575/9D875BB066BBC8711A4A5B1888E6F14453B937B8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.325783521 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111248/605DA9FD3CAA488E2AF00196B4BE09173C7690F2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111208/2C442A20E3C1D6C78115F52739C30026DEA42F78/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -0.81 posY: 2.07 posZ: -7.25 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lily Chen f58123.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lily Chen f58123.yaml index d7fcaf91a..f9f608785 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lily Chen f58123.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lily Chen f58123.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127487724/EA02F95CE17F58859603E9C3342085FFBE7E0420/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127487680/802D3885209166F8C3A68A2BC4E5F1B5DF9DE53B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3292682 - g: 0.0 + g: 0 r: 0.170584738 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127487606/CCEB12CA653DEB53372368FC4E28FD57A87418BD/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127487506/08986629775B03EF635165A59EAEC2FD21BFBD74/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 11.54 posY: 2.07 posZ: -2.92 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lola Hayes 392b57.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lola Hayes 392b57.yaml index ba9728688..1a71628e4 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lola Hayes 392b57.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Lola Hayes 392b57.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.59408 g: 0.59408 r: 0.59408 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1814399894375141540/7C5FA11A32DB50D7C3288D7672AA72A753941813/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1814399894375141491/FC32B68CBC5AD09DB7347FDD68F6B398FB52F84A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.162020475 g: 0.162020475 r: 0.162020475 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1814399894375156686/CF8D3AAA42F6F3879C9C79C9E78A696592FE57BD/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1814399894375156637/11194212FD04FF4B2AFAFB25AF915F288D768BEC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 6.55 posY: 2.07 posZ: -0.99 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Luke Robinson a908ec.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Luke Robinson a908ec.yaml index c5ac02970..41ebde846 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Luke Robinson a908ec.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Luke Robinson a908ec.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123788/B66846378167F716F4EC90D96FF72354A46B7B4D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123743/7FFD073A2FE1B6346E43939B2C30CC485D4773E9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.32926777 - g: 0.0 + g: 0 r: 0.170584321 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111421/31C173F4DC2F80612AC7B8A56E9ABD5581EEFFFB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111373/B5CF244E06B8E75CB81575C3E460E11388C3BE15/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 7.61 posY: 2.07 posZ: -9.75 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mandy Thompson 0d602e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mandy Thompson 0d602e.yaml index f89ea3fe1..ba2798448 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mandy Thompson 0d602e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mandy Thompson 0d602e.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123877/541D16A7F8B1CD918142D5ED9481A0AD37271E7B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123832/EF70CBEF33BC038D502B78BA9A77AB07D581B30D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961678 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111511/9DE040757FEB58FB6F7E89805EDBCABA28C08363/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111464/EB5F444E471B86E0CFD56020F3DBC31FF73AECF6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 4.73 posY: 2.07 posZ: -9.55 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Marie Lambeau 6bd52c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Marie Lambeau 6bd52c.yaml index 2a777e6c2..e21755d3b 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Marie Lambeau 6bd52c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Marie Lambeau 6bd52c.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123948/0EE225E2455C4D60FC903AC34D5DCBE3A96E0F6E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123913/0FED2F578A1A3B0D7068AFA723C5BD86614D51AE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.329267919 - g: 0.0 + g: 0 r: 0.17058447 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111601/E3DB7C44A8A034D4BA7AACF2599A54DECC4C4D34/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111548/9D1687057358C422472126D059B5CAA1828E2DEA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 8.61 posY: 2.07 posZ: -7.52 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mark Harrigan eb793b.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mark Harrigan eb793b.yaml index 8b4eb3837..fd435db20 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mark Harrigan eb793b.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Mark Harrigan eb793b.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124038/5DB2BE15B15ECF1B8324CCB4EA57762A5F9503D7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343123987/395CFF93D01FE8D3E05BF0E18AF363C95F8C9870/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3257836 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111695/C7C4A01A23F187ADD085F1FDFF51FAFB0295F22A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111650/DC806BD08F8B210C3DBE0D3BE9C0A0E9819D8D54/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 2.73 posY: 2.07 posZ: -4.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Minh Thi Phan 1ebf3c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Minh Thi Phan 1ebf3c.yaml index 3edee98b1..d7a112e9a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Minh Thi Phan 1ebf3c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Minh Thi Phan 1ebf3c.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124306/A4481703DBC3C327CBE907E1149598283B7AB049/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124265/92345CAE764C3A809A9CA73F30AFF9406BC0EF5E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.2519619 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111950/D44CE23B259F5B04CD2B76F44DF2BED5D41F862E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111913/23E26016E556988D267EDD8DEB4D76E4D6D38A7C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 3.9 posY: 2.07 posZ: -3.65 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Monterey Jack 638f3a.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Monterey Jack 638f3a.yaml index 3f7854250..19f5443d7 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Monterey Jack 638f3a.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Monterey Jack 638f3a.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127476794/837B28F92D4D63B23EF69D5A327A76928DC814A7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127476746/94BE1CD298C8605CEE92CA2E8B0405C206EFCDB4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210801244 r: 0.08509401 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127476683/6C480D8E9E8D03B8CA8154285EDE42312D1FE37B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127476598/64CD439C4B27AF54285ECE0BABDB93C2634E5255/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 3.86 posY: 2.07 posZ: -7.87 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Nathaniel Cho 619a54.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Nathaniel Cho 619a54.yaml index 7ce7cffd6..cdc26e806 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Nathaniel Cho 619a54.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Nathaniel Cho 619a54.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124386/09CAB97763D97EFC37A1A558CEC032EEB8142754/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124346/CF535E2C85E5F4D1400A96DB7BEDC7DCFC7591C1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3257834 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112047/FB45F4E6B30D69A196C585501C4E75B435677A01/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111987/455AD3904C7CBD6CB4AC917973B766BFACC429DB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 7.44 posY: 2.07 posZ: -7.52 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Norman Withers 8d186c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Norman Withers 8d186c.yaml index ceb4d384f..a79762e08 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Norman Withers 8d186c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Norman Withers 8d186c.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127436051/77E8D22FE4EDE5A94D1CBA705DA40BEB45A1E771/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127435972/2096012C595D1FA26F1D91FC84266EA87FD44C5E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961946 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127449192/81C48A558BC836CC34ADD31B438468E448CE81C1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127449099/5836DD6175D977C38D7A24FEAA4A45892F99479B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 12.73 posY: 2.68 posZ: -5.01 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Patrice Hathaway ef94b5.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Patrice Hathaway ef94b5.yaml index d45244370..32ce89f1a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Patrice Hathaway ef94b5.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Patrice Hathaway ef94b5.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124652/C352844E8CE07642B8F0D34FD4CC46FD163099BF/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124612/064FA25C5A7EC3F7A7752FF362462E26C3045BAD/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329267859 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112332/4D2A00300C1A749C808CD8391F3E681038EDAFDB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112272/1BAC1C83A3683725B46BAF4BD60184BA52BFB6E8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 9.22 posY: 2.11 posZ: -9.52 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Preston Fairmount 6e99ba.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Preston Fairmount 6e99ba.yaml index ea7181a14..caa9ce373 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Preston Fairmount 6e99ba.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Preston Fairmount 6e99ba.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124816/08D840B61C1E9CD93C1720AD66D780B1D7326D10/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124775/8093BCC3BB3D19C324B59EA46C83293B09B3C736/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800856 r: 0.0850936845 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112537/AE38E517BE326158E67760C17DD7BDF24BDD6C12/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112489/897B3C993413B04F475D3AD95385262A0188945C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 12.62 posY: 2.26 posZ: -4.27 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rex Murphy f96c49.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rex Murphy f96c49.yaml index 52ab965e4..94eab4be3 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rex Murphy f96c49.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rex Murphy f96c49.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124908/94730221F433510D8906BBF22D7AC5F8FF979B7A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124866/20FAFD12A141BEDFA62FC7D2BBA10925863110C7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961976 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112648/D27F29716439A7BDBF1162AB92684C32E3A221FF/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112602/C78D725F74D849D4C81D09D1C9B808D1F192A6B8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 4.39 posY: 2.07 posZ: -1.55 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rita Young c46146.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rita Young c46146.yaml index f660a8110..3bcc5d7e4 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rita Young c46146.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Rita Young c46146.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125001/48ACCE90A8C1A957EC54B0B411DFCCE5F96E1278/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124955/B83959B059ED90771F6550DF20D774B6AA7B088B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329267949 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112745/522D275483FAF39565F28DDDBD405D585F0C23BD/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112692/3353B6C8A7FBFBA7B834CCAF8983B69C054DF2CB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 7.26 posY: 2.07 posZ: -7.43 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Roland Banks d68f71.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Roland Banks d68f71.yaml index 0c263a790..58296c55a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Roland Banks d68f71.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Roland Banks d68f71.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898308/F1D708F76DF5800CE765EAFA0DC09C26A74FF16B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898253/1379499E10EFB7E14365E7DB265FDEA18852D1D5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.325783879 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911484/BCB0DA6F1D18C17D45F72A530A648BEC00C54205/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911431/4F699092E6EA90370C6AC757DB37FF9D9A6A7FB8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 18.5 posY: 2.07 posZ: 21.06 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sefina Rousseau 086503.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sefina Rousseau 086503.yaml index fde624258..9e039de8e 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sefina Rousseau 086503.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sefina Rousseau 086503.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125078/A86918CF754A49F3634CE1906F06D2EF8050181C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125039/358B5898D369D0DD9B43CA63A4D814DD523B46D4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800946 r: 0.0850937739 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112830/2D14AED1F1BA6A9FA28E7093A2E738876EA80A89/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112788/E93E0A9A75FF8657A9E42C3AC93A236739E8B48E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: -0.35 posY: 2.07 posZ: -5.62 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Silas Marsh 080f71.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Silas Marsh 080f71.yaml index 29bb5ecaa..571295da0 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Silas Marsh 080f71.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Silas Marsh 080f71.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125121/418C6AC1E5031B49969BD78AE05247AF806FEF1A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125169/A6DCCBFE8E038499BBDBC3E646EA176F47D2BB4C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329267859 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112871/8EDFE0718C49CAE4155F3832571CCA7202D6479A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112916/0BC1B2CB47C8B5814D1EF29AEF132D972F61B509/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 5.72 posY: 2.07 posZ: -7.33 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sister Mary 707374.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sister Mary 707374.yaml index ce3633a90..511240bba 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sister Mary 707374.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Sister Mary 707374.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124131/B28E44DBC3463F011BF01FCD6F2E88CD43057352/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343124088/F02DA60FB218E7DBC8EAE29556A4CAD9EC47657D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.325783432 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111792/58A855A135BF1CB9CC76C2C8282D75F27EDAA53B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343111744/D91E9AF17853E7AC5E4C32C098F6E60E4E3B2693/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 17.97 posY: 2.07 posZ: -3.93 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Skids O'Toole 47cbdc.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Skids O'Toole 47cbdc.yaml index 21cc53c8f..d0921d874 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Skids O'Toole 47cbdc.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Skids O'Toole 47cbdc.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898401/3200CDC30301B8A58B6CE31AE9BF06DF7BE59B46/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898355/9F2A2046E154557C9D35BC392DA05BCF7A5D99BF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.2108013 r: 0.08509406 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911607/D91CC56CCF47669B649D0AB61B12957FBB790C06/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911559/E9A1944160938CAC731E6ECF4E86C8A43DE4BB9E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 18.04 posY: 2.07 posZ: 18.03 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Stella Clark abd4b9.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Stella Clark abd4b9.yaml index c7da45a05..58d1e53be 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Stella Clark abd4b9.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Stella Clark abd4b9.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125258/BF68ACA30835D3152A03255FFE394BD1D844A5ED/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125217/B965FA4A228DFD62F5D202E4A6DDBFBAFA1C830D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329267859 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113025/1272B28219E43CD1BCC990A1883B808A5CA59B1D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343112969/8EF9EA86807895AC74C4B2D39C3AE171ED85E94B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 5.79 posY: 2.07 posZ: -10.24 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Summoned Servitor d5f368.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Summoned Servitor d5f368.yaml index 1d7596e5a..0d5b2bd0a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Summoned Servitor d5f368.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Summoned Servitor d5f368.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.65331 - g: 0.0 + g: 0 r: 0.33758 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632829693/2DA5CDF37EAB1E351A88995270B9A313DAEA59CE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632829647/900F45FD95C2893461BCAA1572DE0E7EA16ABE19/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.329268128 - g: 0.0 + g: 0 r: 0.170584679 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632829093/FBA3DF6AD2DF21A559274FB770ADB98A0368EE0D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632829036/6D4D65B59894195F8047FA6F37F7379A67CDD4E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 16.57 posY: 2.11 posZ: -14.59 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.83 scaleY: 0.83 scaleZ: 0.83 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tommy Muldoon bea47e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tommy Muldoon bea47e.yaml index 73c10bfa5..99ecb5540 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tommy Muldoon bea47e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tommy Muldoon bea47e.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125343/F146511CB6A21254B2C7350694A25207323BD032/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125301/A93BD669C731E917A35FA5738EB136BF6671D77D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.325783432 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113125/C886BBE085401CBDEDC79316126DAD04C160290D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113075/3A5F451FE5EEA0438A7BF83AA80087D508A95E63/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 10.5 posY: 2.11 posZ: -7.32 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tony Morgan 8788d0.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tony Morgan 8788d0.yaml index e906be9ba..110c83e1c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tony Morgan 8788d0.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Tony Morgan 8788d0.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125442/09C00F6166ED8C161E8B4EDC8D6C5712BE4E5A99/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125399/E8846343EE7FB81463CBA96EE1FB4EA48783478D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800737 r: 0.08509361 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113211/50B0632176C34F7C87676B08F33D1FD47B81F866/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113164/306E90DAA180AD468A2984E850C930EE18CF2662/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 6.21 posY: 2.07 posZ: -9.64 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Trish Scarborough 01631f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Trish Scarborough 01631f.yaml index 81e314200..ee3c5d1e4 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Trish Scarborough 01631f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Trish Scarborough 01631f.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125535/2F16BFC124F43F9940C2A3F171E26DDA6463A212/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125485/4E1E451CA47B9A6C4FA602597948FD6EBC4BE776/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800737 r: 0.08509361 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113340/C747576C358B25CEA21F2C6BBC99E958B054C988/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113269/8A30699B302BAF982C8FE26E09705CDFF5242C2C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 10.92 posY: 2.07 posZ: -4.62 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ursula Downs 556138.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ursula Downs 556138.yaml index 0e07a1853..0b3cae11c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ursula Downs 556138.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Ursula Downs 556138.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125624/CBE958AE77C62FC1CC2DF6663226EADDA1500B5E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125580/D00CFB3B16884A01FA999E0DDD6B3CBC08E65AEA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251961768 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113425/FC55EAACC9980F12F2108FB677C8E4F98FDBC82F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113388/3C14FD026614E265AF28D706E14EE28832B9900A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 20.78 posY: 2.07 posZ: -0.28 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Vincent Lee bc327b.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Vincent Lee bc327b.yaml index 093e9522f..64b94d758 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Vincent Lee bc327b.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Vincent Lee bc327b.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.45725 - r: 1.0 + r: 1 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632778413/67439F129504FB1AA3A5D888DC4719FEBAF9892C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632778350/325286731544DD374EE07847A9446D2BC94EF1B9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.251962036 r: 0.559233367 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632803119/29423101B686F98DA4B7493746360CD42D3CE5C0/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632803055/AF8D8F383F92D298133EBA09A34753744E4EF548/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 13.06 posY: 2.07 posZ: -14.74 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Wendy Adams 8f5e71.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Wendy Adams 8f5e71.yaml index c68933265..4171d8570 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Wendy Adams 8f5e71.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Wendy Adams 8f5e71.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898498/10F99CF16FEBE1CD39635ABFF90F805BF5D54918/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342898443/A3C543770A98A9D55B8BF1E51B2EE143A42AE1A2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329268247 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911709/5143ADC17BEA16129B1533BE77EE79BF0BD347A5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400342911659/B0D1767C1391FEAFC991695B614304A626FCEB2C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 18.21 posY: 2.07 posZ: 20.42 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom William Yorick 26a0a1.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom William Yorick 26a0a1.yaml index 44fd67497..5f8f03ac0 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom William Yorick 26a0a1.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom William Yorick 26a0a1.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.58711 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126093/F7F02472038CC02E52533381E4D7AD7D31BB3FA8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343126049/63E0BC57F7E5141690FF1F50002837F2869FE3FA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.329268 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113849/DCA3D076BFCA28D8A8638B6A4F638AA84101624E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113810/78D2AA9C325055A8D4680125D29489A8B9B89461/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 1.99 posY: 2.07 posZ: -5.78 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Winifred Habbamock 2ede96.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Winifred Habbamock 2ede96.yaml index 3228a591a..c351e6007 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Winifred Habbamock 2ede96.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Winifred Habbamock 2ede96.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.43031 r: 0.17436 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125837/45463C0CFEC0E75C4CB0817760252B81E46D4249/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343125782/BCC613AFBA7B0DA1250A17504464AAD6B2BAB528/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.210800737 r: 0.08509361 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113609/433D67A5C68762077EF84A2BEFF3B251EC84C39E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343113571/5531EC31A19AD8DCAD380DA9471B3224001E4E04/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 10.12 posY: 2.11 posZ: -7.97 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Zoey Samaras e6d68f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Zoey Samaras e6d68f.yaml index c877fcf64..486a69ec9 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Zoey Samaras e6d68f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Stands 74d499/Figurine_Custom Zoey Samaras e6d68f.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 + b: 1 g: 0.04089 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343104997/E66355B1514163DDC8E50927F54C6C07DE63EC00/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343104943/9E4F82A799BEF14E1BEC498937F2EB3BB83F6ADE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -32,19 +32,19 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.3257837 g: 0.0107875289 - r: 0.0 + r: 0 CustomImage: - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698400343107739/4F5A5EE5CF79DAF68B538EEF30DB8DACC10A3565/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698400343107696/1E492CCA51ADB35F95FFF64ABBB61765E50B2B26/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,9 +82,9 @@ Transform: posX: 3.42 posY: 2.07 posZ: -1.25 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.58 scaleY: 0.58 scaleZ: 0.58 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41.yaml index 0c86cae90..77ab2c948 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.05692 g: 0.32578 - r: 0.0 + r: 0 ContainedObjects: - !include 'Bag Tokens 8b8b41/Custom_Tile Summoned Servitor 862983.yaml' - !include 'Bag Tokens 8b8b41/Bag Alternatives f8c290.yaml' @@ -49,11 +49,11 @@ Transform: posX: -0.21 posY: 1.99 posZ: 9.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290.yaml index 14c30acc7..ccdd4dadb 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: @@ -40,11 +40,11 @@ Transform: posX: 13.28 posY: 3.29 posZ: -3.8 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ashcan Pete be4f57.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ashcan Pete be4f57.yaml index 566aaa514..076a523e2 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ashcan Pete be4f57.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ashcan Pete be4f57.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351180402/300B84479A7E7FBD938886E6FFF983BE099DF983/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351178860/0726567002C8338E97BB3E3746675E696FDC8721/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 6.08 posY: 3.04 posZ: -4.6 - rotX: 0.0 - rotY: 180.0 - rotZ: 358.0 + rotX: 0 + rotY: 180 + rotZ: 358 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Duke 8902b4.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Duke 8902b4.yaml index fcd442b7b..18696ff2f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Duke 8902b4.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Duke 8902b4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351193465/CE9301CD15AFA8A7B5AF34C950714AB39213DDE6/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351191818/BFC802E32AE2A38228739510216AE1D4A4E4BB69/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 29.59 posY: 1.97 posZ: 19.2 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Lily Chen (Quadwield) b3859e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Lily Chen (Quadwield) b3859e.yaml index 1bace4c48..01837868a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Lily Chen (Quadwield) b3859e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Lily Chen (Quadwield) b3859e.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632893474/4AF139BBCD80D1C20CB0ACCCB187A59716C129E2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632874602/AD80AD0552BBD9885B868EEE71189AB51029B858/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632893519/00AEC6496FFB456329C276AF64D8B8272370B461/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632874696/26560CEFEE751DBDD87EBE57FA825307CEE66A40/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 1.34459406e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 19.42 posY: 1.97 posZ: 4.17 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Sister of Battle Mary f5c62d.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Sister of Battle Mary f5c62d.yaml index 3ccf8c252..48f25ff9a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Sister of Battle Mary f5c62d.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Sister of Battle Mary f5c62d.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351136953/2E52D40BC0FFD36491AC73AE2DE98B8C0187C977/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351135554/A6535EC60FCCA481D469A5DC1362D9E6CBAAED92/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351137004/0BDCE801CF3CFFE731ECBF3C6CA42D36DD6E6A6F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351135608/EF64E1FB541E98B2110568E80521F909FCC65B6A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600004 posZ: -0.2475957 rotX: -1.99428159e-05 - rotY: 180.0 + rotY: 180 rotZ: 9.04094e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -0.34 posY: 3.01 posZ: -4.42 - rotX: 358.0 - rotY: 180.0 - rotZ: 359.0 + rotX: 358 + rotY: 180 + rotZ: 359 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ursula Downs a0c8aa.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ursula Downs a0c8aa.yaml index 81c174256..5a07a0795 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ursula Downs a0c8aa.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Alternatives f8c290/Custom_Tile Ursula Downs a0c8aa.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351154638/AD7164AEFA42443372544B9AE244200A7A6C0701/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351153507/40687A48B0B38B8FC6B2EBF1B1A584F664FF7B82/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1786217534351154679/8FCE2FFA8B295B437C5862861B8BBB71B805405D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1786217534351153563/23860331AAF2DAA0CD5587DB287DDAEEAD6CC70F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.999985 rotZ: 1.59252013e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 0.85 posY: 3.01 posZ: -4.41 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f.yaml index 2267e16a7..acba96930 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Bag Barkham Horror b08c1f/Custom_Tile Duke df5fd1.yaml' - !include 'Bag Barkham Horror b08c1f/Custom_Tile Jacqueline Canine 7aeca6.yaml' @@ -40,11 +40,11 @@ Transform: posX: 5.66 posY: 1.79 posZ: 0.99 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Bark Harrigan 41af3c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Bark Harrigan 41af3c.yaml index 09f2ce85c..363e8390b 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Bark Harrigan 41af3c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Bark Harrigan 41af3c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708404997/A7821E94249324720D9EEC18F51C6E0F32511F20/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708408532/033B521E7599C6A651B9BB92D13880FAF1974002/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708405075/B15AEA5DC9BC8532704ADE17AB22E90A2FAA021E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708408571/623901B6B223E8DAD4C28A007D34A10B54DD873C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960002542 posZ: -2.34120679 rotX: -2.02591837e-05 - rotY: 180.0 + rotY: 180 rotZ: 9.68632048e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -7.92 posY: 3.01 posZ: 0.64 - rotX: 4.0 - rotY: 180.0 - rotZ: 358.0 + rotX: 4 + rotY: 180 + rotZ: 358 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Duke df5fd1.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Duke df5fd1.yaml index 455897c35..50a4dce07 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Duke df5fd1.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Duke df5fd1.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708406881/374951AF62E93DB10E32237BE4E98F7C2C94314D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708410170/D4127E3D1255D89CD6829131FC60722471D2434D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708406916/3FAEBBD786FAB3E42E02D9A7DF4C73F89A5FE9FE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708410213/7D3454C8CD3E81CB7AFADBEE3555DA6CF80A5D16/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 1.06000113 posZ: -2.25585771 rotX: -4.8685044e-05 - rotY: 180.0 + rotY: 180 rotZ: 180.000031 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -5.19 posY: 3.03 posZ: -0.3 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Jacqueline Canine 7aeca6.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Jacqueline Canine 7aeca6.yaml index d0c844881..711d0f178 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Jacqueline Canine 7aeca6.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Jacqueline Canine 7aeca6.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708406425/5A57CC74B357FC9826F5E433109A5D7506AF5B0D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708409781/C504CD93965EC04EBCAD7440CEE2F5CC0CEF9B8A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708406473/27D805A6B11B91691FDA338CA981D264C92D98B4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708409829/5B9442CA3BD4B0F37F58505B84EEA6E1AD76A4D9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600017 posZ: -2.29498529 rotX: -6.1689534e-05 - rotY: 180.0 + rotY: 180 rotZ: -3.79493031e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -6.66 posY: 3.03 posZ: -0.34 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Kate Winthpup ccff5a.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Kate Winthpup ccff5a.yaml index 61bbae3be..3a959cdfc 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Kate Winthpup ccff5a.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Kate Winthpup ccff5a.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708405508/E5578DBC5D96CA60DF4FCD962958B3AB48FBB7FF/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708408923/70406CED274C9EE96A5275083C1472EEB7F42655/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708405554/F313FAF23B1125C6E1F064177146B0C1726D732B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708408969/3B7B47E8D072406708C65F819662ECC5F4B43CA7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -6.25381972e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -9.45 posY: 3.03 posZ: -0.41 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Skids O'Droole 35a602.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Skids O'Droole 35a602.yaml index ada3e46c2..28c74e2b6 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Skids O'Droole 35a602.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Barkham Horror b08c1f/Custom_Tile Skids O'Droole 35a602.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708405998/57C5A19E3FDDE6159F7D4C319C40F83CAA9E2958/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708409369/88D089A83D503494EAC46DE1D41B6852D37C7518/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708406061/324040CFDCAD02FA8C33585794D71751C3CCF6FB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708409413/2C5B4CA5C5308BCA94B02FDA37446D2476434744/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960001945 posZ: -2.128488 rotX: -7.556884e-05 - rotY: 180.0 + rotY: 180 rotZ: -5.03773372e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -8.07 posY: 3.04 posZ: -0.39 - rotX: 1.0 - rotY: 180.0 - rotZ: 1.0 + rotX: 1 + rotY: 180 + rotZ: 1 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec.yaml index 45b2e11e0..f4b236fd4 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 @@ -40,11 +40,11 @@ Transform: posX: 16.65 posY: 3.29 posZ: 0.41 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Bob Jenkins 2eea14.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Bob Jenkins 2eea14.yaml index 4a4c76668..a7c83fb60 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Bob Jenkins 2eea14.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Bob Jenkins 2eea14.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127589857/8350D4B8CA0167FD63AE6F4252DB131DCF02068F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127523334/29041B1A9ECCAD66934F7394C1BAAD5A29419D5C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127589908/773A07E5D19FAFDA6AF71CEBC069175C769EF9ED/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588327/419EF2D650774CCB0500C73CFC43AC77D234747F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9599999 posZ: 4.86478758 rotX: -6.98059e-05 - rotY: 180.0 + rotY: 180 rotZ: 2.13232343e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 13.05 posY: 2.02 posZ: 0.18 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Daniella Reyes 38912e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Daniella Reyes 38912e.yaml index 042d67230..3e82f36a3 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Daniella Reyes 38912e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Daniella Reyes 38912e.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127591539/554A5A800A2C267F06CD7E9916E7DDAFEC381EF8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127521616/39573C71B46B811A60950D96773E901A90970259/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127591604/10ED90016BFAA3922CD739B54BD7CBF3BD34C6D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588406/F938D09732F8FDBDAD79625BDA22820D52B6A5C5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960001349 posZ: 4.295325 rotX: -7.119444e-05 - rotY: 180.0 + rotY: 180 rotZ: 5.381034e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 11.65 posY: 3.43 posZ: 7.4 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Lily Chen ea25c3.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Lily Chen ea25c3.yaml index 85c8901aa..3510d8538 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Lily Chen ea25c3.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Lily Chen ea25c3.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127590802/89F9AF2C4EAFD5ABDB3E877213F79C0D4A410C78/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127522876/4B0FEBAFA852F2D0A8C5496CF467EEB190EABD6C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127590872/69AEF24314609C572C8EC2443582BE04F2186806/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588477/F570ACBA35CB2F916284EFF8F671646235DA822C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -80,9 +80,9 @@ States: posZ: 2.61119843 rotX: 3.82719481e-05 rotY: 179.999908 - rotZ: 180.0 + rotZ: 180 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 12.84 posY: 3.47 posZ: 5.95 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Monterey Jack d9a9ba.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Monterey Jack d9a9ba.yaml index aa14912f3..a9af95700 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Monterey Jack d9a9ba.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Monterey Jack d9a9ba.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127593370/DD3BE0CB11F4308ED5C966D8B6620BB50BD11186/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127522568/63253F03CECE5EDF2042D17AFFA5A1F082DD7ECC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127593415/FA319D0449914FDED7A263FBECEF3FA4714C1905/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588525/D4FA9699B6ED018ED996622689AD6384CA7833D2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.999969 rotZ: -6.758973e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 12.61 posY: 3.47 posZ: 6.32 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Norman Withers 3fc084.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Norman Withers 3fc084.yaml index 729ea2a4b..79b21e0bc 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Norman Withers 3fc084.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Edge of the Earth c4deec/Custom_Tile Norman Withers 3fc084.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127592641/5C7D4DBFC0F62886306691D6596E87C064F353D9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127522098/E3BE272A6CDA2AD18B26FD9A8A2553006DB02EF3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1696157607127592732/BB9E64CC70B4E6BD61EEBDD74839B8E2CBA72E2C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1696157607127588586/8BC5F352FA3F5C2D4BF09F424A1649604D3974B7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000061 rotZ: 1.63141249e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 12.82 posY: 3.48 posZ: 5.84 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e.yaml index 752eaf39b..6a6280a67 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 - g: 0.0 - r: 1.0 + b: 0 + g: 0 + r: 1 ContainedObjects: - !include 'Bag Scarlet Keys 4c6a2e/Custom_Tile Charlie Kane ba9781.yaml' - !include 'Bag Scarlet Keys 4c6a2e/Custom_Tile Darrell Simmons 798bfe.yaml' @@ -41,11 +41,11 @@ Transform: posX: 15.04 posY: 3.29 posZ: -2.65 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Amina Zidane 983a88.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Amina Zidane 983a88.yaml index 223dffe2b..cdbbe014b 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Amina Zidane 983a88.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Amina Zidane 983a88.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632946771/4FF34F9BE90B5C5882C6CADF9A172E0E2005BAA8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632960330/90E6E1620ACFD62849623DF312D75DEBA216BC4D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632946814/0D8C9527E570E7F83FC14B94C9FC5C76A263735C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632960426/FCE12D171233548F91BAC47BD2DCA07557FDE6A7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 1.26301475e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 17.69 posY: 1.97 posZ: 11.67 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Carson Sinclair f44b03.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Carson Sinclair f44b03.yaml index eeace2e54..838f0aa08 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Carson Sinclair f44b03.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Carson Sinclair f44b03.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632949464/2D23C92B73A245B0359ACF0FD728CA6D287A491E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632951929/10AD6AC10E9125B22E4F0BF08EB53393DE19CF84/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632949502/8370097D70B1D2EDEA4FBAA398F86577D05B8FF5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632952034/870E0122E968A8072CC6F5300011507EE611917F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000076 rotZ: -3.599694e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 17.48 posY: 1.97 posZ: 11.93 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Charlie Kane ba9781.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Charlie Kane ba9781.yaml index 6051cc279..c16e8809f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Charlie Kane ba9781.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Charlie Kane ba9781.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1814399894375030660/C6ED3F6B2F5351E103EF1277496BE3088F332458/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1814399894375014306/82D626CE83CFE1AE3F3A3B0A521F2DFB177DF83A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1814399894375030766/8DDB3114E8EAA4E6644DA807E802C03C6F54CE58/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1814399894375034886/D7435766AE971D4EC42ABCB34CFA7A92B1446224/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000031 rotZ: -5.65799564e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 19.27 posY: 2.12 posZ: 1.94 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Darrell Simmons 798bfe.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Darrell Simmons 798bfe.yaml index 145619b5d..66883f792 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Darrell Simmons 798bfe.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Darrell Simmons 798bfe.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632947355/941B61A3D6771DEA0B0BBE3F603015073D856D40/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632960994/1370ADD64F9B581016C956F7EE4E7BB3A188B2D4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632947406/933B7F89F93F09B06C4B089A621D4CE26BF65DB9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632961033/B7EB0A964E3A2D285CD669B65A6D09B80219FB0C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 1.06 posZ: -0.45706138 rotX: -4.26442239e-06 - rotY: 180.0 - rotZ: 180.0 + rotY: 180 + rotZ: 180 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 16.7 posY: 1.97 posZ: 14.17 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Kymani Jones 162b69.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Kymani Jones 162b69.yaml index 79a3029e4..549113e67 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Kymani Jones 162b69.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Kymani Jones 162b69.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632947978/2D4BE572C692C50D61B7F388A68BECBD2E1DACFE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632961069/49380318F33EDA0DC95C9A43322F0AFC8B4E5ECA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632948332/14ABF11FB8CAFC7377425F01773F10B51B6DCA58/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632961104/698C84C2E7E5A963C804F1BC15DBD0958D3E12FF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,24 +79,24 @@ States: posY: 1.06000054 posZ: -0.32208845 rotX: -2.41434973e-05 - rotY: 180.0 - rotZ: 180.0 + rotY: 180 + rotZ: 180 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' Sticky: true Tooltip: true Transform: - posX: 18.0 + posX: 18 posY: 1.97 posZ: 11.69 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Vincent Lee 145581.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Vincent Lee 145581.yaml index 9d8d749e8..d13393e29 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Vincent Lee 145581.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag Scarlet Keys 4c6a2e/Custom_Tile Vincent Lee 145581.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632948931/5077C05281A2E04372EBFE2BA974DADB867B8910/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632952090/B031DAA4DB280D0D11A41CF8351A200913C2F558/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632948977/750B84BB13732CD535E935D33778FE514E924685/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632952227/81ADF0FEFD4F8AD83F296FC252792378622CFFFF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000092 rotZ: -2.07854464e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 19.21 posY: 1.97 posZ: 12.86 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef.yaml index 26905ab6d..6dac09da9 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.20035 - g: 0.0 + g: 0 r: 0.10799 ContainedObjects: - !include 'Bag The Circle Undone f2acef/Custom_Tile Marie Lambeau b47207.yaml' @@ -42,11 +42,11 @@ Transform: posX: 8.8 posY: 1.79 posZ: 2.84 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32.yaml index 3677da82c..446827c3a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 ContainedObjects: - !include 'Bag Prologue bf6b32/Custom_Tile Penny White 7aeedd.yaml' - !include 'Bag Prologue bf6b32/Custom_Tile Valentino Rivas 8b4fcc.yaml' @@ -39,11 +39,11 @@ Transform: posX: 7.6 posY: 2.86 posZ: 6.62 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Gavriella Mizrah f9cba2.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Gavriella Mizrah f9cba2.yaml index 98d4ff7ca..83522a16c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Gavriella Mizrah f9cba2.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Gavriella Mizrah f9cba2.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708042402/D2901AC03697A42E54228B5D8D7F96B34DBD5720/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044131/DC186D07DAB34575B1A3544784FBE993C11E229B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708042460/684FE39DC4954AAA65F13CE0E7776ED1480DD717/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044175/0876392599AB0CAF855CA828A4F72E8B01F6B056/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.998016 rotZ: -4.01837751e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 3.32 posY: 3.03 posZ: 7.75 - rotX: 359.0 - rotY: 180.0 - rotZ: 359.0 + rotX: 359 + rotY: 180 + rotZ: 359 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Jerome Davids eb6c8f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Jerome Davids eb6c8f.yaml index 5c86347f6..56cfda070 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Jerome Davids eb6c8f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Jerome Davids eb6c8f.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708043081/D91383186F9B8AA422B0811DD8F5522EDB5A14D7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044217/CE2E92945A690E13C7FE95586387811FA95048ED/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708043122/B0840FC4C8EC8E3971B33A0E14A8E43D8C4EEE6A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044267/AB7EE8AA3481039EB6F147FA7626D0076C3188E3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.999969 rotZ: -8.264612e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 3.74 posY: 2.8 posZ: 6.37 - rotX: 14.0 - rotY: 177.0 - rotZ: 7.0 + rotX: 14 + rotY: 177 + rotZ: 7 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Penny White 7aeedd.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Penny White 7aeedd.yaml index c6c0d3bc1..3d5066d3f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Penny White 7aeedd.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Penny White 7aeedd.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708041558/B18C704D029D487F5144ED43C59EFA59663CA809/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044314/922727E14CC8730ADE0AB75353A4B64C60638667/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708041617/715DCD1F1ACB93954D25583FD9544D29271A015E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044371/943EA7598178161B4718C9DD5D64C65F489CE35F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.998123 rotZ: 0.000128975968 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 5.88 posY: 2.48 posZ: 6.45 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Valentino Rivas 8b4fcc.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Valentino Rivas 8b4fcc.yaml index a767e4d21..e6290b689 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Valentino Rivas 8b4fcc.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Bag Prologue bf6b32/Custom_Tile Valentino Rivas 8b4fcc.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708040670/D6E2F0956336D577BC309FEF99BA4F6A8BEA10B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044431/AEFDF24400F85B660E1510B6A9546BEF8AE33A82/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708040724/4EC16CEEFEC119C5BEB75F6E7444FE4515CA36D4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708044475/DAAE1705D3922D41DA166661D2BBC990470CFF61/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.99794 rotZ: -4.16127332e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 4.8 posY: 2.57 posZ: 6.47 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Carolyn Fern a038ff.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Carolyn Fern a038ff.yaml index 5e0cbdef5..0b0a13198 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Carolyn Fern a038ff.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Carolyn Fern a038ff.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708060895/93E0CEC02A71E77B025DEBE04062D565ABD65D11/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708057800/291702BF8534F8B2243E83E9A26970495545BE76/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708060953/2D7FA90625496CF0D2AD658E89B1853964C842EC/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708057853/34252766A27380A65E779226890EA55F9C08818E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000046 rotZ: -3.45373155e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -9.93 posY: 3.04 posZ: -4.34 - rotX: 359.0 - rotY: 180.0 - rotZ: 358.0 + rotX: 359 + rotY: 180 + rotZ: 358 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Diana Stanley ca7ab1.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Diana Stanley ca7ab1.yaml index 77eade31a..76320d95c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Diana Stanley ca7ab1.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Diana Stanley ca7ab1.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708063555/2F9E266C40AE0397082EFDD464CEFB434AAA239F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708059083/FE0F13EC3BC4129B83902B4ADDD765A5E197B365/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708063597/B87F1B817B0D73543775B5CB291408FA791716E8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708059120/46F8A254A2FF410E3089A56C4A26649D1A4333CA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960001349 posZ: -3.721062 rotX: -2.01119165e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.17004083e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -7.17 posY: 3.03 posZ: -4.28 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Joe Diamond 5f7f8b.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Joe Diamond 5f7f8b.yaml index 5e82f62f4..1ccf07135 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Joe Diamond 5f7f8b.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Joe Diamond 5f7f8b.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708061628/BD683C1BBF4D6284DBF6456B9BF21CDE56875D38/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708058198/E270E67DFC8D0CCF6B3F27ADF8252017F35860C5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708061703/26265EF57B419FD1EE547B539BA791A34010DA6D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708058234/BFDAF1FB116F6CB0DBAC6E5E2EA4C6D169270B07/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -9.196562e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -9.55 posY: 3.03 posZ: -4.32 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Marie Lambeau b47207.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Marie Lambeau b47207.yaml index 8954578d1..96ea0b003 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Marie Lambeau b47207.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Marie Lambeau b47207.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708064666/3B3FCB362F89D258EA5CE949974064DEB781AAC7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708059931/C11E59927991E198A6551EAE10D576C21427CFE0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708064716/CF414F2E1AEA52AC319C8EFA22763DDCA6443BCA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708059970/29895A4A8B99A7FF1A2BA4AD494F291C4694998B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 8.347389e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -4.9 posY: 3.03 posZ: -4.26 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Preston Fairmount d37624.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Preston Fairmount d37624.yaml index e432aa055..50acf27c7 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Preston Fairmount d37624.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Preston Fairmount d37624.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708062694/41602A79A70F570C0B2BDD3F48EB3E0C7277547D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708058707/B20EB03B233EF19F3DCE2DF867F9F8FCEF02D9E2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708062739/B79E2EFBDC5344261BD995937C005CE0DDE6AFC7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708058754/667A445AD0EAF7962759D5BD349F7B6C53662D28/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600011 posZ: -3.82854247 rotX: -0.000163961755 - rotY: 180.0 + rotY: 180 rotZ: -2.39470028e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -8.4 posY: 3.03 posZ: -4.31 - rotX: 359.0 - rotY: 180.0 - rotZ: 358.0 + rotX: 359 + rotY: 180 + rotZ: 358 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Rita Young eb0c23.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Rita Young eb0c23.yaml index ba7a75d29..7aea4b67b 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Rita Young eb0c23.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Circle Undone f2acef/Custom_Tile Rita Young eb0c23.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708064098/9E1DB28CC00E4CD43B52E8814A990EC6C1439028/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708059477/A3B4AAD4C8173EF3EE8F99DC1F943E4A55D231EB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708064139/800CD01A0EE5917CA4D6AA0AEEBB960ECDFD3768/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708059524/2F6A680EF130769312A480970BB67A7AF0AE694A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600022 posZ: -3.73485827 rotX: -2.3794717e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.85044613e-07 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -6.03 posY: 3.03 posZ: -4.3 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26.yaml index bdcc9c87d..e5415cd5d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.65331 g: 0.08469 - r: 0.0 + r: 0 ContainedObjects: - !include 'Bag The Core Set 177b26/Custom_Tile Wendy Adams e6d299.yaml' - !include 'Bag The Core Set 177b26/Custom_Tile Agnes Baker 01470e.yaml' @@ -40,11 +40,11 @@ Transform: posX: 14.62 posY: 3.28 posZ: 6.75 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Agnes Baker 01470e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Agnes Baker 01470e.yaml index b9f5403e9..340d3eb7c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Agnes Baker 01470e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Agnes Baker 01470e.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708116857/F6525F4381108EA389FCB0A907025891D3C0A560/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707198420/4DFF0CA80A65CF166F3455373A5226C153CE7A7A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708116942/214E8832F3F632A6092FB4D9788B42C73EA70A4E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707198474/49327AD91E6F8064ACB52160E7AA58D26241A7A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 1.06000042 posZ: -2.58590031 rotX: -4.193393e-06 - rotY: 180.0 - rotZ: 180.0 + rotY: 180 + rotZ: 180 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 38.46 posY: 1.97 posZ: 14.89 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Daisy Walker 5bc05f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Daisy Walker 5bc05f.yaml index 249fd849d..c370aa481 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Daisy Walker 5bc05f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Daisy Walker 5bc05f.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707152276/A9BCA599A2FAA24875E29E091F8EED45D1E9F905/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707154662/243E17ADB4A0E7510E07DD354F805D349E03E287/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707152339/6A5CB834C2F0D64D0932908D87BD789D695DED00/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707154723/4CEE958BF7444019B4C4AC3186006C76C4314545/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 1.06000268 posZ: -5.908639 rotX: -1.18843254e-05 - rotY: 180.0 + rotY: 180 rotZ: 180.000046 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 19.94 posY: 1.97 posZ: 9.85 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Roland Banks e876b4.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Roland Banks e876b4.yaml index 6f5689a08..f62b68416 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Roland Banks e876b4.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Roland Banks e876b4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707105818/DFA0311033860DD6A8E14C0A40B4BD71F2B06697/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707184473/85338D56A64A03F43794AB8EF5F3A5763AE140B1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230706030974/1E4B02FA9FF5641454726CD0253815C27811BCAE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707104892/3E08D3A6B8BE778339739AF6AE2D2E70A8D2877A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -1.90262035e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 5.77 posY: 3.03 posZ: -0.52 - rotX: 359.0 - rotY: 180.0 - rotZ: 2.0 + rotX: 359 + rotY: 180 + rotZ: 2 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Skids O'Toole e8f6cd.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Skids O'Toole e8f6cd.yaml index 9289699de..4a0f9d7c9 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Skids O'Toole e8f6cd.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Skids O'Toole e8f6cd.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707188729/E4081F8F55E530E269E390A35613A8D4D311BD02/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707186936/7AE575933AB57B52351134E4952A625D6D2297A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707188794/AF0E4CD6B11F907B85D09F26651E3B0EE961FCA3/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707186988/9C5CF0742C6EBC8238C92E195B1D5AAB1B4D7B22/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.999985 rotZ: 180.000122 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 35.11 posY: 1.97 posZ: 15.1 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Wendy Adams e6d299.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Wendy Adams e6d299.yaml index 05c51f4a9..055c471d6 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Wendy Adams e6d299.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Core Set 177b26/Custom_Tile Wendy Adams e6d299.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707202899/CFBE0B6D3BA95995F379A602C5A8A1A583D00793/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707202088/2216F76282F4A4FCB1778C7E5E574B88B001D379/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707202960/E1CD12C981BBAAFACA669288E245EE18EA70323E/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707202149/4A0FD0F0B7A2D889E50B39F972595AC00A2C8A8F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 1.060002 posZ: -5.86200142 rotX: -0.000135441631 - rotY: 180.0 + rotY: 180 rotZ: 180.0001 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 22.15 posY: 1.97 posZ: 6.95 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907.yaml index 97fb8a86e..97bd07790 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 @@ -40,11 +40,11 @@ Transform: posX: 9.42 posY: 1.79 posZ: 2.65 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Luke Robinson 1554fb.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Luke Robinson 1554fb.yaml index 9e6fbd220..f86f6619d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Luke Robinson 1554fb.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Luke Robinson 1554fb.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708197291/94ABB4D5AA7291F65EDFB7B2C3CCA6AA3EF0522F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708201100/5858E2373A89F6CB16FEBE701D3946BA9C965997/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708197345/58932A027E2D20CB188338F45734A0818F3EB38C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708201147/2B427DD014C4FC5209B9AF01F1BC19C79AB0C1F0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 1.1604704e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -6.51 posY: 3.03 posZ: -5.78 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Mandy Thompson 7c5bee.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Mandy Thompson 7c5bee.yaml index 5a1c0af1d..b6c191170 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Mandy Thompson 7c5bee.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Mandy Thompson 7c5bee.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708195342/5351DA7E5E49F475C713410A0E987F1D630C0319/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708199818/DD1907BF3605BF9326C4346C159A2A37E7DAC3BF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708195418/3027FAE236F7533F31123C4A2151F1C88BF800F7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708199872/294C8959E21BED5D48F93E30897485028A4B7174/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -1.606895e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -9.05 posY: 3.03 posZ: -5.91 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Patrice Hathaway 766ad4.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Patrice Hathaway 766ad4.yaml index 34a7f4d18..9104c10ce 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Patrice Hathaway 766ad4.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Patrice Hathaway 766ad4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708197974/23DC99948D8444641D9196853ED669B80B4E1458/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708201644/A0164787739161D57DAE1776D9385A761A6DCCA8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708198074/6B49DCCBADD6BC03EA4E6564C5D49ABA6E5DD745/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708201716/30C452E02E8909A9B104CE8ACC0E66DC41976DE2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 1.294456e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -5.21 posY: 3.03 posZ: -5.77 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tommy Muldoon 83023e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tommy Muldoon 83023e.yaml index bfcafd2b8..9515e7914 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tommy Muldoon 83023e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tommy Muldoon 83023e.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708194665/A34C45D69EC2BE7C20E1805631BB915C013B88F4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708199362/4BD038D582CFD3330C47C61F58EF6A7CE9E1CE1B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708194721/C86B6842A9D4FB9D48FB9D37DAC53258A957403D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708199413/555A8115D647A95F0B148ECF884E01C708EF6016/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.999954 rotZ: 180.000214 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -12.15 posY: 3.03 posZ: 1.97 - rotX: 359.0 - rotY: 180.0 - rotZ: 358.0 + rotX: 359 + rotY: 180 + rotZ: 358 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tony Morgan 4ac15b.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tony Morgan 4ac15b.yaml index 317888c12..854f4e815 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tony Morgan 4ac15b.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dream-Eaters 0c3907/Custom_Tile Tony Morgan 4ac15b.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708196300/FB58ECD4C705DDBE1292D2697D813C23C24C9BB9/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708200588/B83243F3620B8A3F857EF19BD6C918DB791535E5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708196357/33B209F29895F79441FD38C527C7B547347C095D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708200641/15C6BAF9B845A1180C9C02DFD64D8D4466B5B3B9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.999985 rotZ: 180.000031 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -7.8 posY: 3.04 posZ: -5.87 - rotX: 1.0 - rotY: 180.0 - rotZ: 359.0 + rotX: 1 + rotY: 180 + rotZ: 359 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223.yaml index e3ea41da0..36cbc8cd4 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.17373 g: 0.25261 - r: 0.0 + r: 0 ContainedObjects: - !include 'Bag The Dunwich Legacy 315223/Custom_Tile Ashcan Pete 0d621f.yaml' - !include 'Bag The Dunwich Legacy 315223/Custom_Tile Jim Culver 42a760.yaml' @@ -40,11 +40,11 @@ Transform: posX: 10.73 posY: 1.79 posZ: 2.23 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Ashcan Pete 0d621f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Ashcan Pete 0d621f.yaml index 68d10ce9f..0633d0faf 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Ashcan Pete 0d621f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Ashcan Pete 0d621f.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707437839/DF4CBA1822068BBA831D3EB8AD13474FB8DBCA81/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707435937/D3FD68FB9D25C45F4351E231A1A1500F8B52B0E8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707437877/A17FC0F81149FD5750D725CEA1CB8E2E2990CAE2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707435976/099E4506B9C55A529BEE7202D3A9E62162B95C14/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600011 posZ: -7.34163046 rotX: -0.000219753332 - rotY: 180.0 + rotY: 180 rotZ: -3.21620137e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 4.81 posY: 1.97 posZ: -4.71 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jenny Barnes 56ca21.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jenny Barnes 56ca21.yaml index a5e8de5fb..8fae107d6 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jenny Barnes 56ca21.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jenny Barnes 56ca21.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707439869/3AA87F4C885E1928F938394AF7754160FCC0694D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436022/F40952A2FE9BB173600E2F9CE67BCEDBCFEEABAB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707439928/BDA49447868E6DC922CA397493CBBABA7C904C23/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436065/6A5BB76DE8B25F6D7C83B3CDA901357B8ED083A3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600029 posZ: -6.38804436 rotX: -2.06030254e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.89492821e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -6.77 posY: 3.04 posZ: -7.82 - rotX: 1.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 1 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jim Culver 42a760.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jim Culver 42a760.yaml index bd9699217..bf9013cbe 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jim Culver 42a760.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Jim Culver 42a760.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707440813/6326948A8D087B2101B9B283C1856EFB54F8E580/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436133/DC2C6B48A6F101ADFEDC5CA8ADDC6F2D7FA1D384/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707440855/BC820789B1008EC280F57C9D88D56F1754B0E57F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436175/12917AAB8964F6124B3CDF7FFC0FAE69BBFA4C82/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000031 rotZ: -3.143159e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -5.53 posY: 3.03 posZ: -7.83 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Rex Murphy 5996b0.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Rex Murphy 5996b0.yaml index d18e90c23..f530d6314 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Rex Murphy 5996b0.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Rex Murphy 5996b0.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707438760/FAC759B3ADCD73C2FC051AB3615E617C786D5183/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436215/18CA3FE1CE4A7591CE9C57673CCDF38F436B1BD9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707438830/73F639A55F38437B85A9B8F5E28431C5BD87989C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436256/F4B3B32406F832907733CCFDC02F9292B9232DE2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600011 posZ: -3.68585539 rotX: -0.000162696844 - rotY: 180.0 + rotY: 180 rotZ: -2.29980924e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -7.86 posY: 3.03 posZ: -7.84 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Zoey Samaras 60372a.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Zoey Samaras 60372a.yaml index ec7a65440..5b9666f90 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Zoey Samaras 60372a.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Dunwich Legacy 315223/Custom_Tile Zoey Samaras 60372a.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707434611/45CAB2711B641D5400837665F1D6CD3D16B27C8D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436303/6B67F7F71CACE92D53DB204A6643392000EC5BE2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707434655/CE8F32FF4549A14B8BADE3C0E48F68F0E61B72FC/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707436343/8E7FB54B7D1A9FD6D037A4AE044A257580EC7BB8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 8.123292e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -8.99 posY: 3.03 posZ: -7.86 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231.yaml index 96b0bc703..db129f74b 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.15196 - g: 0.0 + g: 0 r: 0.41289 ContainedObjects: - !include 'Bag The Forgotten Age d32231/Bag City of Archives cdd5b5.yaml' @@ -41,11 +41,11 @@ Transform: posX: 15.59 posY: 3.29 posZ: 1.94 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5.yaml index 771fc3283..d93601556 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.15294 - g: 0.0 + g: 0 r: 0.41176 ContainedObjects: - !include 'Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian db5660.yaml' @@ -41,11 +41,11 @@ Transform: posX: 17.62 posY: 1.79 posZ: -9.52 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 41af3c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 41af3c.yaml index cbb6a3d8b..b24076808 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 41af3c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 41af3c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508538/25188B78E433A1487103B4D7FEBF8660AEBDB017/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708494679/FCF06130784FD5EDD0694D5794017F9ACB052315/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508579/64A0C0B09767C447CC1441E1B54BA67FB66DA3BA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708494734/076A18365A14C7E7F89184FDFFBB50B3B539C586/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 1.23184545e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -8.76 posY: 3.02 posZ: -6.17 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 59d9b9.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 59d9b9.yaml index 3b9c7bdeb..1454a2874 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 59d9b9.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 59d9b9.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508538/25188B78E433A1487103B4D7FEBF8660AEBDB017/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708495053/9F1C7D1CF0A5F67422EB475891FFBC8B4AAE7332/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508579/64A0C0B09767C447CC1441E1B54BA67FB66DA3BA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708495101/BC22F1A3252365C98CD5E4CF8B90D5B7BF5D5D94/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 179.888611 rotZ: 6.892589 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -7.19 posY: 3.02 posZ: -6.04 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 7edb33.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 7edb33.yaml index 9f1b50b40..df1f10a9c 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 7edb33.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 7edb33.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508538/25188B78E433A1487103B4D7FEBF8660AEBDB017/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708494812/35FCC25E42DEEFBDEE5532239458267C6A2249FE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508579/64A0C0B09767C447CC1441E1B54BA67FB66DA3BA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708494846/558E4AE3FCAB615FF4DD53792BC437859380AB97/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.96000123 posZ: -3.264808 rotX: -2.00939721e-05 - rotY: 180.0 + rotY: 180 rotZ: -9.9067e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -5.26 posY: 3.03 posZ: -5.74 - rotX: 358.0 - rotY: 180.0 - rotZ: 1.0 + rotX: 358 + rotY: 180 + rotZ: 1 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 864f65.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 864f65.yaml index 084e66fda..f2437e0d6 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 864f65.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian 864f65.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508538/25188B78E433A1487103B4D7FEBF8660AEBDB017/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708494976/72A53130063D24E953167BE7B0CA1AAC70C79DB6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508579/64A0C0B09767C447CC1441E1B54BA67FB66DA3BA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708495014/AF340EF63C3FA81AB77B57C304505D3D1E45D42A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000046 rotZ: -8.162348e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -3.75 posY: 3.02 posZ: -5.87 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian ae05ab.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian ae05ab.yaml index d87eee7dd..ba78ec6d1 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian ae05ab.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian ae05ab.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508538/25188B78E433A1487103B4D7FEBF8660AEBDB017/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708495147/5E40C14ABB1F144C335EDF3C38B474546EF9945F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508579/64A0C0B09767C447CC1441E1B54BA67FB66DA3BA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708495191/C7765026DA0DC1C0CA01830224F04468A6B5CBBD/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.0001 rotZ: 1.33664835e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -1.94 posY: 3.02 posZ: -5.62 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian db5660.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian db5660.yaml index 2fa3ed6ec..22cc4505f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian db5660.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Bag City of Archives cdd5b5/Custom_Tile Body of a Yithian db5660.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508538/25188B78E433A1487103B4D7FEBF8660AEBDB017/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708494885/788378B90865B37A2AAF16F0E5E78F04E4B02828/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708508579/64A0C0B09767C447CC1441E1B54BA67FB66DA3BA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708494922/D8FB1A9F81A9280B7FE5DBD7B4C2AB7F47ACFDCE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000076 rotZ: -2.682792e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -0.2 posY: 3.02 posZ: -5.56 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Calvin Wright c1f75b.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Calvin Wright c1f75b.yaml index 041ed1500..cb9ea57cd 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Calvin Wright c1f75b.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Calvin Wright c1f75b.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707758465/E5CA9A3BF3B3179F1A10B02570EC798997022E8D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707750962/F45A0066CD7BE9E910401289D2F9BB1F313A5299/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707758516/DE0C25D639BA250F1233C2E23C9556A7475ACCB8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707751017/03DB96699627ADEB657478D40C69B39A9ED58B61/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -2.52172267e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -1.62 posY: 3.02 posZ: -7.01 - rotX: 358.0 - rotY: 180.0 - rotZ: 2.0 + rotX: 358 + rotY: 180 + rotZ: 2 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Father Mateo f8d9b3.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Father Mateo f8d9b3.yaml index 44bd3ce14..372cbb515 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Father Mateo f8d9b3.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Father Mateo f8d9b3.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707758059/FF47A21028678562DF0ED3B4DF7D7814FE0281E0/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707750559/FFC924E25985685F14BACCD3B2ADF1CB37D9B1C4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707758100/8FC7921B1688B0C0059DBA6E920FB97740065E72/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707750616/8FE56DC4942B76B85B58969A9C4C31D15BE83DFB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -4.14255665e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -1.34 posY: 3.02 posZ: -7.01 - rotX: 359.0 - rotY: 180.0 - rotZ: 1.0 + rotX: 359 + rotY: 180 + rotZ: 1 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Finn Edwards 46ca51.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Finn Edwards 46ca51.yaml index 82e3c8383..f8f2080dd 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Finn Edwards 46ca51.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Finn Edwards 46ca51.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707757545/03D2D6CD390A00A82423C49D687A8CC47DFA43D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707750170/5332C0513469EABC4C2F1B07EDAAE32F39770E70/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707757588/3537B8A94D9A6F042DA905329477EFD81391474A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707750209/A710646322E7116EC3EBBB1254E9B4A68D6B7CE2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600012 posZ: -2.99892831 rotX: -1.80291991e-05 - rotY: 180.0 + rotY: 180 rotZ: -2.61345076e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -2.62 posY: 3.02 posZ: -7.05 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Leo Anderson 0d621f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Leo Anderson 0d621f.yaml index 24847d2aa..5341ad8db 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Leo Anderson 0d621f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Leo Anderson 0d621f.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707756335/CC5AFDEA8E26679935805BC32838833E8B12F215/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707749544/BD7A64A90A1FFA471FA4856CB29CCC273B18C7AE/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707756395/E57E07E9A854840BE33D61949BC2B4E3BAC1BFBA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707749604/41DB7C12949B64EA6051C07CF09126D37A16D951/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960001469 posZ: -2.82980585 rotX: -2.17961933e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.16313149e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -8.37 posY: 3.03 posZ: -0.19 - rotX: 359.0 - rotY: 180.0 - rotZ: 1.0 + rotX: 359 + rotY: 180 + rotZ: 1 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Ursula Downs 56e051.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Ursula Downs 56e051.yaml index 3f41d5069..09deaf64e 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Ursula Downs 56e051.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Forgotten Age d32231/Custom_Tile Ursula Downs 56e051.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707756935/8D43B642B7250E7AFE9AD3B4AE6D49EE01EA3665/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707749650/EDF46057C37CA94C52D4A3AF49BE78028530E121/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707756990/F7769C9D015E6143276B37701234D4AD282B5404/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707749696/773DAB8DB22BE7297D18D94B2940525FBBE17307/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960001 posZ: -2.90807033 rotX: -7.7487e-05 - rotY: 180.0 + rotY: 180 rotZ: -5.331672e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 26.71 posY: 1.97 posZ: 23.64 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163.yaml index 8cd3fe43e..0989e0f79 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: b: 0.14874 - g: 0.0 + g: 0 r: 0.70196 ContainedObjects: - !include 'Bag The Innsmouth Conspiracy e65163/Custom_Tile Silas Marsh ea374e.yaml' @@ -40,11 +40,11 @@ Transform: posX: 14.21 posY: 3.29 posZ: -4.09 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Amanda Sharpe e23b96.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Amanda Sharpe e23b96.yaml index 09d902f75..aec7f32cf 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Amanda Sharpe e23b96.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Amanda Sharpe e23b96.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708275352/896FBACDC6BBDCD438BA962B9A02B0D13B597989/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708267572/13622DE74585FC4876A8EFEE8420F8C836BA8519/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708275387/ADA399872F35C5633E24ED2963532A2AA50928EA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708267631/1D18D69C99B182A73C6A5FA575DE99B44852E846/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 1.06000173 posZ: -2.77054262 rotX: -2.325564e-05 - rotY: 180.0 - rotZ: 180.0 + rotY: 180 + rotZ: 180 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -5.61 posY: 3.03 posZ: -3.28 - rotX: 358.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 358 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Dexter Drake cc7ebf.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Dexter Drake cc7ebf.yaml index 29b4be575..76204cbc4 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Dexter Drake cc7ebf.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Dexter Drake cc7ebf.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708276933/1F855BF79C7F245CD86DF20A6DF3EFD003937DD8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708268582/D82F61CFBC8EC78B52B91DC150B694AEAA8786F8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708276987/583BFF57285786963195B100877F2C46A36E0C63/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708268635/F1EF016E4474C1EC62988C8E36B1BF096DE05A5C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600016 posZ: -2.534034 rotX: -4.97978253e-05 - rotY: 180.0 + rotY: 180 rotZ: -3.80652418e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -2.9 posY: 3.03 posZ: -3.25 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Silas Marsh ea374e.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Silas Marsh ea374e.yaml index c29e79ba8..7281a30ac 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Silas Marsh ea374e.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Silas Marsh ea374e.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708277471/62E0152FFC85349404B3B952366F83AC3D730133/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1689372753836133538/08468DD39631F30C51A0D315DBE9827C3C2BC1F7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708277518/28DA0C3837F55D1D6C6E08FF0B60C09E5ED8E33A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708269049/E0FAA98DADFB179B943E24145E590BD71A1779BF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000031 rotZ: -3.02718163e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -1.66 posY: 3.03 posZ: -3.21 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Sister Mary 41af3c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Sister Mary 41af3c.yaml index 72d09bf71..4508b642f 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Sister Mary 41af3c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Sister Mary 41af3c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708274860/6D669E6A0635375970BFFA53B8E4827C1217CD86/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708267155/357D4F44C80BF3EDA4DE2571580CD51AD0409DAD/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708274917/53943BB118CED98CCEFFF4E775A364D6153D8BAD/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708267218/AE7FE2333D8324CE16E72FEA3C75834F077C9E81/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960002065 posZ: -2.78234076 rotX: -0.000101334554 - rotY: 180.0 + rotY: 180 rotZ: -4.245368e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 19.5 posY: 1.97 posZ: 15.45 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Trish Scarborough 54285c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Trish Scarborough 54285c.yaml index 7ff08bb41..d2a458dad 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Trish Scarborough 54285c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Innsmouth Conspiracy e65163/Custom_Tile Trish Scarborough 54285c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708275800/C622A40AC5C14098BFB7B0ABE377E6A8A978A76F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708268082/2B7A49FAE3A48E06D00848FC1E13228836AD72D9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708275836/000C6C99DB78208FD56EFE36A6F5E8895BFC67F0/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708268124/F4AFECA42E7336BC62B6D92FBDE56CA5B0C8D099/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: 4.40210943e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -4.23 posY: 3.03 posZ: -3.24 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0.yaml index 0c719088c..70169d2b2 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: @@ -37,11 +37,11 @@ Transform: posX: 14.23 posY: 3.28 posZ: -2.71 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Gloria Goldberg 41af3c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Gloria Goldberg 41af3c.yaml index ea59e3672..de5d84292 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Gloria Goldberg 41af3c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Gloria Goldberg 41af3c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708456674/D0BD072E388A816E723E14099DB0C0F0F29D1B4A/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708453946/632737736F711F40CB028160C41BEA9ABB0E5452/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708456715/2E1B1D504A7EA17F427E5277185836A03C6F4979/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708454002/B6EE6E9D045F421A99CD5935D3B0DB8359889E89/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960001349 posZ: -2.41127372 rotX: -2.58430046e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.10427845e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -8.78 posY: 3.03 posZ: -1.86 - rotX: 0.0 - rotY: 180.0 - rotZ: 359.0 + rotX: 0 + rotY: 180 + rotZ: 359 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Norman Withers 1d37ae.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Norman Withers 1d37ae.yaml index 13f34f548..aa1b3e7c3 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Norman Withers 1d37ae.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Novellas Only 7ef8b0/Custom_Tile Norman Withers 1d37ae.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708457497/56FD4FA183C86788EF3F0D7109C75D61A711BD29/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708454043/58DCCF75F91563D964F0DE40E0466E7C1E397304/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708457543/F21AA4447E954D0BF945B0C65AEAC3147B94956C/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708454082/88D4671EDA79C9A7580390D1CEABD439B3DFE7A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -1.32418131e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -4.75 posY: 3.03 posZ: -2.2 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc.yaml index ce27ad3a4..49abaacad 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.89346 r: 0.94251 ContainedObjects: @@ -41,11 +41,11 @@ Transform: posX: 13.89 posY: 2.28 posZ: 1.4 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Akachi Onyele f88bf1.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Akachi Onyele f88bf1.yaml index d65a1bf80..0a3d2e377 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Akachi Onyele f88bf1.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Akachi Onyele f88bf1.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707592723/70375E6B3B8398F8882538F8F5681685B0F77222/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707578462/CCF763DA8A203AD1F5BE8ABB07AEAEA4C1B3ABD8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707592774/0A9B3E42B422F90108EFABC21379DB6E26051F17/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707578505/A04B17BD536BC2DC33F5F070E5D58694A9527032/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -2.34869785e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -5.79 posY: 3.03 posZ: -5.85 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Lola Hayes (Neutral) cbf983.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Lola Hayes (Neutral) cbf983.yaml index eafe4b503..e7817ca7e 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Lola Hayes (Neutral) cbf983.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Lola Hayes (Neutral) cbf983.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707599222/202D33AD1FFA1D282B483A6EDC7CC03D85595E38/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707579964/900F66C54FA2AB64A74E93569BB414CA3C4BC281/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707599222/202D33AD1FFA1D282B483A6EDC7CC03D85595E38/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707580357/8291134B86F73EE0134CA1C7BB672B9B3F04ADC6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,33 +79,33 @@ States: posY: 0.9600007 posZ: -3.740093 rotX: -1.53140772e-05 - rotY: 180.0 + rotY: 180 rotZ: -9.69686662e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707599222/202D33AD1FFA1D282B483A6EDC7CC03D85595E38/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707580485/4B830419B7F3AEB58666165001877E1A415B47C9/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -133,30 +133,30 @@ States: rotY: 180.000015 rotZ: -3.19443279e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707599222/202D33AD1FFA1D282B483A6EDC7CC03D85595E38/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707580435/C82EAFF3B0E5C77E27118419AD91257EFF8EF922/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -184,30 +184,30 @@ States: rotY: 180.000031 rotZ: -9.431026e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707599222/202D33AD1FFA1D282B483A6EDC7CC03D85595E38/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707580397/65C490DDEF18EDEAD3EDD3AFE943C78B506B0044/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -235,30 +235,30 @@ States: rotY: 180.000061 rotZ: -0.000100223086 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707599222/202D33AD1FFA1D282B483A6EDC7CC03D85595E38/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707580532/FCF2E57178A974ADCAF999CC50134D280CD16AE0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -286,7 +286,7 @@ States: rotY: 180.000046 rotZ: -2.76226965e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -296,11 +296,11 @@ Transform: posX: -2.98 posY: 3.03 posZ: -5.82 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Mark Harrigan 0d621f.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Mark Harrigan 0d621f.yaml index fe8def1e0..1350691e7 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Mark Harrigan 0d621f.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Mark Harrigan 0d621f.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707582720/274DE982E6EF7CC6CE291A5501F0529FAF89D8FD/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707575606/D310D938F2F80BE2AA945D11D5A00DE859E0B7D2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707582776/E9038E182C6A99AFB84404CAD53D74B5EB214B47/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707575664/8F44118C6EB1153BA870842D850CF23029766D92/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960001945 posZ: -3.94195914 rotX: -2.43047252e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.12649741e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -9.58 posY: 3.03 posZ: -6.03 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Minh Thi Phan 96d784.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Minh Thi Phan 96d784.yaml index 11795abdd..24a433884 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Minh Thi Phan 96d784.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Minh Thi Phan 96d784.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707583229/302295141EC60FA90CB2CA97A4DB56EDDB7B9CEA/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707575701/89C1B8B59FCD52612A43D9817898F3472C190416/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707583273/7EB0882BCC380F605F3A35394A5468FB16AA1822/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707575755/A90C4EA9E4ACCAAEA025F88F4367700F1605BF10/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600035 posZ: -6.75175858 rotX: -1.96382116e-05 - rotY: 180.0 + rotY: 180 rotZ: -3.02018616e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -8.33 posY: 3.03 posZ: -5.97 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Sefina Rousseau 7b1d63.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Sefina Rousseau 7b1d63.yaml index 392af1508..a60810df4 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Sefina Rousseau 7b1d63.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile Sefina Rousseau 7b1d63.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707593340/B0EED020029C8BE786CC86AC0950DE92EB8A0DE1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707579295/FB9F7FD8DC7DC451E702FB89303BF5869C1D6219/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707593391/4DF8A84A64A495829361DB6CE123BD576D52F290/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707579352/48339D32236F9D45D41870ECB9FEDD39649491BF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -3.45095068e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -7.06 posY: 3.03 posZ: -5.9 - rotX: 359.0 - rotY: 180.0 - rotZ: 2.0 + rotX: 359 + rotY: 180 + rotZ: 2 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile William Yorick 0c7474.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile William Yorick 0c7474.yaml index bced73f76..8bd5d6047 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile William Yorick 0c7474.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Path to Carcosa b491bc/Custom_Tile William Yorick 0c7474.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707593832/B8C4E2D75CEFB6C2CC167855163F2A6904E751FE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707579404/BF94E6FC0D4EC9C4916F23C8A1923A0CD558398A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230707593898/33285F298EF3C32C8DE080A330129CFFC3B34BFC/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230707579454/B5C11E1718148750AA9BD6EBEFA3B61A28940D6A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600022 posZ: -7.654583 rotX: -2.45705087e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.108417e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -4.4 posY: 3.03 posZ: -5.89 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53.yaml index f9be4714f..fcf6fa3a1 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.0 + b: 0 g: 0.36652 r: 0.70588 ContainedObjects: @@ -40,11 +40,11 @@ Transform: posX: 8.64 posY: 1.79 posZ: 2.4 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Harvey Walters 98607a.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Harvey Walters 98607a.yaml index d2f7dbc36..50334911a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Harvey Walters 98607a.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Harvey Walters 98607a.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708352413/D2D829214A3D78A3CFE97319A3D3C2B1CAD66AED/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708339924/8530773A311DEA65FB59380D60635DC1510E1D3F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708352462/AB9320A7EFEAABB89C81402FE25E2B86D56518D1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708339987/528F0AB144F2CFA1F81E13B0BA38590D0B2D87B3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.960002542 posZ: -2.53136683 rotX: -1.77730763e-05 - rotY: 180.0 + rotY: 180 rotZ: -3.75366676e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -6.49 posY: 3.03 posZ: -3.21 - rotX: 1.0 - rotY: 180.0 - rotZ: 358.0 + rotX: 1 + rotY: 180 + rotZ: 358 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Jacqueline Fine 8007d3.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Jacqueline Fine 8007d3.yaml index 9213473df..45f88a2e1 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Jacqueline Fine 8007d3.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Jacqueline Fine 8007d3.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708354798/23612793AE012CDFD906D19FAC167E81F3ED78F7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708340666/402C6AA9EACD3D74A286A7BB3F59FADFED47D95E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708354840/A8B4F12E6DD0A1BC641627FD3170671F34551F10/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708340716/31853BB4E6FB5C7C6EB93B48698DEB3DB9198DFD/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -79,10 +79,10 @@ States: posY: 0.9600022 posZ: -2.61121845 rotX: -1.754304e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.87718229e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -3.89 posY: 3.03 posZ: -3.19 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Nathaniel Cho 41af3c.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Nathaniel Cho 41af3c.yaml index a39492246..44ce6f07e 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Nathaniel Cho 41af3c.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Nathaniel Cho 41af3c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708344319/1CBFAE08EF3FDD939AEEC1195F53B6E57F05D098/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708339555/596AB8F4AC36C120431CE65AE962919660CF7F2D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708344373/47E1455D596285DA9AC591B8CBBA8A6BBC3A399D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708339610/369551E19D2D282ACDEFE9E828B5693736415C60/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -80,9 +80,9 @@ States: posZ: -2.944681 rotX: -1.985872e-05 rotY: 180.000015 - rotZ: 180.0 + rotZ: 180 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -7.91 posY: 3.03 posZ: -3.23 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Stella Clark 68c7c8.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Stella Clark 68c7c8.yaml index 93704fd63..afe3d2767 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Stella Clark 68c7c8.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Stella Clark 68c7c8.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708355417/A1FCE73454122F3B14CBCFC313660D9D032624F6/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708341095/86B5B824E926576A815D31D26AE3D0A855D78A2E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708355469/E91F08E1796B1E0E4F21E2E1B7EEF68CB35D433B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708341146/6372AE92829917C3270E03943CAB54DC19B2F7B0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -2.38037519e-05 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -2.56 posY: 3.03 posZ: -3.22 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Winifred Habbamock 801e8a.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Winifred Habbamock 801e8a.yaml index ac1929bc6..fe0cfba72 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Winifred Habbamock 801e8a.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Bag The Starter Decks 151d53/Custom_Tile Winifred Habbamock 801e8a.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708353668/6FFADF9E7F21046DAEDDCC7C7B049831353C8329/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708340350/3880B5C3B9AEA9B05CA358A0DBAAB87D57E33BF7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1763698230708353726/A9E04180C3AE495EA6CB2FA331CEBA034B83EB30/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1763698230708340389/3602C2AD31DB9A9120811C379C432C1924EB9471/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000015 rotZ: -9.511086e-06 scaleX: 0.5657107 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5657107 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: -5.2 posY: 3.03 posZ: -3.2 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.57 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.57 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Custom_Tile Summoned Servitor 862983.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Custom_Tile Summoned Servitor 862983.yaml index 77ac353ef..d273f7cf3 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Custom_Tile Summoned Servitor 862983.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Bag Tokens 8b8b41/Custom_Tile Summoned Servitor 862983.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632950023/32B84D3806148A6BB12304CDBDC1B4B0AEF3BE65/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632961194/758470726C5430CA0E5D55E3B8B96162DD54F145/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,24 +37,24 @@ Snap: false States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1840305815632950061/3DD39FE00BCF2D0F995862FF7BEE8F9B07552894/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1840305815632961243/4484267F67622813B829B1D24E9C35A200828313/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -82,7 +82,7 @@ States: rotY: 180.000031 rotZ: -1.710464e-05 scaleX: 0.801324666 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.801324666 Value: 0 XmlUI: '' @@ -92,11 +92,11 @@ Transform: posX: 16.2 posY: 1.97 posZ: -7.49 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 4564ef.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 4564ef.yaml index 022c17cd3..2488714ab 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 4564ef.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 4564ef.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: "Designed by William \"Lemmingrad\" Jung\n\nTo properly illuminate stands.\n[b]Options[/b]: [b]Lighting[/b]\n1) Set [b]Ambient[/b] to [b]Gradient[/b]. \n2) Turn down [b]Reflection Intensity[/b] to your preference. \n3) Adjust [b]Ambient Intensity[/b] to your preference.\n" @@ -32,11 +32,11 @@ Transform: posX: 17.15 posY: 3.65 posZ: 2.31 - rotX: 0.0 - rotY: 0.0 - rotZ: 2.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 2 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 8dc454.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 8dc454.yaml index 58b6d574d..3997c8b3a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 8dc454.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Arkham Fantasy - Pixel Art Mini-Cards e17c9e/Notecard [b]Arkham Fantasy - Pixel Art Mini-Cards[b] 8dc454.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: 'Updated - 2022-09-13 - Added Scarlet Keys Investigator @@ -38,11 +38,11 @@ Transform: posX: 21.32 posY: 2.04 posZ: 14.05 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.ttslua b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.ttslua index 6c2656d7e..03d73b388 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.ttslua +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.ttslua @@ -1,8 +1,53 @@ -function onload(saved_data) - if saved_data != '' then - local loaded_data = JSON.decode(saved_data) - end +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("accessories/UnderworldMarketHelper") +end) +__bundle_register("accessories/UnderworldMarketHelper", function(require, _LOADED, __bundle_register, __bundle_modules) +local searchLib = require("util/SearchLib") + +function onload(savedData) revealCardPositions = { Vector(3.5, 0.25, 0), Vector(-3.5, 0.25, 0) @@ -31,6 +76,20 @@ function onload(saved_data) movingCards = false self.addContextMenuItem('Reset helper', resetHelper) + + if savedData ~= '' then + local loaded_data = JSON.decode(savedData) + hiddenCards = loaded_data.saved_hiddenCards + + isSetup = true + refreshButtons() + end +end + +function onSave() + return JSON.encode({ + saved_hiddenCards = hiddenCards + }) end function onObjectEnterContainer(container, object) @@ -166,17 +225,8 @@ function getRevealedCards() local revealedCards = {} for _, pos in ipairs(revealCardPositions) do - local hitList = Physics.cast({ - origin = self.positionToWorld(pos) + Vector(0, 0.25, 0), - direction = {0,-1,0}, - type = 1, - max_distance = 2 - }) - - for _, hit in ipairs(hitList) do - if hit.hit_object != self and hit.hit_object.tag == "Card" then - table.insert(revealedCards, hit.hit_object.getGUID()) - end + for _, obj in ipairs(searchLib.atPosition(self.positionToWorld(pos), "isCard")) do + table.insert(revealedCards, obj.getGUID()) end end @@ -271,4 +321,74 @@ function resetHelper() self.reset() print('Underworld Market Helper: Helper has been reset.') -end \ No newline at end of file +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.yaml index eeb4afb62..190ada35d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Model_Bag Underworld Market Helper 3650ea.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -50,9 +50,9 @@ Transform: posX: -38.92 posY: 2.99 posZ: -103.04 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 scaleY: 0.8 scaleZ: 0.8 diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Auto-fail Counter a9a321.ttslua b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Auto-fail Counter a9a321.ttslua new file mode 100644 index 000000000..3e8cdcc2f --- /dev/null +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Auto-fail Counter a9a321.ttslua @@ -0,0 +1,103 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("core/GenericCounter") +end) +__bundle_register("core/GenericCounter", function(require, _LOADED, __bundle_register, __bundle_modules) +MIN_VALUE = 0 +MAX_VALUE = 99 +val = 0 + +function onSave() return JSON.encode(val) end + +function onLoad(savedData) + if savedData ~= nil then + val = JSON.decode(savedData) + end + + local name = self.getName() + local position = {} + + if name == "Damage" or name == "Resources" or name == "Resource Counter" then + position = { 0, 0.06, 0.1 } + elseif name == "Horror" then + position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } + else + position = { 0, 0.06, 0 } + end + + self.createButton({ + label = tostring(val), + click_function = "addOrSubtract", + function_owner = self, + position = position, + height = 600, + width = 1000, + scale = { 1.5, 1.5, 1.5 }, + font_size = 600, + font_color = { 1, 1, 1, 100 }, + color = { 0, 0, 0, 0 } + }) + + self.addContextMenuItem("Add 5", function() updateVal(val + 5) end) + self.addContextMenuItem("Subtract 5", function() updateVal(val - 5) end) + self.addContextMenuItem("Add 10", function() updateVal(val + 10) end) + self.addContextMenuItem("Subtract 10", function() updateVal(val - 10) end) +end + +function updateVal(newVal) + if tonumber(newVal) then + val = math.min(math.max(newVal, MIN_VALUE), MAX_VALUE) + self.editButton({ index = 0, label = tostring(val) }) + end +end + +function addOrSubtract(_, _, isRightClick) + val = math.min(math.max(val + (isRightClick and -1 or 1), MIN_VALUE), MAX_VALUE) + self.editButton({ index = 0, label = tostring(val) }) +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Auto-fail Counter a9a321.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Auto-fail Counter a9a321.yaml new file mode 100644 index 000000000..ff0829eb0 --- /dev/null +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Auto-fail Counter a9a321.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/lns4fhz.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: a9a321 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Custom_Tile Auto-fail Counter a9a321.ttslua' +LuaScriptState: '0' +MeasureMovement: false +Name: Custom_Tile +Nickname: Auto-fail Counter +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: -60.95 + posY: 4.82 + posZ: -74.89 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.ttslua b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.ttslua index 00fc3ccaf..8deb6db87 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.ttslua +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.ttslua @@ -11,4 +11,4 @@ end function toPhaseTwo() self.setState(2) -end \ No newline at end of file +end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.yaml index 7be0c55bc..8197e02d9 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Descriptive Phase Tracker b171c8.yaml @@ -1,10 +1,10 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.0083 r: 0.10624 CustomImage: @@ -13,10 +13,10 @@ CustomImage: Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/933819604050849524/797528309EFBAC7485283048AAB9DA68B8A31891/ ImageURL: http://cloud-3.steamusercontent.com/ugc/933819604050849085/9E22AFD7B0157140FC177DBCCBCB1D61D6A0329F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.0009864086 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/933819604050886219/5987AB68E0D2609CC3831F1311E9070D7189FBA8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/933819604050885611/845B5AA915F30492B5F34864698B9C3627FA5763/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -93,19 +93,19 @@ States: rotY: 269.9888 rotZ: 0.016764963 scaleX: 1.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.5 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 + b: 0 + g: 0 r: 0.235189646 CustomImage: CustomTile: @@ -113,10 +113,10 @@ States: Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/982233321870235526/32D11CE67CBFB6E1197E540F9CA08F871A500C85/ ImageURL: http://cloud-3.steamusercontent.com/ugc/982233321870235122/492996D07ABF6DDA4B605A3013C4892839DCF1F3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -153,18 +153,18 @@ States: rotY: 269.9888 rotZ: 0.016764963 scaleX: 1.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.5 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.3496283 r: 0.5313587 CustomImage: @@ -173,10 +173,10 @@ States: Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/982233321870237827/81374325F650673C37C89E4E2A1DC25F1C97FED8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/982233321870237261/C287CAED2423970F33E72D6C7415CBEC6794C533/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -211,7 +211,7 @@ States: rotY: 269.9888 rotZ: 0.016764963 scaleX: 1.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.5 Value: 0 XmlUI: '' @@ -221,11 +221,11 @@ Transform: posX: 43.12 posY: 2.34 posZ: -36.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Double-Sided Resource bc81cb.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Double-Sided Resource bc81cb.yaml index eb7fa887b..826be7a16 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Double-Sided Resource bc81cb.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Double-Sided Resource bc81cb.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: false Thickness: 0.1 Type: 1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1634201755654309873/9A23829955A98CBAC1E6BA2D3E14D4FFF0A86463/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1634201755654309427/59F903E0AF5599D782B756AB92B5D9203002DF61/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 29.9 posY: 4.09 posZ: -21.01 - rotX: 0.0 - rotY: 0.0 - rotZ: 359.0 + rotX: 0 + rotY: 0 + rotZ: 359 scaleX: 0.46 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.46 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Elder Sign Counter e62cb5.ttslua b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Elder Sign Counter e62cb5.ttslua new file mode 100644 index 000000000..3e8cdcc2f --- /dev/null +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Elder Sign Counter e62cb5.ttslua @@ -0,0 +1,103 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("core/GenericCounter") +end) +__bundle_register("core/GenericCounter", function(require, _LOADED, __bundle_register, __bundle_modules) +MIN_VALUE = 0 +MAX_VALUE = 99 +val = 0 + +function onSave() return JSON.encode(val) end + +function onLoad(savedData) + if savedData ~= nil then + val = JSON.decode(savedData) + end + + local name = self.getName() + local position = {} + + if name == "Damage" or name == "Resources" or name == "Resource Counter" then + position = { 0, 0.06, 0.1 } + elseif name == "Horror" then + position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } + else + position = { 0, 0.06, 0 } + end + + self.createButton({ + label = tostring(val), + click_function = "addOrSubtract", + function_owner = self, + position = position, + height = 600, + width = 1000, + scale = { 1.5, 1.5, 1.5 }, + font_size = 600, + font_color = { 1, 1, 1, 100 }, + color = { 0, 0, 0, 0 } + }) + + self.addContextMenuItem("Add 5", function() updateVal(val + 5) end) + self.addContextMenuItem("Subtract 5", function() updateVal(val - 5) end) + self.addContextMenuItem("Add 10", function() updateVal(val + 10) end) + self.addContextMenuItem("Subtract 10", function() updateVal(val - 10) end) +end + +function updateVal(newVal) + if tonumber(newVal) then + val = math.min(math.max(newVal, MIN_VALUE), MAX_VALUE) + self.editButton({ index = 0, label = tostring(val) }) + end +end + +function addOrSubtract(_, _, isRightClick) + val = math.min(math.max(val + (isRightClick and -1 or 1), MIN_VALUE), MAX_VALUE) + self.editButton({ index = 0, label = tostring(val) }) +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Elder Sign Counter e62cb5.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Elder Sign Counter e62cb5.yaml new file mode 100644 index 000000000..87438d465 --- /dev/null +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Elder Sign Counter e62cb5.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/nEmqjmj.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: e62cb5 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Custom_Tile Elder Sign Counter e62cb5.ttslua' +LuaScriptState: '0' +MeasureMovement: false +Name: Custom_Tile +Nickname: Elder Sign Counter +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: -60.81 + posY: 4.82 + posZ: -75.12 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.ttslua b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.ttslua index 10ef1c235..b7009949d 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.ttslua +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.ttslua @@ -35,4 +35,4 @@ end function clickFun(difficulty) Global.call("setChaosBagState", tokenData[difficulty]) -end \ No newline at end of file +end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.yaml index f841674ec..b6e6173c2 100644 --- a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.yaml +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Generic Difficulty Selector 8112ff.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EcbhVuh.jpg/ ImageURL: http://cloud-3.steamusercontent.com/ugc/965354846165100486/3DC8FCEF364B30758B09EF96AF9458F2B8E64D56/ - WidthScale: 0.0 + WidthScale: 0 Description: Define difficulties in this object's script. DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: 12.17 posY: 4.22 posZ: 29.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 42.0 + rotX: 0 + rotY: 270 + rotZ: 42 scaleX: 2.2 - scaleY: 1.0 + scaleY: 1 scaleZ: 2.2 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Subject 5U-21 Helper 1335e8.ttslua b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Subject 5U-21 Helper 1335e8.ttslua new file mode 100644 index 000000000..c232d1851 --- /dev/null +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Subject 5U-21 Helper 1335e8.ttslua @@ -0,0 +1,217 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("accessories/Subject5U-21Helper") +end) +__bundle_register("accessories/Subject5U-21Helper", function(require, _LOADED, __bundle_register, __bundle_modules) +local searchLib = require("util/SearchLib") + +local classOrder = { + "Guardian", + "Seeker", + "Survivor", + "Mystic", + "Rogue" +} + +local bParam = {} +bParam.width = 0 +bParam.height = 0 +bParam.function_owner = self +bParam.click_function = "none" +bParam.label = "0" +bParam.position = {x = 0, y = 0.1, z = -0.7} +bParam.scale = {x = 0.1, y = 0.1, z = 0.1} +bParam.font_color = "White" +bParam.font_size = 700 + +function onLoad() + self.createButton({ + width = 2750, + height = 800, + function_owner = self, + click_function = "updateDisplayButtons", + label = "Update!", + tooltip = "Count classes from cards on this tile", + position = {x = 0, y = 0.1, z = 0.875}, + scale = {x = 0.1, y = 0.1, z = 0.1}, + font_size = 500 + }) + createDisplayButtons() +end + +function createDisplayButtons() + local x_offset = 0.361 + bParam.position.x = -3 * x_offset + for i = 1, 5 do + bParam.position.x = bParam.position.x + x_offset + self.createButton(bParam) + end +end + +function updateDisplayButtons(_, playerColor) + local classCount = { + Guardian = 0, + Seeker = 0, + Survivor = 0, + Mystic = 0, + Rogue = 0, + uncounted = 0 + } + + -- loop through cards on this helper and count classes from metadata + for _, notes in ipairs(getNotesFromCardsAndContainers()) do + if notes.class then + for str in string.gmatch(notes.class, "([^|]+)") do + if not tonumber(classCount[str]) then + str = "uncounted" + end + classCount[str] = classCount[str] + 1 + end + end + end + + -- edit button labels with index 1-5 + for i = 1, 5 do + self.editButton({index = i, label = classCount[classOrder[i]]}) + end + + -- show message about uncounted cards + if classCount.uncounted > 0 then + printToColor("Search included " .. classCount.uncounted .. " neutral/ununcounted card(s).", playerColor, "Orange") + end +end + +function getNotesFromCardsAndContainers() + local notesList = {} + for _, obj in ipairs(searchLib.onObject(self)) do + local notes = {} + if obj.type == "Card" then + notes = JSON.decode(obj.getGMNotes()) or {} + table.insert(notesList, notes) + elseif obj.type == "Bag" or obj.type == "Deck" then + -- check if there are actually objects contained and loop through them + local containedObjects = obj.getData().ContainedObjects + if containedObjects then + for _, deepObj in ipairs(containedObjects) do + if deepObj.Name == "Card" or deepObj.Name == "CardCustom" then + notes = JSON.decode(deepObj.GMNotes) or {} + table.insert(notesList, notes) + end + end + end + end + end + return notesList +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Subject 5U-21 Helper 1335e8.yaml b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Subject 5U-21 Helper 1335e8.yaml new file mode 100644 index 000000000..f0f2f3f8b --- /dev/null +++ b/unpacked/Custom_Model_Bag Fan-Made Accessories aa8b38/Custom_Tile Subject 5U-21 Helper 1335e8.yaml @@ -0,0 +1,66 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +AttachedSnapPoints: +- Position: + x: -0.5 + y: 0.1 + z: 0.2 +- Position: + x: 0.5 + y: 0.1 + z: 0.2 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 3 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: http://cloud-3.steamusercontent.com/ugc/2088038980375797637/86B5B03D9FC65483CD1FE25E457CE4FFADF6C8CF/ + WidthScale: 0 +Description: 'Place cards, decks or bags on this tile and click "Update!" to display + the class counts. + + + Multi-class cards are counted for all classes (so the total number will be greater + than the amount of cards).' +DragSelectable: true +GMNotes: '' +GUID: 1335e8 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: !include 'Custom_Tile Subject 5U-21 Helper 1335e8.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Subject 5U-21 Helper +Snap: true +Sticky: true +Tags: +- CleanUpHelper_ignore +Tooltip: true +Transform: + posX: 0 + posY: 2 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 4 + scaleY: 1 + scaleZ: 4 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.ttslua deleted file mode 100644 index 5e3a3f62d..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.ttslua +++ /dev/null @@ -1,504 +0,0 @@ --- Utility memory bag by Directsun --- Version 2.5.2 --- Fork of Memory Bag 2.0 by MrStump - -function updateSave() - local data_to_save = {["ml"]=memoryList} - saved_data = JSON.encode(data_to_save) - self.script_state = saved_data -end - -function combineMemoryFromBagsWithin() - local bagObjList = self.getObjects() - for _, bagObj in ipairs(bagObjList) do - local data = bagObj.lua_script_state - if data ~= nil then - local j = JSON.decode(data) - if j ~= nil and j.ml ~= nil then - for guid, entry in pairs(j.ml) do - memoryList[guid] = entry - end - end - end - end -end - -function updateMemoryWithMoves() - memoryList = memoryListBackup - --get the first transposed object's coordinates - local obj = getObjectFromGUID(moveGuid) - - -- p1 is where needs to go, p2 is where it was - local refObjPos = memoryList[moveGuid].pos - local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil) - local movedRotation = obj.getRotation() - for guid, entry in pairs(memoryList) do - memoryList[guid].pos.x = entry.pos.x - deltaPos.x - memoryList[guid].pos.y = entry.pos.y - deltaPos.y - memoryList[guid].pos.z = entry.pos.z - deltaPos.z - -- memoryList[guid].rot.x = movedRotation.x - -- memoryList[guid].rot.y = movedRotation.y - -- memoryList[guid].rot.z = movedRotation.z - end - - --theList[obj.getGUID()] = { - -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)}, - -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)}, - -- lock=obj.getLock() - --} - moveList = {} -end - -function onload(saved_data) - fresh = true - if saved_data ~= "" then - local loaded_data = JSON.decode(saved_data) - --Set up information off of loaded_data - memoryList = loaded_data.ml - else - --Set up information for if there is no saved saved data - memoryList = {} - end - - moveList = {} - moveGuid = nil - - if next(memoryList) == nil then - createSetupButton() - else - fresh = false - createMemoryActionButtons() - end -end - - ---Beginning Setup - - ---Make setup button -function createSetupButton() - self.createButton({ - label="Setup", click_function="buttonClick_setup", function_owner=self, - position={0,0.1,-6}, rotation={0,0,0}, height=500, width=1200, - font_size=350, color={0,0,0}, font_color={1,1,1} - }) -end - ---Triggered by Transpose button -function buttonClick_transpose() - moveGuid = nil - broadcastToAll("Select one object and move it- all objects will move relative to the new location", {0.75, 0.75, 1}) - memoryListBackup = duplicateTable(memoryList) - memoryList = {} - moveList = {} - self.clearButtons() - createButtonsOnAllObjects(true) - createSetupActionButtons(true) -end - ---Triggered by setup button, -function buttonClick_setup() - memoryListBackup = duplicateTable(memoryList) - memoryList = {} - self.clearButtons() - createButtonsOnAllObjects(false) - createSetupActionButtons(false) -end - -function getAllObjectsInMemory() - local objTable = {} - local curObj = {} - - for guid in pairs(memoryListBackup) do - curObj = getObjectFromGUID(guid) - table.insert(objTable, curObj) - end - - return objTable - -- return getAllObjects() -end - ---Creates selection buttons on objects -function createButtonsOnAllObjects(move) - local howManyButtons = 0 - - local objsToHaveButtons = {} - if move == true then - objsToHaveButtons = getAllObjectsInMemory() - else - objsToHaveButtons = getAllObjects() - end - - for _, obj in ipairs(objsToHaveButtons) do - if obj ~= self then - local dummyIndex = howManyButtons - --On a normal bag, the button positions aren't the same size as the bag. - globalScaleFactor = 1 * 1/self.getScale().x - --Super sweet math to set button positions - local selfPos = self.getPosition() - local objPos = obj.getPosition() - local deltaPos = findOffsetDistance(selfPos, objPos, obj) - local objPos = rotateLocalCoordinates(deltaPos, self) - objPos.x = -objPos.x * globalScaleFactor - objPos.y = objPos.y * globalScaleFactor + 4 - objPos.z = objPos.z * globalScaleFactor - --Offset rotation of bag - local rot = self.getRotation() - rot.y = -rot.y + 180 - --Create function - local funcName = "selectButton_" .. howManyButtons - local func = function() buttonClick_selection(dummyIndex, obj, move) end - local color = {0.75,0.25,0.25,0.6} - local colorMove = {0,0,1,0.6} - if move == true then - color = colorMove - end - self.setVar(funcName, func) - self.createButton({ - click_function=funcName, function_owner=self, - position=objPos, rotation=rot, height=1000, width=1000, - color=color, - }) - howManyButtons = howManyButtons + 1 - end - end -end - ---Creates submit and cancel buttons -function createSetupActionButtons(move) - self.createButton({ - label="Cancel", click_function="buttonClick_cancel", function_owner=self, - position={0,1,-2}, rotation={0,0,0}, height=240, width=550, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) - - self.createButton({ - label="Submit", click_function="buttonClick_submit", function_owner=self, - position={-1.2,1,-2}, rotation={0,0,0}, height=240, width=570, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) - - if move == false then - self.createButton({ - label="Add", click_function="buttonClick_add", function_owner=self, - position={-1.2,1,2}, rotation={0,0,0}, height=240, width=550, - font_size=150, color={0,0,0}, font_color={0.25,1,0.25} - }) - - if fresh == false then - self.createButton({ - label="Set New", click_function="buttonClick_setNew", function_owner=self, - position={0,1,2}, rotation={0,0,0}, height=240, width=600, - font_size=150, color={0,0,0}, font_color={0.75,0.75,1} - }) - self.createButton({ - label="Remove", click_function="buttonClick_remove", function_owner=self, - position={1.3,1,2}, rotation={0,0,0}, height=240, width=600, - font_size=150, color={0,0,0}, font_color={1,0.25,0.25} - }) - end - end - - self.createButton({ - label="Reset", click_function="buttonClick_reset", function_owner=self, - position={1.2,1,-2}, rotation={0,0,0}, height=240, width=500, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) -end - - ---During Setup - - ---Checks or unchecks buttons -function buttonClick_selection(index, obj, move) - local colorMove = {0,0,1,0.6} - local color = {0,1,0,0.6} - - previousGuid = selectedGuid - selectedGuid = obj.getGUID() - - theList = memoryList - if move == true then - theList = moveList - if previousGuid ~= nil and previousGuid ~= selectedGuid then - local prevObj = getObjectFromGUID(previousGuid) - prevObj.highlightOff() - self.editButton({index=previousIndex, color=colorMove}) - theList[previousGuid] = nil - end - previousIndex = index - end - - if theList[selectedGuid] == nil then - self.editButton({index=index, color=color}) - --Adding pos/rot to memory table - local pos, rot = obj.getPosition(), obj.getRotation() - --I need to add it like this or it won't save due to indexing issue - theList[obj.getGUID()] = { - pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)}, - rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)}, - lock=obj.getLock() - } - obj.highlightOn({0,1,0}) - else - color = {0.75,0.25,0.25,0.6} - if move == true then - color = colorMove - end - self.editButton({index=index, color=color}) - theList[obj.getGUID()] = nil - obj.highlightOff() - end -end - ---Cancels selection process -function buttonClick_cancel() - memoryList = memoryListBackup - moveList = {} - self.clearButtons() - if next(memoryList) == nil then - createSetupButton() - else - createMemoryActionButtons() - end - removeAllHighlights() - broadcastToAll("Selection Canceled", {1,1,1}) - moveGuid = nil -end - ---Saves selections -function buttonClick_submit() - fresh = false - if next(moveList) ~= nil then - for guid in pairs(moveList) do - moveGuid = guid - end - if memoryListBackup[moveGuid] == nil then - broadcastToAll("Item selected for moving is not already in memory", {1, 0.25, 0.25}) - else - broadcastToAll("Moving all items in memory relative to new objects position!", {0.75, 0.75, 1}) - self.clearButtons() - createMemoryActionButtons() - local count = 0 - for guid in pairs(moveList) do - moveGuid = guid - count = count + 1 - local obj = getObjectFromGUID(guid) - if obj ~= nil then obj.highlightOff() end - end - updateMemoryWithMoves() - updateSave() - buttonClick_place() - end - elseif next(memoryList) == nil and moveGuid == nil then - memoryList = memoryListBackup - broadcastToAll("No selections made.", {0.75, 0.25, 0.25}) - end - combineMemoryFromBagsWithin() - self.clearButtons() - createMemoryActionButtons() - local count = 0 - for guid in pairs(memoryList) do - count = count + 1 - local obj = getObjectFromGUID(guid) - if obj ~= nil then obj.highlightOff() end - end - broadcastToAll(count.." Objects Saved", {1,1,1}) - updateSave() - moveGuid = nil -end - -function combineTables(first_table, second_table) - for k,v in pairs(second_table) do first_table[k] = v end -end - -function buttonClick_add() - fresh = false - combineTables(memoryList, memoryListBackup) - broadcastToAll("Adding internal bags and selections to existing memory", {0.25, 0.75, 0.25}) - combineMemoryFromBagsWithin() - self.clearButtons() - createMemoryActionButtons() - local count = 0 - for guid in pairs(memoryList) do - count = count + 1 - local obj = getObjectFromGUID(guid) - if obj ~= nil then obj.highlightOff() end - end - broadcastToAll(count.." Objects Saved", {1,1,1}) - updateSave() -end - -function buttonClick_remove() - broadcastToAll("Removing Selected Entries From Memory", {1.0, 0.25, 0.25}) - self.clearButtons() - createMemoryActionButtons() - local count = 0 - for guid in pairs(memoryList) do - count = count + 1 - memoryListBackup[guid] = nil - local obj = getObjectFromGUID(guid) - if obj ~= nil then obj.highlightOff() end - end - broadcastToAll(count.." Objects Removed", {1,1,1}) - memoryList = memoryListBackup - updateSave() -end - -function buttonClick_setNew() - broadcastToAll("Setting new position relative to items in memory", {0.75, 0.75, 1}) - self.clearButtons() - createMemoryActionButtons() - local count = 0 - for _, obj in ipairs(getAllObjects()) do - guid = obj.guid - if memoryListBackup[guid] ~= nil then - count = count + 1 - memoryListBackup[guid].pos = obj.getPosition() - memoryListBackup[guid].rot = obj.getRotation() - memoryListBackup[guid].lock = obj.getLock() - end - end - broadcastToAll(count.." Objects Saved", {1,1,1}) - memoryList = memoryListBackup - updateSave() -end - ---Resets bag to starting status -function buttonClick_reset() - fresh = true - memoryList = {} - self.clearButtons() - createSetupButton() - removeAllHighlights() - broadcastToAll("Tool Reset", {1,1,1}) - updateSave() -end - - ---After Setup - - ---Creates recall and place buttons -function createMemoryActionButtons() - self.createButton({ - label="Place", click_function="buttonClick_place", function_owner=self, - position={0.7,1,2}, rotation={0,0,0}, height=280, width=600, - font_size=200, color={0,0,0}, font_color={1,1,1} - }) - self.createButton({ - label="Recall", click_function="buttonClick_recall", function_owner=self, - position={-0.7,1,2}, rotation={0,0,0}, height=280, width=650, - font_size=200, color={0,0,0}, font_color={1,1,1} - }) - self.createButton({ - label="Setup", click_function="buttonClick_setup", function_owner=self, - position={0,1,-2}, rotation={0,0,0}, height=240, width=500, - font_size=150, color={0,0,0}, font_color={1,1,1} - }) - ---- self.createButton({ ---- label="Move", click_function="buttonClick_transpose", function_owner=self, ---- position={-2.8,0.3,0}, rotation={0,0,0}, height=350, width=800, ---- font_size=250, color={0,0,0}, font_color={0.75,0.75,1} ---- }) -end - ---Sends objects from bag/table to their saved position/rotation -function buttonClick_place() - local bagObjList = self.getObjects() - for guid, entry in pairs(memoryList) do - local obj = getObjectFromGUID(guid) - --If obj is out on the table, move it to the saved pos/rot - if obj ~= nil then - obj.setPositionSmooth(entry.pos) - obj.setRotationSmooth(entry.rot) - obj.setLock(entry.lock) - else - --If obj is inside of the bag - for _, bagObj in ipairs(bagObjList) do - if bagObj.guid == guid then - local item = self.takeObject({ - guid=guid, position=entry.pos, rotation=entry.rot, smooth=false - }) - item.setLock(entry.lock) - break - end - end - end - end - broadcastToAll("Objects Placed", {1,1,1}) -end - ---Recalls objects to bag from table -function buttonClick_recall() - for guid, entry in pairs(memoryList) do - local obj = getObjectFromGUID(guid) - if obj ~= nil then self.putObject(obj) end - end - broadcastToAll("Objects Recalled", {1,1,1}) -end - - ---Utility functions - - ---Find delta (difference) between 2 x/y/z coordinates -function findOffsetDistance(p1, p2, obj) - local yOffset = 0 - if obj ~= nil then - local bounds = obj.getBounds() - yOffset = (bounds.size.y - bounds.offset.y) - end - local deltaPos = {} - deltaPos.x = (p2.x-p1.x) - deltaPos.y = (p2.y-p1.y) + yOffset - deltaPos.z = (p2.z-p1.z) - return deltaPos -end - ---Used to rotate a set of coordinates by an angle -function rotateLocalCoordinates(desiredPos, obj) - local objPos, objRot = obj.getPosition(), obj.getRotation() - local angle = math.rad(objRot.y) - local x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle) - local z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle) - --return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z} - return {x=x, y=desiredPos.y, z=z} -end - -function rotateMyCoordinates(desiredPos, obj) - local angle = math.rad(obj.getRotation().y) - local x = desiredPos.x * math.sin(angle) - local z = desiredPos.z * math.cos(angle) - return {x=x, y=desiredPos.y, z=z} -end - ---Coroutine delay, in seconds -function wait(time) - local start = os.time() - repeat coroutine.yield(0) until os.time() > start + time -end - ---Duplicates a table (needed to prevent it making reference to the same objects) -function duplicateTable(oldTable) - local newTable = {} - for k, v in pairs(oldTable) do - newTable[k] = v - end - return newTable -end - ---Moves scripted highlight from all objects -function removeAllHighlights() - for _, obj in ipairs(getAllObjects()) do - obj.highlightOff() - end -end - ---Round number (num) to the Nth decimal (dec) -function round(num, dec) - local mult = 10^(dec or 0) - return math.floor(num * mult + 0.5) / mult -end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.yaml deleted file mode 100644 index 95cc37342..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.yaml +++ /dev/null @@ -1,68 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -Bag: - Order: 0 -ColorDiffuse: - b: 1.0 - g: 0.9921699 - r: 1.0 -ContainedObjects: -- !include 'Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag - Fan-Made Standalone Scenarios 5db60c.yaml' -- !include 'Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag - Fan-Made Campaigns 89c32e.yaml' -- !include 'Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Bag Secret - Objectives & Ultimatums b2077d.yaml' -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068588410888435/EDEEC5792F4161A1F125EF7F65AB1C1DC8FDBC27/ - MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 - NormalURL: '' - TypeIndex: 6 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: 66e97c -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c.ttslua' -LuaScriptState: "{\"ml\":{\"5db60c\":{\"lock\":false,\"pos\":{\"x\":-9,\"y\":1.4815,\"z\":-50},\"rot\":{\"x\":0,\"y\":270.0001,\"z\":0}},\"89c32e\":{\"lock\":false,\"pos\":{\"x\":-9,\"y\":1.4815,\"z\":-60},\"rot\":{\"x\":0,\"y\":270.0001,\"z\":0}},\"b2077d\":{\"lock\":false,\"pos\":{\"x\":-9,\"y\":1.2965,\"z\":-55},\"rot\":{\"x\":0,\"y\":269.9973,\"z\":0}}}}\r" -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Custom_Model_Bag -Nickname: Fan-Made Scenarios/Campaigns/Miscellany -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 0.0 - posY: 1.87 - posZ: -55.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.76 - scaleY: 0.11 - scaleZ: 1.49 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e.yaml deleted file mode 100644 index 2a4aa7a47..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e.yaml +++ /dev/null @@ -1,128 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -Bag: - Order: 0 -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -ContainedObjects: -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Winter Winds 754057.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The War of the - Worlds 19d469.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Strange Aeons - 2abdd6.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The (Unofficial) - Return to The Innsmouth Conspiracy bba2b6.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Pokemon Eldritch - Edition 75fe78.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Parallel Universe - 28e0a1.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Outsider 3c175c.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ordo Templi Orientis - 608bea.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Of Sphinx and - Sands edb650.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model North Country - Cycle aaceca.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Machining A Mystery - 79b36d.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The London Set - 0f96ac.yaml' -- !include "Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kiedy sny Staj\u0105 - si\u0119 Rzeczywi\u015Bci\u0105 acdf16.yaml" -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kaimonogatari - 2df25a.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Jumanji b46db2.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Into the Shadowlands - 019847.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Idol Thoughts - 2d417b.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Half-Life b46db2.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Ghosts Of - Onigawa Campaign Expansion 8daa73.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Future Reflections - 0f0680.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Essence of Humanity - Campaign Box 691339.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Dying Star - bcfff6.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Dark Matter d713f4.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Darkham Horror - bc7fa7.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Cyclopean Foundations - 169eb9.yaml' -- !include "Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model \uF729The Crown - of Egil 7458b7.yaml" -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Color Out - of Oz be7d21.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Close Encounters - of the LV-426 Kind 4f5421.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Circus Ex Mortis - Campaign 93b8cb.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Celtic Rising - 4d305a.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Call of the Plaguebearer - 613b64.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Bloodborne - City - of the Unseen 24fb2b.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Betrayal at the - Mountains of Madness ef939a.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Approaching - Storm ab6b9a.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Alice in Wonderland - 39916d.yaml' -- !include 'Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ages Unwound f7e5eb.yaml' -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068588410858852/B3312EB929FDEF7CB2B88F98CD757950B919B147/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 6 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: 89c32e -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '{"ml":[]}' -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Custom_Model_Bag -Nickname: Fan-Made Campaigns -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.0 - posY: 1.48 - posZ: -60.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 0.5 - scaleY: 0.1 - scaleZ: 0.5 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ages Unwound f7e5eb.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ages Unwound f7e5eb.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ages Unwound f7e5eb.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ages Unwound f7e5eb.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ages Unwound f7e5eb.yaml deleted file mode 100644 index 3b4121bf5..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ages Unwound f7e5eb.yaml +++ /dev/null @@ -1,72 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - b: 0.40592 - g: 0.40592 - r: 0.40592 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1811004822724765158/DE184EBA95BF16D06DC2528B30E9058A87C7567E/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_ages_unwound.json -GUID: f7e5eb -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Ages Unwound f7e5eb.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Ages Unwound -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 18.63 - posY: 1.85 - posZ: 24.43 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Alice in Wonderland 39916d.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Alice in Wonderland 39916d.yaml deleted file mode 100644 index df54fdd52..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Alice in Wonderland 39916d.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1478823218929917964/80063921C2355FE26816A0E40F88D31F9EF5C4A6/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_alice_in_wonderland.json -GUID: 39916d -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Alice in Wonderland 39916d.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Alice in Wonderland -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 15.31 - posY: 1.82 - posZ: -2.2 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Betrayal at the Mountains of Madness ef939a.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Betrayal at the Mountains of Madness ef939a.yaml deleted file mode 100644 index 4f7f7abee..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Betrayal at the Mountains of Madness ef939a.yaml +++ /dev/null @@ -1,60 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1479949766318759506/9BAB9C45ECB33AC5A0F83806B5EF79A6D89C1D31/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_betrayal_at_mountains.json -GUID: ef939a -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Betrayal at the Mountains of Madness ef939a.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Betrayal at the Mountains of Madness -Snap: true -Sticky: true -Tags: -- LargeBox -Tooltip: true -Transform: - posX: 61.16 - posY: 3.41 - posZ: -57.22 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 0.14 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Bloodborne - City of the Unseen 24fb2b.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Bloodborne - City of the Unseen 24fb2b.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Bloodborne - City of the Unseen 24fb2b.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Bloodborne - City of the Unseen 24fb2b.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Bloodborne - City of the Unseen 24fb2b.yaml deleted file mode 100644 index 8f8feaf1b..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Bloodborne - City of the Unseen 24fb2b.yaml +++ /dev/null @@ -1,60 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: https://i.imgur.com/WtioCq1.jpg - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_bloodborne.json -GUID: 24fb2b -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Bloodborne - City of the Unseen 24fb2b.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Bloodborne - City of the Unseen -Snap: true -Sticky: true -Tags: -- LargeBox -Tooltip: true -Transform: - posX: -9.28 - posY: 2.68 - posZ: -109.46 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 0.14 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Call of the Plaguebearer 613b64.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Call of the Plaguebearer 613b64.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Call of the Plaguebearer 613b64.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Call of the Plaguebearer 613b64.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Call of the Plaguebearer 613b64.yaml deleted file mode 100644 index e460bf164..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Call of the Plaguebearer 613b64.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1767067672754132384/EBC8D780049D2612C6BC0603BD87E94769C34D19/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_call_of_the_plaguebearer.json -GUID: 613b64 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Call of the Plaguebearer 613b64.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Call of the Plaguebearer -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -6.24 - posY: 1.62 - posZ: 68.9 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Celtic Rising 4d305a.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Celtic Rising 4d305a.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Celtic Rising 4d305a.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Celtic Rising 4d305a.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Celtic Rising 4d305a.yaml deleted file mode 100644 index d47aec1d5..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Celtic Rising 4d305a.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1754685726010541421/DC8223A713D02261326877B51FC717A9BAA217B8/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: 5 Scenario Custom Cycle -DragSelectable: true -GMNotes: fancreations/campaign_celtic_rising.json -GUID: 4d305a -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Celtic Rising 4d305a.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Celtic Rising -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 26.69 - posY: 5.16 - posZ: -36.15 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Circus Ex Mortis Campaign 93b8cb.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Circus Ex Mortis Campaign 93b8cb.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Circus Ex Mortis Campaign 93b8cb.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Circus Ex Mortis Campaign 93b8cb.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Circus Ex Mortis Campaign 93b8cb.yaml deleted file mode 100644 index ded14bedc..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Circus Ex Mortis Campaign 93b8cb.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27843 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2001337710389944099/BC4BADD35E9E87F6BC0BAC93F0FCEB168848AAAC/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_circus_ex_mortis.json -GUID: 93b8cb -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Circus Ex Mortis Campaign 93b8cb.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Circus Ex Mortis Campaign -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -4.07 - posY: 1.97 - posZ: -123.42 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Close Encounters of the LV-426 Kind 4f5421.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Close Encounters of the LV-426 Kind 4f5421.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Close Encounters of the LV-426 Kind 4f5421.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Close Encounters of the LV-426 Kind 4f5421.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Close Encounters of the LV-426 Kind 4f5421.yaml deleted file mode 100644 index 02ea19b9f..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Close Encounters of the LV-426 Kind 4f5421.yaml +++ /dev/null @@ -1,60 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2018214163836048989/445ECEB6725E5387C41EEB8FBC69A3F247A5AD13/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: lv426 -DragSelectable: true -GMNotes: fancreations/campaign_close_encounters.json -GUID: 4f5421 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Close Encounters of the LV-426 Kind 4f5421.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Close Encounters of the LV-426 Kind -Snap: true -Sticky: true -Tags: -- LargeBox -Tooltip: true -Transform: - posX: -14.86 - posY: 2.58 - posZ: -72.36 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 0.14 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Cyclopean Foundations 169eb9.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Cyclopean Foundations 169eb9.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Cyclopean Foundations 169eb9.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Cyclopean Foundations 169eb9.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Cyclopean Foundations 169eb9.yaml deleted file mode 100644 index fd84162e7..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Cyclopean Foundations 169eb9.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1746813422552975974/8FB3A4AF2D5A102720F630961A2270572ABA2317/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_cyclopean_foundations.json -GUID: 169eb9 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Cyclopean Foundations 169eb9.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Cyclopean Foundations -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -7.51 - posY: 1.62 - posZ: 67.9 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Dark Matter d713f4.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Dark Matter d713f4.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Dark Matter d713f4.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Dark Matter d713f4.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Dark Matter d713f4.yaml deleted file mode 100644 index 10be5df0d..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Dark Matter d713f4.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1699532377258479383/73EBF45477C1D927159E5993D99AD144641037EA/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: Final Release -DragSelectable: true -GMNotes: fancreations/campaign_dark_matter.json -GUID: d713f4 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Dark Matter d713f4.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Dark Matter -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.25 - posY: 1.63 - posZ: 69.27 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Darkham Horror bc7fa7.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Darkham Horror bc7fa7.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Darkham Horror bc7fa7.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Darkham Horror bc7fa7.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Darkham Horror bc7fa7.yaml deleted file mode 100644 index 70ae64d3e..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Darkham Horror bc7fa7.yaml +++ /dev/null @@ -1,72 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - b: 0.39199 - g: 0.39199 - r: 0.39199 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1692775970051821718/827267BBD7EFBAD3EA384A5A04629B2E5BD88EE5/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_darkham_horror.json -GUID: bc7fa7 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Darkham Horror bc7fa7.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Darkham Horror -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 36.93 - posY: 2.29 - posZ: -84.23 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Essence of Humanity Campaign Box 691339.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Essence of Humanity Campaign Box 691339.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Essence of Humanity Campaign Box 691339.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Essence of Humanity Campaign Box 691339.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Essence of Humanity Campaign Box 691339.yaml deleted file mode 100644 index 68b1b5f39..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Essence of Humanity Campaign Box 691339.yaml +++ /dev/null @@ -1,60 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1823394900012495167/63C400A27475E745FF94F8837D7A8AECC7F837F4/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_essence_of_humanity.json -GUID: '691339' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Essence of Humanity Campaign Box 691339.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Essence of Humanity Campaign Box -Snap: true -Sticky: true -Tags: -- LargeBox -Tooltip: true -Transform: - posX: 35.3 - posY: 4.15 - posZ: -6.4 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 0.14 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Future Reflections 0f0680.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Future Reflections 0f0680.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Future Reflections 0f0680.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Future Reflections 0f0680.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Future Reflections 0f0680.yaml deleted file mode 100644 index b3a96d816..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Future Reflections 0f0680.yaml +++ /dev/null @@ -1,60 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_COL.obj - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: https://i.imgur.com/T97bYDU.pnghttps://i.imgur.com/T97bYDU.png - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_future_reflections.json -GUID: 0f0680 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Future Reflections 0f0680.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Future Reflections -Snap: true -Sticky: true -Tags: -- LargeBox -Tooltip: true -Transform: - posX: -9.2 - posY: 1.63 - posZ: 68.86 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 0.14 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Half-Life b46db2.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Half-Life b46db2.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Half-Life b46db2.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Half-Life b46db2.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Half-Life b46db2.yaml deleted file mode 100644 index b2bb55d47..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Half-Life b46db2.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27843 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2005838229417815473/BC879D878262BA9FBD9040AE4F952468C3C4C2CC/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_half-life.json -GUID: b46db2 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Half-Life b46db2.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Half-Life -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -23.67 - posY: 1.97 - posZ: -108.2 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Idol Thoughts 2d417b.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Idol Thoughts 2d417b.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Idol Thoughts 2d417b.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Idol Thoughts 2d417b.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Idol Thoughts 2d417b.yaml deleted file mode 100644 index d483a8f7e..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Idol Thoughts 2d417b.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1011563111884720834/103D38A8FBBFA64EB66439667F8775B15FC679C9/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_idol_thoughts.json -GUID: 2d417b -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Idol Thoughts 2d417b.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Idol Thoughts -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -7.85 - posY: 1.63 - posZ: 68.83 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Into the Shadowlands 019847.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Into the Shadowlands 019847.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Into the Shadowlands 019847.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Into the Shadowlands 019847.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Into the Shadowlands 019847.yaml deleted file mode 100644 index 45c3820e8..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Into the Shadowlands 019847.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142946871/EAA18FFE753B1ED020A9F3117E9654B093369D26/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_into_the_shadowland.json -GUID: 019847 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Into the Shadowlands 019847.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Into the Shadowlands -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -5.02 - posY: 1.62 - posZ: 70.21 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Jumanji b46db2.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Jumanji b46db2.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Jumanji b46db2.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Jumanji b46db2.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Jumanji b46db2.yaml deleted file mode 100644 index bfe40670f..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Jumanji b46db2.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1847049778276522891/B0F1D72796E5A43963B6EFA6B7FD870A89B139AF/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_jumanji.json -GUID: b46db2 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Jumanji b46db2.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Jumanji -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 17.14 - posY: 3.39 - posZ: -31.21 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kaimonogatari 2df25a.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kaimonogatari 2df25a.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kaimonogatari 2df25a.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kaimonogatari 2df25a.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kaimonogatari 2df25a.yaml deleted file mode 100644 index de1f29bdb..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kaimonogatari 2df25a.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1673610640345018565/0AFEB7913AD4F24AA04D2CB7DCD97106F58D33D9/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: version 1.41 -DragSelectable: true -GMNotes: fancreations/campaign_kaimonogatari.json -GUID: 2df25a -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Kaimonogatari 2df25a.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Kaimonogatari -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -7.32 - posY: 1.63 - posZ: 68.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kiedy sny Stają się Rzeczywiścią acdf16.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kiedy sny Stają się Rzeczywiścią acdf16.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kiedy sny Stają się Rzeczywiścią acdf16.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kiedy sny Stają się Rzeczywiścią acdf16.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kiedy sny Stają się Rzeczywiścią acdf16.yaml deleted file mode 100644 index 934a7d53c..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Kiedy sny Stają się Rzeczywiścią acdf16.yaml +++ /dev/null @@ -1,74 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142937909/81868D8E838249B9D5C467282B6EF12DC5879CA5/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_kiedy_sny_staj%C4%85_si%C4%99_rzeczywi%C5%9Bci%C4%85.json -GUID: acdf16 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include "Custom_Model Kiedy sny Staj\u0105 si\u0119 Rzeczywi\u015Bci\u0105 - acdf16.ttslua" -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: "Kiedy sny Staj\u0105 si\u0119 Rzeczywi\u015Bci\u0105" -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -7.37 - posY: 1.63 - posZ: 68.08 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Machining A Mystery 79b36d.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Machining A Mystery 79b36d.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Machining A Mystery 79b36d.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Machining A Mystery 79b36d.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Machining A Mystery 79b36d.yaml deleted file mode 100644 index 3df26e9e4..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Machining A Mystery 79b36d.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1860561550045252585/5B883A570DB12EF90E66C9AC83D48B64A397F27D/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_machining_a_mystery.json -GUID: 79b36d -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Machining A Mystery 79b36d.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Machining A Mystery -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -23.95 - posY: 2.36 - posZ: -59.24 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model North Country Cycle aaceca.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model North Country Cycle aaceca.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model North Country Cycle aaceca.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model North Country Cycle aaceca.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model North Country Cycle aaceca.yaml deleted file mode 100644 index 12f3b9e77..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model North Country Cycle aaceca.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142942211/3504BAF688D57DC30E7E1E2009A0FD4951D3BA58/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_north_country_cycle.json -GUID: aaceca -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model North Country Cycle aaceca.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: North Country Cycle -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.64 - posY: 1.62 - posZ: 66.44 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Of Sphinx and Sands edb650.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Of Sphinx and Sands edb650.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Of Sphinx and Sands edb650.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Of Sphinx and Sands edb650.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Of Sphinx and Sands edb650.yaml deleted file mode 100644 index b83be6bc9..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Of Sphinx and Sands edb650.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1705159936395227290/3E915F544AB47D63A4B1D05B0412216586EFA34A/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_of_sphinx_and_sands.json -GUID: edb650 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Of Sphinx and Sands edb650.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Of Sphinx and Sands -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.65 - posY: 1.63 - posZ: 69.45 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ordo Templi Orientis 608bea.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ordo Templi Orientis 608bea.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ordo Templi Orientis 608bea.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ordo Templi Orientis 608bea.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ordo Templi Orientis 608bea.yaml deleted file mode 100644 index 57a2e6f7d..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Ordo Templi Orientis 608bea.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1017195498765395843/F0F85DBE17C72D5D09BD012DEDBB9E154EB07E7B/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_ordo_templi_orientis.json -GUID: 608bea -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Ordo Templi Orientis 608bea.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Ordo Templi Orientis -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.52 - posY: 1.63 - posZ: 67.75 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Parallel Universe 28e0a1.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Parallel Universe 28e0a1.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Parallel Universe 28e0a1.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Parallel Universe 28e0a1.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Parallel Universe 28e0a1.yaml deleted file mode 100644 index cfb62bc0b..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Parallel Universe 28e0a1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142944953/7A5D3A94BF4A7798157C999A3E1CEAAFC3652CAC/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_parallel_universe.json -GUID: 28e0a1 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Parallel Universe 28e0a1.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Parallel Universe -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.77 - posY: 1.63 - posZ: 70.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Pokemon Eldritch Edition 75fe78.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Pokemon Eldritch Edition 75fe78.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Pokemon Eldritch Edition 75fe78.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Pokemon Eldritch Edition 75fe78.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Pokemon Eldritch Edition 75fe78.yaml deleted file mode 100644 index e7b29c8d6..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Pokemon Eldritch Edition 75fe78.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1597043896926982160/40A0068DAB05395205E184765110430CAADDA2CF/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_pokemon_eldrich_edition.json -GUID: 75fe78 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Pokemon Eldritch Edition 75fe78.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Pokemon Eldritch Edition -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.74 - posY: 1.63 - posZ: 67.22 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Strange Aeons 2abdd6.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Strange Aeons 2abdd6.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Strange Aeons 2abdd6.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Strange Aeons 2abdd6.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Strange Aeons 2abdd6.yaml deleted file mode 100644 index 9832dea8a..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Strange Aeons 2abdd6.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142947772/120E2BA8DF8C4E2AAC9E059FA046CC3A6229ECDF/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: A Pathfinder Adventure for Arkham Horror -DragSelectable: true -GMNotes: fancreations/campaign_strange_aeons.json -GUID: 2abdd6 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Strange Aeons 2abdd6.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Strange Aeons -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.02 - posY: 1.63 - posZ: 68.43 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The (Unofficial) Return to The Innsmouth Conspiracy bba2b6.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The (Unofficial) Return to The Innsmouth Conspiracy bba2b6.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The (Unofficial) Return to The Innsmouth Conspiracy bba2b6.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The (Unofficial) Return to The Innsmouth Conspiracy bba2b6.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The (Unofficial) Return to The Innsmouth Conspiracy bba2b6.yaml deleted file mode 100644 index cbd65954d..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The (Unofficial) Return to The Innsmouth Conspiracy bba2b6.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 2.0 - scaleY: 2.0 - scaleZ: 2.0 -Autoraise: true -ColorDiffuse: - a: 0.27843 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2021606446230436832/9485F353EEE9717261DC545E0AE772A33A9E7E73/ - MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 - NormalURL: '' - TypeIndex: 0 -Description: v3 -DragSelectable: true -GMNotes: fancreations/campaign_unofficial_return_to_tic.json -GUID: bba2b6 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The (Unofficial) Return to The Innsmouth Conspiracy bba2b6.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: 'The (Unofficial) Return to The Innsmouth Conspiracy ' -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -16.34 - posY: 3.32 - posZ: -73.44 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.0 - scaleY: 0.11 - scaleZ: 1.69 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Approaching Storm ab6b9a.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Approaching Storm ab6b9a.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Approaching Storm ab6b9a.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Approaching Storm ab6b9a.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Approaching Storm ab6b9a.yaml deleted file mode 100644 index 7f92e31b6..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Approaching Storm ab6b9a.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142917748/FA44959693A82787BC34D6FA2487911AB24E619B/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_approaching_storm.json -GUID: ab6b9a -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Approaching Storm ab6b9a.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Approaching Storm -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.54 - posY: 1.63 - posZ: 69.14 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Color Out of Oz be7d21.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Color Out of Oz be7d21.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Color Out of Oz be7d21.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Color Out of Oz be7d21.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Color Out of Oz be7d21.yaml deleted file mode 100644 index e173d8d75..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Color Out of Oz be7d21.yaml +++ /dev/null @@ -1,72 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: 0.0 - posY: 0.0 - posZ: 0.0 - rotX: 270.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 2.0 - scaleY: 2.0 - scaleZ: 2.0 -Autoraise: true -ColorDiffuse: - b: 0.40592 - g: 0.40592 - r: 0.40592 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1972044023032948791/D32BECDAF5C9309577EE0CE585E980F62EFBCEF3/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_color_out_of_oz.json -GUID: be7d21 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Color Out of Oz be7d21.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Color Out of Oz -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -37.7 - posY: 3.22 - posZ: -97.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Dying Star bcfff6.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Dying Star bcfff6.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Dying Star bcfff6.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Dying Star bcfff6.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Dying Star bcfff6.yaml deleted file mode 100644 index 39495d34d..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Dying Star bcfff6.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142922162/AD09D68EC542F778CCA3A4F5B33E17EF50AFE31B/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_dying_star.json -GUID: bcfff6 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Dying Star bcfff6.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Dying Star -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.44 - posY: 1.63 - posZ: 68.4 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Ghosts Of Onigawa Campaign Expansion 8daa73.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Ghosts Of Onigawa Campaign Expansion 8daa73.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Ghosts Of Onigawa Campaign Expansion 8daa73.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Ghosts Of Onigawa Campaign Expansion 8daa73.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Ghosts Of Onigawa Campaign Expansion 8daa73.yaml deleted file mode 100644 index ba70b74f9..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Ghosts Of Onigawa Campaign Expansion 8daa73.yaml +++ /dev/null @@ -1,60 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: https://uploads-ssl.webflow.com/608a6a98b5956379a9c9e768/60eb7c9fb63de7d60d8d67ec_boxart-defuse.png - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_onigawa.json -GUID: 8daa73 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Ghosts Of Onigawa Campaign Expansion 8daa73.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Ghosts Of Onigawa Campaign Expansion -Snap: true -Sticky: true -Tags: -- LargeBox -Tooltip: true -Transform: - posX: -1.06 - posY: 4.29 - posZ: 4.03 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 0.14 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The London Set 0f96ac.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The London Set 0f96ac.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The London Set 0f96ac.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The London Set 0f96ac.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The London Set 0f96ac.yaml deleted file mode 100644 index cf8d66947..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The London Set 0f96ac.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142939236/70113DAB44263CD5EA5A0913B4325A57B8113A4C/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_london_set.json -GUID: 0f96ac -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The London Set 0f96ac.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The London Set -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -7.64 - posY: 1.63 - posZ: 68.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Outsider 3c175c.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Outsider 3c175c.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Outsider 3c175c.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Outsider 3c175c.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Outsider 3c175c.yaml deleted file mode 100644 index 6646b5bcf..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Outsider 3c175c.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142944372/7F67F8FDAD99C9C2A6A6A5E98C548681117D092C/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_outsider.json -GUID: 3c175c -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Outsider 3c175c.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Outsider -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.83 - posY: 1.63 - posZ: 67.76 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The War of the Worlds 19d469.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The War of the Worlds 19d469.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The War of the Worlds 19d469.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The War of the Worlds 19d469.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The War of the Worlds 19d469.yaml deleted file mode 100644 index f01079ce0..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The War of the Worlds 19d469.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1461933574036562700/261026F89C2322BF6390608AAB7DE43BEFB6240A/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_war_of_the_world.json -GUID: 19d469 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The War of the Worlds 19d469.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The War of the Worlds -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.1 - posY: 1.62 - posZ: 67.41 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Winter Winds 754057.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Winter Winds 754057.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Winter Winds 754057.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Winter Winds 754057.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Winter Winds 754057.yaml deleted file mode 100644 index 550001994..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Winter Winds 754057.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142974098/BF07864708BDE2804C0495637DDD55E85CC883EA/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/campaign_winter_winds.json -GUID: '754057' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Winter Winds 754057.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Winter Winds -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -20.94 - posY: 1.61 - posZ: 76.41 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Crown of Egil 7458b7.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Crown of Egil 7458b7.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Crown of Egil 7458b7.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c.yaml deleted file mode 100644 index f78b7f037..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c.yaml +++ /dev/null @@ -1,136 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -Bag: - Order: 0 -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -ContainedObjects: -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Undying 965030.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Thing in the Woods c90c49.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Symphony of Erich Zann b7c6be.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Svalbard Event 7bc42b.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Stolen Baillius bfefd4.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Red Room fa4327.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Pensher Wyrm 504f38.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Nephew Calls 3ddd12.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Nameless City 9d3083.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Legend of Sleepy Hollow 0500f1.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Grand Oak Hotel 5ccf55.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Festival 29d22a.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Fall of the House of Usher 42bdd3.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Facts in the Case of M. Valdemar 238d6f.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Curse of Amulotep 0d7a8d.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Colour out of Space 5b81ff.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The - Collector 9810eb.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Stranger - Things 408301.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Miskatonic - Mouse 6defb8.yaml' -- !include "Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Masks - of Nyarlathotep \u2013 New York 94a1f8.yaml" -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Last - Call at Roxie''s c6a1ca.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Knightfall - df62e8.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Jenny''s - Choice a61b48.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model In - Blackest Pits 68380c.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Happy''s - Funhouse e7d9f8.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Fortune - or Folly - Parallel Rex Murphy Set 7fa06f.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Don''t - Starve ffc7ef.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Delta - Green Convergence ac164e.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Darkness - Falls c6a612.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Cosmic - Pantheon ec74df.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Consternation - on the Constellation 0ec730.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Carnevale - of Spiders e57017.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Bridge - of Sighs 578e97.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Blood - Spilled in Salem 4237da.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Arkham - Incidents f1bfa2.yaml' -- !include 'Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Against - the Wendigo 4d5fa0.yaml' -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068588410864087/97EBA1F7BA51181A664CE5A733AB092BA843E32D/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj - NormalURL: '' - TypeIndex: 6 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: 5db60c -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '{"ml":[]}' -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Custom_Model_Bag -Nickname: Fan-Made Standalone Scenarios -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.0 - posY: 1.48 - posZ: -50.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 0.5 - scaleY: 0.1 - scaleZ: 0.5 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Against the Wendigo 4d5fa0.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Against the Wendigo 4d5fa0.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Against the Wendigo 4d5fa0.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Against the Wendigo 4d5fa0.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Against the Wendigo 4d5fa0.yaml deleted file mode 100644 index d7e6b6a40..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Against the Wendigo 4d5fa0.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142901599/7EE6EF24852C443DF5E92CF9498881E321CEE75A/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_wendigo.json -GUID: 4d5fa0 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Against the Wendigo 4d5fa0.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Against the Wendigo -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 20.3 - posY: 1.81 - posZ: 7.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Arkham Incidents f1bfa2.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Arkham Incidents f1bfa2.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Arkham Incidents f1bfa2.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Arkham Incidents f1bfa2.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Arkham Incidents f1bfa2.yaml deleted file mode 100644 index e63d5f19f..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Arkham Incidents f1bfa2.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1865053883967763315/27C1F4299B5381DF5A40739696DC4CE6197D2BDC/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_incidents.json -GUID: f1bfa2 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Arkham Incidents f1bfa2.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Arkham Incidents -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 59.76 - posY: 3.4 - posZ: -68.94 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Blood Spilled in Salem 4237da.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Blood Spilled in Salem 4237da.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Blood Spilled in Salem 4237da.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Blood Spilled in Salem 4237da.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Blood Spilled in Salem 4237da.yaml deleted file mode 100644 index e3d49e6d5..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Blood Spilled in Salem 4237da.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142918658/204E105211839B1E202E834F4A5C69E8E6A50A28/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_salem.json -GUID: 4237da -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Blood Spilled in Salem 4237da.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Blood Spilled in Salem -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.62 - posY: 1.62 - posZ: 65.3 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Bridge of Sighs 578e97.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Bridge of Sighs 578e97.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Bridge of Sighs 578e97.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Bridge of Sighs 578e97.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Bridge of Sighs 578e97.yaml deleted file mode 100644 index 95ccfd4de..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Bridge of Sighs 578e97.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142919243/F3ED3E5B6B8725F536FCDA4FB2D40E1D11725037/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_bridge_of_sighs.json -GUID: 578e97 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Bridge of Sighs 578e97.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Bridge of Sighs -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.3 - posY: 1.62 - posZ: 66.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Carnevale of Spiders e57017.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Carnevale of Spiders e57017.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Carnevale of Spiders e57017.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Carnevale of Spiders e57017.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Carnevale of Spiders e57017.yaml deleted file mode 100644 index 8432373a6..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Carnevale of Spiders e57017.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1474319121422110285/8BA9D8C5CFA6D4E35DFC2077002CB2256DCFB2D7/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: A Farkham-con Original. Requires 3 XP -DragSelectable: true -GMNotes: fancreations/scenario_carnevale_of_spiders.json -GUID: e57017 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Carnevale of Spiders e57017.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Carnevale of Spiders -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.96 - posY: 1.62 - posZ: 64.59 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Consternation on the Constellation 0ec730.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Consternation on the Constellation 0ec730.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Consternation on the Constellation 0ec730.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Consternation on the Constellation 0ec730.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Consternation on the Constellation 0ec730.yaml deleted file mode 100644 index 42494f6be..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Consternation on the Constellation 0ec730.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517666349452/B8551E1479CED3BADEF4AF3B0A727EB7768C0289/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_consternation_on_the_constellation.json -GUID: 0ec730 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Consternation on the Constellation 0ec730.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Consternation on the Constellation -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.23 - posY: 1.66 - posZ: 64.3 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Cosmic Pantheon ec74df.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Cosmic Pantheon ec74df.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Cosmic Pantheon ec74df.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Cosmic Pantheon ec74df.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Cosmic Pantheon ec74df.yaml deleted file mode 100644 index 238a40bf2..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Cosmic Pantheon ec74df.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1844797993644656426/EC19A65BD3119D5FA229F502D65D1D8DAA9E0ECB/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: Mint Tea Fan & Hauke -DragSelectable: true -GMNotes: fancreations/scenario_cosmic_pantheon.json -GUID: ec74df -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Cosmic Pantheon ec74df.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Cosmic Pantheon -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 28.57 - posY: 2.71 - posZ: -13.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Darkness Falls c6a612.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Darkness Falls c6a612.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Darkness Falls c6a612.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Darkness Falls c6a612.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Darkness Falls c6a612.yaml deleted file mode 100644 index 19696b89d..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Darkness Falls c6a612.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1487830597915523099/252BD2089F9DEF3F337BB8AE681939DE98C1EFA7/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_darkness_falls.json -GUID: c6a612 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Darkness Falls c6a612.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Darkness Falls -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.27 - posY: 1.63 - posZ: 66.13 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Delta Green Convergence ac164e.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Delta Green Convergence ac164e.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Delta Green Convergence ac164e.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Delta Green Convergence ac164e.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Delta Green Convergence ac164e.yaml deleted file mode 100644 index 1b9362e5b..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Delta Green Convergence ac164e.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142900469/BDA1068C5A88459AE805540FE05B8092C4F8F392/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_delta_green.json -GUID: ac164e -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Delta Green Convergence ac164e.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Delta Green Convergence -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.23 - posY: 1.62 - posZ: 66.49 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Don't Starve ffc7ef.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Don't Starve ffc7ef.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Don't Starve ffc7ef.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Don't Starve ffc7ef.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Don't Starve ffc7ef.yaml deleted file mode 100644 index 37eeb1a5b..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Don't Starve ffc7ef.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1646593716898209387/B827263B809A6C8E1042BDF1C8D33E58458C2EF4/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_dont_starve.json -GUID: ffc7ef -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Don''t Starve ffc7ef.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Don't Starve -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.84 - posY: 1.62 - posZ: 65.41 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.yaml deleted file mode 100644 index d5a4bf14f..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.yaml +++ /dev/null @@ -1,58 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1746802526940892011/A775E42F9014CD75B091D7D060012681E58B906E/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: By Davi -DragSelectable: true -GMNotes: fancreations/scenario_fortune_or_folly.json -GUID: 7fa06f -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Fortune or Folly - Parallel Rex Murphy Set 7fa06f.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Fortune or Folly - Parallel Rex Murphy Set -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.34 - posY: 1.62 - posZ: 65.41 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Happy's Funhouse e7d9f8.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Happy's Funhouse e7d9f8.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Happy's Funhouse e7d9f8.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Happy's Funhouse e7d9f8.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Happy's Funhouse e7d9f8.yaml deleted file mode 100644 index c42149399..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Happy's Funhouse e7d9f8.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142976303/C24C7169FD11E5D151DD2F754D5B9A5563D5DABB/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_happys_funhouse.json -GUID: e7d9f8 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Happy''s Funhouse e7d9f8.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Happy's Funhouse -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.66 - posY: 1.63 - posZ: 67.68 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model In Blackest Pits 68380c.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model In Blackest Pits 68380c.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model In Blackest Pits 68380c.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model In Blackest Pits 68380c.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model In Blackest Pits 68380c.yaml deleted file mode 100644 index 0be69cb0d..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model In Blackest Pits 68380c.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1016065907889320438/3DC5DD89D5DB56BE6EFDAC4A96E8063765576EA1/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_in_blackest_pits.json -GUID: 68380c -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model In Blackest Pits 68380c.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: In Blackest Pits -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.33 - posY: 1.62 - posZ: 65.72 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Jenny's Choice a61b48.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Jenny's Choice a61b48.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Jenny's Choice a61b48.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Jenny's Choice a61b48.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Jenny's Choice a61b48.yaml deleted file mode 100644 index 2bd16121c..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Jenny's Choice a61b48.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/790858329422808079/1407B0AB89A9DBCFEE07A84A0979829556D84A78/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_jennys_choice.json -GUID: a61b48 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Jenny''s Choice a61b48.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Jenny's Choice -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -7.72 - posY: 1.62 - posZ: 66.96 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Knightfall df62e8.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Knightfall df62e8.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Knightfall df62e8.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Knightfall df62e8.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Knightfall df62e8.yaml deleted file mode 100644 index 5fb186ef9..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Knightfall df62e8.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142937041/3253F31B9483C3B5D0A98BA7E479E006FBF8D270/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_knightfall.json -GUID: df62e8 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Knightfall df62e8.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Knightfall -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -8.95 - posY: 1.62 - posZ: 65.45 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Last Call at Roxie's c6a1ca.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Last Call at Roxie's c6a1ca.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Last Call at Roxie's c6a1ca.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Last Call at Roxie's c6a1ca.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Last Call at Roxie's c6a1ca.yaml deleted file mode 100644 index 46169c9b1..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Last Call at Roxie's c6a1ca.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142938527/354E6204BB01AED91EAEB19D99E4D95620F99C56/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: An Android Universe crossover adventure -DragSelectable: true -GMNotes: fancreations/scenario_last_call_at_roxies.json -GUID: c6a1ca -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Last Call at Roxie''s c6a1ca.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Last Call at Roxie's -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.76 - posY: 1.62 - posZ: 64.39 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Masks of Nyarlathotep – New York 94a1f8.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Masks of Nyarlathotep – New York 94a1f8.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Masks of Nyarlathotep – New York 94a1f8.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Masks of Nyarlathotep – New York 94a1f8.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Masks of Nyarlathotep – New York 94a1f8.yaml deleted file mode 100644 index e3a07c703..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Masks of Nyarlathotep – New York 94a1f8.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142939810/7A53406FA1EFA9D556EF559B24A679E566114745/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_masks_of_nyarlathotep.json -GUID: 94a1f8 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include "Custom_Model Masks of Nyarlathotep \u2013 New York 94a1f8.ttslua" -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: "Masks of Nyarlathotep \u2013 New York" -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.84 - posY: 1.62 - posZ: 67.31 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Miskatonic Mouse 6defb8.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Miskatonic Mouse 6defb8.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Miskatonic Mouse 6defb8.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Miskatonic Mouse 6defb8.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Miskatonic Mouse 6defb8.yaml deleted file mode 100644 index c63011f44..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Miskatonic Mouse 6defb8.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1620690956766119953/F8003A1B5AC39F2D2DABFF6D0AA2168CEC8BFA2C/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_miskatonic_mouse.json -GUID: 6defb8 -Grid: true -GridProjection: false -Hands: true -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Miskatonic Mouse 6defb8.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Miskatonic Mouse -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.06 - posY: 1.63 - posZ: 67.74 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Stranger Things 408301.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Stranger Things 408301.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Stranger Things 408301.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Stranger Things 408301.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Stranger Things 408301.yaml deleted file mode 100644 index 5ac5ab703..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model Stranger Things 408301.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142948271/A763104B91306431654FBA9E3D88FE0E23CE6E6E/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_stranger_things.json -GUID: '408301' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model Stranger Things 408301.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: Stranger Things -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -11.22 - posY: 1.62 - posZ: 66.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Collector 9810eb.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Collector 9810eb.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Collector 9810eb.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Collector 9810eb.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Collector 9810eb.yaml deleted file mode 100644 index 4e782857b..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Collector 9810eb.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142920786/52ED9B6276539BF3E1F332C363B21B3D7F6960AA/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_collector.json -GUID: 9810eb -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Collector 9810eb.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Collector -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.6 - posY: 1.68 - posZ: 64.25 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Colour out of Space 5b81ff.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Colour out of Space 5b81ff.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Colour out of Space 5b81ff.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Colour out of Space 5b81ff.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Colour out of Space 5b81ff.yaml deleted file mode 100644 index ffffc08ed..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Colour out of Space 5b81ff.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142919895/4026718A421BE11AC64320BE9BC2515B364D066E/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_color_out_of_space.json -GUID: 5b81ff -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Colour out of Space 5b81ff.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Colour out of Space -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.93 - posY: 1.62 - posZ: 64.8 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Curse of Amulotep 0d7a8d.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Curse of Amulotep 0d7a8d.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Curse of Amulotep 0d7a8d.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Curse of Amulotep 0d7a8d.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Curse of Amulotep 0d7a8d.yaml deleted file mode 100644 index 71a935870..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Curse of Amulotep 0d7a8d.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142921541/F138D6DF73FB79AC6D1C420869299A481AFA7B90/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_curse_of_amulotep.json -GUID: 0d7a8d -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Curse of Amulotep 0d7a8d.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Curse of Amulotep -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -6.7 - posY: 1.62 - posZ: 66.35 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Facts in the Case of M. Valdemar 238d6f.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Facts in the Case of M. Valdemar 238d6f.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Facts in the Case of M. Valdemar 238d6f.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Facts in the Case of M. Valdemar 238d6f.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Facts in the Case of M. Valdemar 238d6f.yaml deleted file mode 100644 index 0cbe42108..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Facts in the Case of M. Valdemar 238d6f.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1870695908503531344/DE3BBAD0CF8FCE5B05B8B18B44F049ECF06BCA5A/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_valdemar.json -GUID: 238d6f -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Facts in the Case of M. Valdemar 238d6f.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Facts in the Case of M. Valdemar -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.6 - posY: 1.68 - posZ: 64.25 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Fall of the House of Usher 42bdd3.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Fall of the House of Usher 42bdd3.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Fall of the House of Usher 42bdd3.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Fall of the House of Usher 42bdd3.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Fall of the House of Usher 42bdd3.yaml deleted file mode 100644 index 54a676aac..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Fall of the House of Usher 42bdd3.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1771580824970152646/1C2D909AF92814C33B43D22F0EE1D6B8FD260998/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_house_of_usher.json -GUID: 42bdd3 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Fall of the House of Usher 42bdd3.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Fall of the House of Usher -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 15.11 - posY: 3.18 - posZ: -58.67 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Festival 29d22a.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Festival 29d22a.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Festival 29d22a.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Festival 29d22a.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Festival 29d22a.yaml deleted file mode 100644 index 5c34416b3..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Festival 29d22a.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142936385/DCE942F9A1172E9C55A36E4593F5CDC71D9BC3AD/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_festival.json -GUID: 29d22a -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Festival 29d22a.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Festival -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.31 - posY: 1.62 - posZ: 64.66 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Grand Oak Hotel 5ccf55.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Grand Oak Hotel 5ccf55.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Grand Oak Hotel 5ccf55.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Grand Oak Hotel 5ccf55.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Grand Oak Hotel 5ccf55.yaml deleted file mode 100644 index d7da09e96..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Grand Oak Hotel 5ccf55.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142935568/34A42BC3AEF7764F8D7BB242DB08FD36B8EC6DCB/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_grand_oak_hotel.json -GUID: 5ccf55 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Grand Oak Hotel 5ccf55.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Grand Oak Hotel -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -7.46 - posY: 1.62 - posZ: 64.61 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Legend of Sleepy Hollow 0500f1.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Legend of Sleepy Hollow 0500f1.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Legend of Sleepy Hollow 0500f1.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Legend of Sleepy Hollow 0500f1.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Legend of Sleepy Hollow 0500f1.yaml deleted file mode 100644 index 783d81b37..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Legend of Sleepy Hollow 0500f1.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1617311203420460064/3D20A71D13F484BEEBCF572E827CD38FF3DF57E4/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_sleepy_hollow.json -GUID: 0500f1 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Legend of Sleepy Hollow 0500f1.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Legend of Sleepy Hollow -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 7.67 - posY: 3.37 - posZ: -40.85 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nameless City 9d3083.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nameless City 9d3083.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nameless City 9d3083.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nameless City 9d3083.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nameless City 9d3083.yaml deleted file mode 100644 index 60c412188..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nameless City 9d3083.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1797477398306699180/7C5363FFCCDCD4A1AF2A0C71B2A7E5F96D5ACCA4/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_nameless_city.json -GUID: 9d3083 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Nameless City 9d3083.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Nameless City -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.53 - posY: 1.62 - posZ: 65.91 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.45 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nephew Calls 3ddd12.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nephew Calls 3ddd12.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nephew Calls 3ddd12.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nephew Calls 3ddd12.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nephew Calls 3ddd12.yaml deleted file mode 100644 index e9f71c340..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Nephew Calls 3ddd12.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142940439/EE68DD668C18F8F8C61B0F2BABA6D548B17A6EA7/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_nephew_calls.json -GUID: 3ddd12 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Nephew Calls 3ddd12.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Nephew Calls -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.29 - posY: 1.62 - posZ: 65.33 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Pensher Wyrm 504f38.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Pensher Wyrm 504f38.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Pensher Wyrm 504f38.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Pensher Wyrm 504f38.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Pensher Wyrm 504f38.yaml deleted file mode 100644 index 985494547..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Pensher Wyrm 504f38.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142945578/6BA34FBD61F7AD38DE8B2B9E5D5F067406B7CC77/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_pensher_wyrm.json -GUID: 504f38 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Pensher Wyrm 504f38.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Pensher Wyrm -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.37 - posY: 1.62 - posZ: 65.42 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.2 - scaleZ: 2.46 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Red Room fa4327.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Red Room fa4327.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Red Room fa4327.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Red Room fa4327.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Red Room fa4327.yaml deleted file mode 100644 index 1ddad1b08..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Red Room fa4327.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142946225/F5A6228957B37E945B425681115D09E7B8543BC6/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_red_room.json -GUID: fa4327 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Red Room fa4327.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Red Room -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -11.09 - posY: 1.62 - posZ: 66.55 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Stolen Baillius bfefd4.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Stolen Baillius bfefd4.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Stolen Baillius bfefd4.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Stolen Baillius bfefd4.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Stolen Baillius bfefd4.yaml deleted file mode 100644 index 8fdf34f84..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Stolen Baillius bfefd4.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142943616/2B7B73A110A3EC225C854F85AB009F04859E3806/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_stolen_bacillus.json -GUID: bfefd4 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Stolen Baillius bfefd4.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Stolen Baillius -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -9.01 - posY: 1.61 - posZ: 66.4 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.yaml deleted file mode 100644 index 6b78cab4e..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1845919769156839538/7ED48DF559525AF388EDAABCDEED4EE9D25E872A/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_jekyll.json -GUID: 695a4d -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Strange Case of Dr. Jekyll and Mr. Hyde 695a4d.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Strange Case of Dr. Jekyll and Mr. Hyde -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -26.2 - posY: 1.92 - posZ: -120.92 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Svalbard Event 7bc42b.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Svalbard Event 7bc42b.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Svalbard Event 7bc42b.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Svalbard Event 7bc42b.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Svalbard Event 7bc42b.yaml deleted file mode 100644 index 4f2a9b537..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Svalbard Event 7bc42b.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142948942/FA97D7EF94B715ADD1EEE40831114451FBED200B/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_svalbard_event.json -GUID: 7bc42b -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Svalbard Event 7bc42b.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Svalbard Event -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.24 - posY: 1.62 - posZ: 67.29 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Symphony of Erich Zann b7c6be.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Symphony of Erich Zann b7c6be.ttslua deleted file mode 100644 index e6f67c6af..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Symphony of Erich Zann b7c6be.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Symphony of Erich Zann b7c6be.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Symphony of Erich Zann b7c6be.yaml deleted file mode 100644 index a983fa296..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Symphony of Erich Zann b7c6be.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1254763972105175718/5A09C7E8EBCC79DD9E405FF6F83E49C2C27D5F29/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_symphony_of_erich_zann.json -GUID: b7c6be -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Symphony of Erich Zann b7c6be.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Symphony of Erich Zann -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -10.14 - posY: 1.67 - posZ: 67.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 357.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Thing in the Woods c90c49.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Thing in the Woods c90c49.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Thing in the Woods c90c49.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Thing in the Woods c90c49.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Thing in the Woods c90c49.yaml deleted file mode 100644 index 12d9ffbbe..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Thing in the Woods c90c49.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142949442/404A26E158B9EBC1069A5FBA9BA2331CBFD7851B/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_thing_in_the_woods.json -GUID: c90c49 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Thing in the Woods c90c49.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Thing in the Woods -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -11.01 - posY: 1.62 - posZ: 67.68 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Undying 965030.ttslua b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Undying 965030.ttslua deleted file mode 100644 index 3c2a044ca..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Undying 965030.ttslua +++ /dev/null @@ -1,90 +0,0 @@ --- Bundled by luabundle {"version":"1.6.0"} -local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) - local loadingPlaceholder = {[{}] = true} - - local register - local modules = {} - - local require - local loaded = {} - - register = function(name, body) - if not modules[name] then - modules[name] = body - end - end - - require = function(name) - local loadedModule = loaded[name] - - if loadedModule then - if loadedModule == loadingPlaceholder then - return nil - end - else - if not modules[name] then - if not superRequire then - local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) - error('Tried to require ' .. identifier .. ', but no such module has been registered') - else - return superRequire(name) - end - end - - loaded[name] = loadingPlaceholder - loadedModule = modules[name](require, loaded, register, modules) - loaded[name] = loadedModule - end - - return loadedModule - end - - return require, loaded, register, modules -end)(nil) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) -__bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) -function onLoad() - local notes = self.getGMNotes() - - -- default parameters (e.g. scenarios) - local buttonParameters = { - label = "Download", - click_function = "buttonClick_download", - function_owner = self, - position = { x = 0, y = 0.1, z = 2.1 }, - height = 250, - width = 800, - font_size = 150, - color = { 0, 0, 0 }, - font_color = { 1, 1, 1 } - } - - -- return to boxes - if string.match(notes, "................") == "campaigns/return" then - buttonParameters.position.z = 2 - - -- official campaign boxes - elseif string.match(notes, ".........") == "campaigns" or self.hasTag("LargeBox") then - buttonParameters.position.z = 6 - buttonParameters.height = 500 - buttonParameters.width = 1700 - buttonParameters.font_size = 350 - - -- investigator boxes - elseif string.match(notes, ".............") == "investigators" then - buttonParameters.position.z = 7 - buttonParameters.height = 850 - buttonParameters.width = 3400 - buttonParameters.font_size = 700 - end - - self.createButton(buttonParameters) -end - -function buttonClick_download() - Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) -end -end) -return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Undying 965030.yaml b/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Undying 965030.yaml deleted file mode 100644 index a21d67ff0..000000000 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Standalone Scenarios 5db60c/Custom_Model The Undying 965030.yaml +++ /dev/null @@ -1,73 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -AttachedDecals: -- CustomDecal: - ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ - Name: dunwich_back - Size: 7.4 - Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 -Autoraise: true -ColorDiffuse: - a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - CustomShader: - FresnelStrength: 0.0 - SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1824531491067739120/4AD2D51DAC6215F2866BB2AD15D47109B432B999/ - MaterialIndex: 3 - MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj - NormalURL: '' - TypeIndex: 0 -Description: '' -DragSelectable: true -GMNotes: fancreations/scenario_the_undying.json -GUID: '965030' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: !include 'Custom_Model The Undying 965030.ttslua' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_Model -Nickname: The Undying -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: -55.36 - posY: 6.3 - posZ: -85.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.21 - scaleY: 0.46 - scaleZ: 2.42 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e.yaml b/unpacked/Custom_Model_Bag Leaked Items 42cd6e.yaml index c865c2148..0dd3e8d0b 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e.yaml +++ b/unpacked/Custom_Model_Bag Leaked Items 42cd6e.yaml @@ -1,27 +1,15 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Well-Funded 96fbfa.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Uncanny Growth 6543e6.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Ravenous Myconid 0aa967.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Microscope 48be49.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Dr. Charles West III 72efed.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Chemistry Set da9727.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Pushed to the Limit e0f396.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Sparrow Mask 975d79.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Pitchfork 45a724.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Long Shot dc8c4d.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Wrong Place, Right Time d5944e.yaml' -- !include 'Custom_Model_Bag Leaked Items 42cd6e/Card Stall for Time 7b6ed1.yaml' - !include 'Custom_Model_Bag Leaked Items 42cd6e/CardCustom Alice Luxley (2) 94f23b.yaml' - !include 'Custom_Model_Bag Leaked Items 42cd6e/CardCustom Dragon Pole (3) a20aef.yaml' - !include 'Custom_Model_Bag Leaked Items 42cd6e/CardCustom Fine Clothes (3) 5cb973.yaml' @@ -31,13 +19,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1016065725028510450/7BC76948EE00979A428636EF40D46AE8634760A6/ MaterialIndex: 3 MeshURL: https://pastebin.com/raw/166Kdeqb @@ -68,11 +56,11 @@ Transform: posX: -57.92 posY: 2.95 posZ: -82.99 - rotX: 90.0 - rotY: 135.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 90 + rotY: 135 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Alice Luxley (2) 94f23b.yaml b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Alice Luxley (2) 94f23b.yaml index 2e72771b2..5ac8e0188 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Alice Luxley (2) 94f23b.yaml +++ b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Alice Luxley (2) 94f23b.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266400 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Ally. Detective. Police. DragSelectable: true -GMNotes: "{\r\n \"id\": \"b5151\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Ally. Detective. Police.\",\r\n - \ \"intellectIcons\": 1,\r\n \"combatIcons\": 1,\r\n \"cycle\": \"Beta\"\r\n}\r" +GMNotes: "{\n \"id\": \"b5151\",\n \"type\": \"Asset\",\n \"class\": \"Guardian\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Ally. Detective. Police.\",\n \"intellectIcons\": + 1,\n \"combatIcons\": 1,\n \"cycle\": \"Beta\"\n}" GUID: 94f23b Grid: true GridProjection: false @@ -43,14 +43,14 @@ Tags: - PlayerCard Tooltip: true Transform: - posX: 0.0 - posY: 0.0 + posX: 0 + posY: 0 posZ: -2.26 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Dragon Pole (3) a20aef.yaml b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Dragon Pole (3) a20aef.yaml index 74caeac80..3cb67ba72 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Dragon Pole (3) a20aef.yaml +++ b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Dragon Pole (3) a20aef.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266500 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: Item. Weapon. Melee. DragSelectable: true -GMNotes: "{\r\n \"id\": \"b8060\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Guardian|Mystic\",\r\n - \ \"cost\": 3,\r\n \"level\": 3,\r\n \"traits\": \"Item. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"willpowerIcons\": 1,\r\n \"cycle\": \"Beta\"\r\n}\r" +GMNotes: "{\n \"id\": \"b8060\",\n \"type\": \"Asset\",\n \"class\": \"Guardian|Mystic\",\n + \ \"cost\": 3,\n \"level\": 3,\n \"traits\": \"Item. Weapon. Melee.\",\n \"combatIcons\": + 1,\n \"willpowerIcons\": 1,\n \"cycle\": \"Beta\"\n}" GUID: a20aef Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 50.6 posY: 1.5 posZ: 37.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Fine Clothes (3) 5cb973.yaml b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Fine Clothes (3) 5cb973.yaml index 0f136e077..7e1e52e21 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Fine Clothes (3) 5cb973.yaml +++ b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Fine Clothes (3) 5cb973.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 542300 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"B2023\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Neutral\",\r\n - \ \"cost\": 1,\r\n \"level\": 3,\r\n \"traits\": \"Item. Clothing.\",\r\n \"agilityIcons\": - 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"B2023\",\n \"type\": \"Asset\",\n \"class\": \"Neutral\",\n + \ \"cost\": 1,\n \"level\": 3,\n \"traits\": \"Item. Clothing.\",\n \"agilityIcons\": + 1,\n \"cycle\": \"Standalone\"\n}" GUID: 5cb973 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 5.01 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Sword Cane (2) 9c32e2.yaml b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Sword Cane (2) 9c32e2.yaml index 5dd75b53f..f6b349a90 100644 --- a/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Sword Cane (2) 9c32e2.yaml +++ b/unpacked/Custom_Model_Bag Leaked Items 42cd6e/CardCustom Sword Cane (2) 9c32e2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 542400 ColorDiffuse: @@ -19,9 +19,9 @@ CustomDeck: UniqueBack: false Description: '' DragSelectable: true -GMNotes: "{\r\n \"id\": \"A2023\",\r\n \"type\": \"Asset\",\r\n \"class\": \"Mystic\",\r\n - \ \"cost\": 2,\r\n \"level\": 2,\r\n \"traits\": \"Item. Relic. Weapon. Melee.\",\r\n - \ \"combatIcons\": 1,\r\n \"cycle\": \"Standalone\"\r\n}\r" +GMNotes: "{\n \"id\": \"A2023\",\n \"type\": \"Asset\",\n \"class\": \"Mystic\",\n + \ \"cost\": 2,\n \"level\": 2,\n \"traits\": \"Item. Relic. Weapon. Melee.\",\n + \ \"combatIcons\": 1,\n \"cycle\": \"Standalone\"\n}" GUID: 9c32e2 Grid: true GridProjection: false @@ -46,11 +46,11 @@ Transform: posX: 8.97 posY: 3.71 posZ: -16.69 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9.yaml b/unpacked/Custom_Model_Bag Legacy Assets 7165a9.yaml index 081510e7e..77cf4d769 100644 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9.yaml +++ b/unpacked/Custom_Model_Bag Legacy Assets 7165a9.yaml @@ -1,19 +1,220 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: -- !include 'Custom_Model_Bag Legacy Assets 7165a9/Custom_Model_Infinite_Bag Toggle-able - Resource tokens 272489.yaml' -- !include 'Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75.yaml' -- !include 'Custom_Model_Bag Legacy Assets 7165a9/Deck Pre-Errata Cards 8fa254.yaml' +- AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 0.07053 + g: 0.07053 + r: 0.28227 + ContainedObjects: + - AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + CustomImage: + CustomToken: + MergeDistancePixels: 5 + Stackable: false + StandUp: false + Thickness: 0.1 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/c7b94hv.png + WidthScale: 0 + Description: '' + DragSelectable: true + GMNotes: '' + GUID: 038906 + Grid: false + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: '' + LuaScriptState: '' + MeasureMovement: false + Name: Custom_Token + Nickname: Resources + Snap: false + States: + '2': + AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + CustomImage: + CustomToken: + MergeDistancePixels: 5 + Stackable: false + StandUp: false + Thickness: 0.1 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/le5gb9M.png + WidthScale: 0 + Description: '' + DragSelectable: true + GMNotes: '' + GUID: 32a06a + Grid: false + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: '' + LuaScriptState: '' + MeasureMovement: false + Name: Custom_Token + Nickname: Resources + Snap: false + Sticky: true + Tooltip: true + Transform: + posX: -64.1392746 + posY: 1.62164152 + posZ: 2.4275 + rotX: 359.920227 + rotY: 270.0255 + rotZ: 0.016780857 + scaleX: 0.2 + scaleY: 1 + scaleZ: 0.2 + Value: 0 + XmlUI: '' + '3': + AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + CustomImage: + CustomToken: + MergeDistancePixels: 5 + Stackable: false + StandUp: false + Thickness: 0.1 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/4dbb10f.png + WidthScale: 0 + Description: '' + DragSelectable: true + GMNotes: '' + GUID: ebbc3d + Grid: false + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: '' + LuaScriptState: '' + MeasureMovement: false + Name: Custom_Token + Nickname: Resources + Snap: false + Sticky: true + Tooltip: true + Transform: + posX: -64.13942 + posY: 1.62164187 + posZ: 2.42749381 + rotX: 359.9201 + rotY: 270.025452 + rotZ: 0.0168974362 + scaleX: 0.2 + scaleY: 1 + scaleZ: 0.2 + Value: 0 + XmlUI: '' + Sticky: true + Tooltip: true + Transform: + posX: -68.064 + posY: 4.294 + posZ: 38.802 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 0.2 + scaleY: 1 + scaleZ: 0.2 + Value: 0 + XmlUI: '' + CustomMesh: + CastShadows: true + ColliderURL: '' + Convex: true + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068501357192729/6881710C4711FB5949E02FAD63D4B416C7DC0AF9/ + MaterialIndex: 1 + MeshURL: https://pastebin.com/raw/ALrYhQGb + NormalURL: '' + TypeIndex: 7 + Description: '' + DragSelectable: true + GMNotes: '' + GUID: '272489' + Grid: true + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: '' + LuaScriptState: '' + MaterialIndex: -1 + MeasureMovement: false + MeshIndex: -1 + Name: Custom_Model_Infinite_Bag + Nickname: Toggle-able Resource tokens + Snap: true + Sticky: true + Tooltip: true + Transform: + posX: 28.704 + posY: 4.31 + posZ: -35.371 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.8 + scaleY: 1 + scaleZ: 0.8 + Value: 0 + XmlUI: '' CustomMesh: CastShadows: true ColliderURL: '' @@ -48,9 +249,9 @@ Transform: posX: -61.26 posY: 0.78 posZ: -90.08 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 5.25 scaleY: 5.25 scaleZ: 5.25 diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75.yaml b/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75.yaml deleted file mode 100644 index f5f3c29b5..000000000 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75.yaml +++ /dev/null @@ -1,53 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -Bag: - Order: 0 -ColorDiffuse: - b: 0.0 - g: 0.36652 - r: 0.70588 -ContainedObjects: -- !include 'Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Path to Carcosa Campaign - Guide ea71cc.yaml' -- !include 'Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Dunwich Legacy Campaign - Guide 8e1339.yaml' -- !include 'Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Circle Undone Campaign - Guide 090d61.yaml' -- !include 'Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Forgotten Age Campaign - Guide ec5c7e.yaml' -Description: '' -DragSelectable: true -GMNotes: '' -GUID: 676d75 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Bag -Nickname: Pre-Errata Campaign Guides -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 27.12 - posY: 4.04 - posZ: -35.86 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Circle Undone Campaign Guide 090d61.yaml b/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Circle Undone Campaign Guide 090d61.yaml deleted file mode 100644 index aef119248..000000000 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Circle Undone Campaign Guide 090d61.yaml +++ /dev/null @@ -1,45 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -CustomPDF: - PDFPage: 0 - PDFPageOffset: 0 - PDFPassword: '' - PDFUrl: https://images-cdn.fantasyflightgames.com/filer_public/1e/ce/1ece6885-3bc6-4706-bbd0-7f5fe1813035/the_circle_undone_campaign_guide_final_release.pdf -Description: '' -DragSelectable: true -GMNotes: '' -GUID: 090d61 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_PDF -Nickname: The Circle Undone Campaign Guide -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 43.26 - posY: 3.88 - posZ: 39.76 - rotX: 22.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.18 - scaleY: 1.0 - scaleZ: 2.18 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Forgotten Age Campaign Guide ec5c7e.yaml b/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Forgotten Age Campaign Guide ec5c7e.yaml deleted file mode 100644 index 995dee3d4..000000000 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Bag Pre-Errata Campaign Guides 676d75/Custom_PDF The Forgotten Age Campaign Guide ec5c7e.yaml +++ /dev/null @@ -1,45 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -CustomPDF: - PDFPage: 0 - PDFPageOffset: 0 - PDFPassword: '' - PDFUrl: https://images-cdn.fantasyflightgames.com/filer_public/7b/82/7b824169-ece9-4152-83eb-dc108548fa88/the_forgotten_age_campaign_guide_eng_final_release.pdf -Description: '' -DragSelectable: true -GMNotes: '' -GUID: ec5c7e -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Custom_PDF -Nickname: The Forgotten Age Campaign Guide -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 43.13 - posY: 3.58 - posZ: 41.2 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.18 - scaleY: 1.0 - scaleZ: 2.18 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Custom_Model_Infinite_Bag Toggle-able Resource tokens 272489.yaml b/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Custom_Model_Infinite_Bag Toggle-able Resource tokens 272489.yaml deleted file mode 100644 index 7134aca0e..000000000 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Custom_Model_Infinite_Bag Toggle-able Resource tokens 272489.yaml +++ /dev/null @@ -1,205 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - b: 0.07053 - g: 0.07053 - r: 0.28227 -ContainedObjects: -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 - CustomImage: - CustomToken: - MergeDistancePixels: 5.0 - Stackable: false - StandUp: false - Thickness: 0.1 - ImageScalar: 1.0 - ImageSecondaryURL: '' - ImageURL: https://i.imgur.com/c7b94hv.png - WidthScale: 0.0 - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 038906 - Grid: false - GridProjection: false - Hands: false - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Custom_Token - Nickname: Resources - Snap: false - States: - '2': - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 - CustomImage: - CustomToken: - MergeDistancePixels: 5.0 - Stackable: false - StandUp: false - Thickness: 0.1 - ImageScalar: 1.0 - ImageSecondaryURL: '' - ImageURL: https://i.imgur.com/le5gb9M.png - WidthScale: 0.0 - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 32a06a - Grid: false - GridProjection: false - Hands: false - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Custom_Token - Nickname: Resources - Snap: false - Sticky: true - Tooltip: true - Transform: - posX: -64.1392746 - posY: 1.62164152 - posZ: 2.4275 - rotX: 359.920227 - rotY: 270.0255 - rotZ: 0.016780857 - scaleX: 0.2 - scaleY: 1.0 - scaleZ: 0.2 - Value: 0 - XmlUI: '' - '3': - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 - CustomImage: - CustomToken: - MergeDistancePixels: 5.0 - Stackable: false - StandUp: false - Thickness: 0.1 - ImageScalar: 1.0 - ImageSecondaryURL: '' - ImageURL: https://i.imgur.com/4dbb10f.png - WidthScale: 0.0 - Description: '' - DragSelectable: true - GMNotes: '' - GUID: ebbc3d - Grid: false - GridProjection: false - Hands: false - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Custom_Token - Nickname: Resources - Snap: false - Sticky: true - Tooltip: true - Transform: - posX: -64.13942 - posY: 1.62164187 - posZ: 2.42749381 - rotX: 359.9201 - rotY: 270.025452 - rotZ: 0.0168974362 - scaleX: 0.2 - scaleY: 1.0 - scaleZ: 0.2 - Value: 0 - XmlUI: '' - Sticky: true - Tooltip: true - Transform: - posX: -68.064 - posY: 4.294 - posZ: 38.802 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 0.2 - scaleY: 1.0 - scaleZ: 0.2 - Value: 0 - XmlUI: '' -CustomMesh: - CastShadows: true - ColliderURL: '' - Convex: true - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068501357192729/6881710C4711FB5949E02FAD63D4B416C7DC0AF9/ - MaterialIndex: 1 - MeshURL: https://pastebin.com/raw/ALrYhQGb - NormalURL: '' - TypeIndex: 7 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: '272489' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MaterialIndex: -1 -MeasureMovement: false -MeshIndex: -1 -Name: Custom_Model_Infinite_Bag -Nickname: Toggle-able Resource tokens -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 28.7 - posY: 4.31 - posZ: -35.37 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 0.8 - scaleY: 1.0 - scaleZ: 0.8 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Deck Pre-Errata Cards 8fa254.yaml b/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Deck Pre-Errata Cards 8fa254.yaml deleted file mode 100644 index 70b1b1ea9..000000000 --- a/unpacked/Custom_Model_Bag Legacy Assets 7165a9/Deck Pre-Errata Cards 8fa254.yaml +++ /dev/null @@ -1,4016 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 -ContainedObjects: -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 431111 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4311': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107869048626382/DA1F5817A4067A74D883201F1AFAC096646A455B/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Basic Weakness - DragSelectable: true - GMNotes: '' - GUID: 3b3c0a - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Drawing the Sign - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -68.997 - posY: 1.497 - posZ: -92.311 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 368928 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3689': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: a56ffe - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Wendy's Amulet - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 14.712 - posY: 1.949 - posZ: -43.078 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 553734 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '5537': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/784110538844100123/A9A0ACCD9ADB5C20745B6AB314C472ECAB71C300/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/784110538844098999/61B68D9375F5BBC2974723215EC6855B5605EFD9/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Act 2 - DragSelectable: true - GMNotes: '' - GUID: a39d6e - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: In Azathoth's Domain - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 3.792 - posY: 1.327 - posZ: -45.991 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 450011 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2317': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378732934/F41E84FCDC0AB52634348C439A6D1A725CEB8115/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378736378/628E179D5305E95AFC25D86526320A24F8B27391/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Agenda 2 - DragSelectable: true - GMNotes: '' - GUID: 25a10f - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Ransacking the Manor - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -6.225 - posY: 1.511 - posZ: -35.793 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 370422 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3704': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Signature - DragSelectable: true - GMNotes: '' - GUID: 321cb7 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Daisy's Tote Bag - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.181 - posY: 1.516 - posZ: -92.412 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232047 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2320': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378685352/22FD056BAF1966FE2D1AC46FC1BF90C1A03A1404/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378686413/C1688C1A909FDC7357EB3EEFADAB1FBD5818BD3E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Arkham Asylum. - DragSelectable: true - GMNotes: '' - GUID: 4bab65 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Patient Confinement - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -20.814 - posY: 1.465 - posZ: -45.614 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232249 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2322': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378761608/B291D276D6FF71FDB43B69DE7507D56767BE975E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Humanoid. Lunatic. - DragSelectable: true - GMNotes: '' - GUID: b8c2bf - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Catacombs Docent - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.953 - posY: 1.666 - posZ: -92.404 - rotX: 355.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 371209 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3712': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: cd94e3 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Searching for Izzie - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.472 - posY: 1.506 - posZ: -92.976 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 231921 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2319': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378686851/006B65A59360F63826342C2B1A062C1AD727BD53/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378687267/945F8EF94DC605E0731E37C1BCD3FE65FCB86D02/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 0e3d00 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Catacombs - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 26.188 - posY: 2.089 - posZ: -41.943 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232226 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2322': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378761608/B291D276D6FF71FDB43B69DE7507D56767BE975E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Hazard. - DragSelectable: true - GMNotes: '' - GUID: dc5296 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Corrosion - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.22 - posY: 1.603 - posZ: -91.932 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 233550 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2335': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Dunwich. - DragSelectable: true - GMNotes: '' - GUID: 2559b7 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Burned Ruins - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 26.273 - posY: 2.108 - posZ: -41.684 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 275436 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2754': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Monster. Geist. Witch. Spectral. Elite. - DragSelectable: true - GMNotes: '' - GUID: 71e37c - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Heretic - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 6.972 - posY: 1.449 - posZ: -44.823 - rotX: 0.0 - rotY: 270.0 - rotZ: 174.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 234206 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2342': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Holding All the Cards - DragSelectable: true - GMNotes: '' - GUID: 8359a3 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Peter Clover - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -68.789 - posY: 1.56 - posZ: -93.202 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 315249 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3152': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860672861853482/578CFD93B087B0ADA085E7A99062E6191772D6BD/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: f8dc01 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: The Skeleton Key (2) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -68.808 - posY: 1.381 - posZ: -92.261 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 272328 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2723': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: The Astronomer - DragSelectable: true - GMNotes: '' - GUID: '298237' - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Norman Withers - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -9.048 - posY: 1.938 - posZ: -45.66 - rotX: 0.0 - rotY: 269.0 - rotZ: 0.0 - scaleX: 1.1 - scaleY: 1.0 - scaleZ: 1.1 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 553733 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '5537': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/784110538844100123/A9A0ACCD9ADB5C20745B6AB314C472ECAB71C300/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/784110538844098999/61B68D9375F5BBC2974723215EC6855B5605EFD9/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Act 1 - DragSelectable: true - GMNotes: '' - GUID: 532ace - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: The Cosmos Beckons - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 0.357 - posY: 1.337 - posZ: -44.297 - rotX: 0.0 - rotY: 270.0 - rotZ: 181.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 270508 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2705': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: The Musician - DragSelectable: true - GMNotes: '' - GUID: fbf105 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Jim Culver - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -24.046 - posY: 4.023 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 233339 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2333': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/782999241296027643/326876D4B46DF777AA1293989DEEE6A810ED027B/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999385819527677/3AD8DFFFBFF54DB098AD3E00BB7E75DA0590FE8B/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: 'Act ' - DragSelectable: true - GMNotes: '' - GUID: 1b5f59 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: The Path to the Hill - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 26.461 - posY: 2.099 - posZ: -41.534 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 430907 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4309': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025945336/04E36F64C2CBE1B4905FF44A869C75EC52CB3A56/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: ff3f17 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Eldritch Inspiration - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.468 - posY: 1.429 - posZ: -92.842 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 369000 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3690': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1546380927206250326/18BF6D2B2BBFDDBE5B021A46C310E4F45493EC26/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Concerned Brother - DragSelectable: true - GMNotes: '' - GUID: 1bfb78 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Randall Cho - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -68.855 - posY: 1.337 - posZ: -93.177 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 450012 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2317': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378732934/F41E84FCDC0AB52634348C439A6D1A725CEB8115/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378736378/628E179D5305E95AFC25D86526320A24F8B27391/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Agenda 3 - DragSelectable: true - GMNotes: '' - GUID: c37241 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Secrets Better Left Hidden - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -6.038 - posY: 1.56 - posZ: -34.983 - rotX: 0.0 - rotY: 270.0 - rotZ: 1.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 275330 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2753': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Agenda 2 - DragSelectable: true - GMNotes: '' - GUID: 57bcb8 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Death's Approach - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 28.412 - posY: 1.954 - posZ: -42.514 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232024 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2320': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378685352/22FD056BAF1966FE2D1AC46FC1BF90C1A03A1404/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378686413/C1688C1A909FDC7357EB3EEFADAB1FBD5818BD3E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Second Floor. - DragSelectable: true - GMNotes: '' - GUID: aa08d4 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Historical Society - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 25.273 - posY: 2.087 - posZ: -42.048 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232046 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2320': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378685352/22FD056BAF1966FE2D1AC46FC1BF90C1A03A1404/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378686413/C1688C1A909FDC7357EB3EEFADAB1FBD5818BD3E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Arkham Asylum. - DragSelectable: true - GMNotes: '' - GUID: 1acf71 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Patient Confinement - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -20.276 - posY: 1.417 - posZ: -45.349 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 553401 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '5534': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1626320664132672810/20E21AC471D7E5E1545F0EAE635A093718D4C7CF/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1626320664132672550/E5E1C8EE53C7692025E048F0A04BE98D6FA17111/ - NumHeight: 2 - NumWidth: 3 - Type: 0 - UniqueBack: true - Description: The Student - DragSelectable: true - GMNotes: '' - GUID: 981ce4 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Amanda Sharpe - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -18.664 - posY: 4.223 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 275433 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2754': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Monster. Geist. Witch. Spectral. Elite. - DragSelectable: true - GMNotes: '' - GUID: 6c0d7e - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Heretic - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 8.311 - posY: 1.459 - posZ: -44.074 - rotX: 0.0 - rotY: 270.0 - rotZ: 186.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232900 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2329': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: The Head Librarian - DragSelectable: true - GMNotes: '' - GUID: 66197b - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Dr. Henry Armitage - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -68.54 - posY: 1.468 - posZ: -92.682 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 275434 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2754': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Monster. Geist. Witch. Spectral. Elite. - DragSelectable: true - GMNotes: '' - GUID: 6f896e - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Heretic - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 8.215 - posY: 1.45 - posZ: -45.062 - rotX: 0.0 - rotY: 270.0 - rotZ: 174.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 271619 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2716': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: The Priest - DragSelectable: true - GMNotes: '' - GUID: dd4921 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Father Mateo - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -31.874 - posY: 3.723 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232824 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2328': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: "\tHuman. Criminal. Syndicate." - DragSelectable: true - GMNotes: '' - GUID: d6a1ee - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: O'Bannion's Thug - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -62.408 - posY: 1.3 - posZ: -58.088 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232022 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2320': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378685352/22FD056BAF1966FE2D1AC46FC1BF90C1A03A1404/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378686413/C1688C1A909FDC7357EB3EEFADAB1FBD5818BD3E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Ground Floor. - DragSelectable: true - GMNotes: '' - GUID: c7a098 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Historical Society - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 27.026 - posY: 2.07 - posZ: -41.62 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232825 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2328': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: "\tHuman. Criminal. Syndicate." - DragSelectable: true - GMNotes: '' - GUID: 5b2e99 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Mobster - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -57.695 - posY: 1.302 - posZ: -54.837 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232264 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2322': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378761608/B291D276D6FF71FDB43B69DE7507D56767BE975E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Terror. - DragSelectable: true - GMNotes: '' - GUID: bce5af - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Realm of Madness - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.256 - posY: 1.599 - posZ: -92.044 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232805 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2328': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Criminal. Elite. - DragSelectable: true - GMNotes: '' - GUID: de3bd5 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Clover Club Pit Boss - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.065 - posY: 1.545 - posZ: -92.323 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 275435 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2754': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Monster. Geist. Witch. Spectral. Elite. - DragSelectable: true - GMNotes: '' - GUID: 13d3f3 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Heretic - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 10.847 - posY: 1.367 - posZ: -49.133 - rotX: 0.0 - rotY: 270.0 - rotZ: 358.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 368423 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3684': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956220005/42E220A3221D2BFA22F1B3A71EEE346A8B0AAD77/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Working on Something Big - DragSelectable: true - GMNotes: '' - GUID: 234ff6 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Dr. William T. Maleson - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.515 - posY: 1.439 - posZ: -92.621 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 230626 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2306': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Artifact from Another Life - DragSelectable: true - GMNotes: '' - GUID: 23c694 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Heirloom of Hyperborea - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.359 - posY: 1.526 - posZ: -92.716 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 270609 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2706': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: The Drifter - DragSelectable: true - GMNotes: '' - GUID: da7828 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: '"Ashcan" Pete' - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -29.183 - posY: 3.823 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 430643 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4306': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956220005/42E220A3221D2BFA22F1B3A71EEE346A8B0AAD77/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 9bd7cf - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Shortcut (2) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.981 - posY: 1.391 - posZ: -92.578 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 450049 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2317': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378732934/F41E84FCDC0AB52634348C439A6D1A725CEB8115/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378736378/628E179D5305E95AFC25D86526320A24F8B27391/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Agenda 3 - DragSelectable: true - GMNotes: '' - GUID: c1397c - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Madness Dies - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 25.733 - posY: 2.031 - posZ: -41.916 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 273707 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2737': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: The Dilettante - DragSelectable: true - GMNotes: '' - GUID: c6cc82 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Jenny Barnes - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -21.355 - posY: 4.123 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 449400 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4494': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1016065907888685525/36510337B6E7EC46984AE8AE341BA5E3DFB172F3/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065907888685007/A30CCF98600F1E9FA0F3EE674FE35BCD86CB6ECB/ - NumHeight: 2 - NumWidth: 2 - Type: 0 - UniqueBack: true - Description: The Reporter - DragSelectable: true - GMNotes: '' - GUID: 2feb4c - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Rex Murphy (Taboo) - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -26.615 - posY: 3.923 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 270305 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2703': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: The Chef - DragSelectable: true - GMNotes: '' - GUID: 81a0f8 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Zoey Samaras - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -34.565 - posY: 3.623 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 448235 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4482': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/780749631103001215/3FF9DC51D7737267B68EC5D9CF17BE421681663B/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/780749631102998699/DA1D7C58FE177F46169558EF1D8301754A91A73A/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Act 3 - DragSelectable: true - GMNotes: '' - GUID: 105e3a - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: The Black Expanse - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 20.247 - posY: 1.291 - posZ: -66.38 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 293014 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2930': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025946328/561232524C8EAA4B4371B28652F78969E6ED6FFB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: f91e14 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Guiding Spirit (1) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.583 - posY: 1.42 - posZ: -92.304 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 430651 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4306': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956220005/42E220A3221D2BFA22F1B3A71EEE346A8B0AAD77/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 2e3115 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Barricade (3) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.549 - posY: 1.448 - posZ: -92.864 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 230343 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2303': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956214701/377534905048B61E88314A81F482DD31D6B54038/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 4224db - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Time Warp (2) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.328 - posY: 1.371 - posZ: -92.714 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 368427 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3684': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956220005/42E220A3221D2BFA22F1B3A71EEE346A8B0AAD77/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: c18ebe - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Laboratory Assistant - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.437 - posY: 1.41 - posZ: -92.244 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 450010 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2317': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378732934/F41E84FCDC0AB52634348C439A6D1A725CEB8115/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378736378/628E179D5305E95AFC25D86526320A24F8B27391/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Agenda 1 - DragSelectable: true - GMNotes: '' - GUID: 3da436 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: The Truth is Hidden - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -6.378 - posY: 1.494 - posZ: -34.135 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 230620 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2306': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 49a91e - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Roland's .38 Special - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -68.409 - posY: 1.353 - posZ: -92.412 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 231613 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2316': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/778493212055041441/90F035BD69A7C5C6B6F43426DDDA3A09DFCBCBDF/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Presence from Beyond the Stars - DragSelectable: true - GMNotes: '' - GUID: 3fbc07 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Otherworldly Meddler - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.444 - posY: 1.583 - posZ: -93.586 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 315244 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3152': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860672861853482/578CFD93B087B0ADA085E7A99062E6191772D6BD/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '... Or Are They?' - DragSelectable: true - GMNotes: '' - GUID: 9dd911 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Lucky Dice (2) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.198 - posY: 1.4 - posZ: -92.681 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 371605 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3716': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: e68658 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Smite the Wicked - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.038 - posY: 1.477 - posZ: -92.713 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 275331 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2753': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Act 1 - DragSelectable: true - GMNotes: '' - GUID: 70fcce - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: In Pursuit of the Dead - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 28.342 - posY: 1.964 - posZ: -42.297 - rotX: 0.0 - rotY: 271.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 368840 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3688': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860672864134253/9A6E0399D3624C5FFBD6CAFE5D4B988436CC65AC/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Lost Son of Earth - DragSelectable: true - GMNotes: '' - GUID: a7358f - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Yaotl (1) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.471 - posY: 1.365 - posZ: -92.398 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 270406 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2704': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: The Reporter - DragSelectable: true - GMNotes: '' - GUID: b14c5f - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Rex Murphy - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -37.256 - posY: 3.523 - posZ: -36.364 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232045 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2320': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378685352/22FD056BAF1966FE2D1AC46FC1BF90C1A03A1404/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378686413/C1688C1A909FDC7357EB3EEFADAB1FBD5818BD3E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Arkham Asylum. - DragSelectable: true - GMNotes: '' - GUID: 8dcf73 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Patient Confinement - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -19.584 - posY: 1.319 - posZ: -46.047 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 369424 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3694': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Signature - DragSelectable: true - GMNotes: '' - GUID: f7095f - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: On the Lam - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.168 - posY: 1.487 - posZ: -92.885 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 232044 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2320': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378685352/22FD056BAF1966FE2D1AC46FC1BF90C1A03A1404/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378686413/C1688C1A909FDC7357EB3EEFADAB1FBD5818BD3E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - Description: Arkham Asylum. - DragSelectable: true - GMNotes: '' - GUID: 728ae0 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Patient Confinement - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -20.237 - posY: 1.368 - posZ: -46.007 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 447932 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4479': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025943109/9C5481E6DFEACD450C5522F884E615482281DDB1/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: ebdd78 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: .35 Winchester - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: -69.212 - posY: 1.458 - posZ: -92.913 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 449904 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4499': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1807607979163977116/B4A1405FC47AD67007EA09C27B703F4F3848C8A0/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1807607979163976478/FC378E356EF89EC9AB130A70B63D7129EA3FA10B/ - NumHeight: 4 - NumWidth: 6 - Type: 0 - UniqueBack: true - Description: Act 1 - DragSelectable: true - GMNotes: '' - GUID: bdb106 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Back into the Depths - SidewaysCard: true - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 26.209 - posY: 2.148 - posZ: -42.993 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 588403 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2662': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1747933191219101327/797556CAC112D6D289B3A5D3A28433C9F0999CB5/ - NumHeight: 5 - NumWidth: 6 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: d76b40 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Guided by the Unseen (3) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 78.189 - posY: 1.359 - posZ: 8.158 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 538928 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '5389': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697276627309509299/3B0E32939EB4599CCE3596975637C90FE4EE1DD6/ - NumHeight: 5 - NumWidth: 6 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 7f5978 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Wendy's Amulet - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 78.598 - posY: 1.337 - posZ: 7.399 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 440722 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4407': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025944587/520448D0E9C22F102C7DDF64322EAD6FC221ECC8/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: e3bd71 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Crystallizer of Dreams - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 78.495 - posY: 1.386 - posZ: 7.493 - rotX: 0.0 - rotY: 270.0 - rotZ: 177.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 440924 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '4409': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025943109/9C5481E6DFEACD450C5522F884E615482281DDB1/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: "Calamitous Blade of Celepha\xEFs" - DragSelectable: true - GMNotes: '' - GUID: bbd11b - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: The Hungering Blade (1) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 78.022 - posY: 1.335 - posZ: 7.593 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 538825 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '5388': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1546381162227145538/0F253FC5301911273C32210992261DD1D2EBB578/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: c1365d - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Seeking Answers (2) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 78.275 - posY: 1.323 - posZ: 7.736 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 374417 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '3744': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025946328/561232524C8EAA4B4371B28652F78969E6ED6FFB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: '' - DragSelectable: true - GMNotes: '' - GUID: 864fb6 - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Bait and Switch (3) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 78.318 - posY: 1.289 - posZ: 6.794 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 504613 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '5046': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093846571/13C76218853EE87123267F8F6BE99206DB40470B/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - Description: Weakness - DragSelectable: true - GMNotes: '' - GUID: '313167' - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Card - Nickname: Yaztaroth - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 78.316 - posY: 1.247 - posZ: 7.173 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -- AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - CardID: 266200 - ColorDiffuse: - b: 0.71324 - g: 0.71324 - r: 0.71324 - CustomDeck: - '2662': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656728123511551078/AEAB50847DAF7047B1420F99F34EE05551D112A1/ - NumHeight: 1 - NumWidth: 1 - Type: 0 - UniqueBack: false - Description: BETA CARD - DragSelectable: true - GMNotes: '' - GUID: 1b2d1e - Grid: true - GridProjection: false - Hands: true - HideWhenFaceDown: true - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: CardCustom - Nickname: Burn After Reading (1) - SidewaysCard: false - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 29.34 - posY: 2.139 - posZ: -49.71 - rotX: 0.0 - rotY: 270.0 - rotZ: 7.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 - Value: 0 - XmlUI: '' -CustomDeck: - '2303': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956214701/377534905048B61E88314A81F482DD31D6B54038/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '2306': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '2316': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/778493212055041441/90F035BD69A7C5C6B6F43426DDDA3A09DFCBCBDF/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '2319': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378686851/006B65A59360F63826342C2B1A062C1AD727BD53/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378687267/945F8EF94DC605E0731E37C1BCD3FE65FCB86D02/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2320': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378685352/22FD056BAF1966FE2D1AC46FC1BF90C1A03A1404/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378686413/C1688C1A909FDC7357EB3EEFADAB1FBD5818BD3E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2322': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378761608/B291D276D6FF71FDB43B69DE7507D56767BE975E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '2328': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '2329': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '2333': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/782999241296027643/326876D4B46DF777AA1293989DEEE6A810ED027B/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999385819527677/3AD8DFFFBFF54DB098AD3E00BB7E75DA0590FE8B/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2335': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/782999385819522537/207CCD9C85ECB70A339C09170ABB42E139924AA0/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999385819523376/198434B0178F76107193CB52D7FC70E5265E526E/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2342': - BackIsHidden: true - BackURL: https://i.imgur.com/sRsWiSG.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/782999241295993974/70871F727ABBAB3DB22003051B5E1FBF8999AEEB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '2662': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1656728123511551078/AEAB50847DAF7047B1420F99F34EE05551D112A1/ - NumHeight: 1 - NumWidth: 1 - Type: 0 - UniqueBack: false - '2703': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2704': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2705': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2706': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2716': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2723': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2737': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845464/80687C9319FA2015F3D9F7CBEB4C55FBF045B27D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093845971/A678BD374EC4DE672206B5EF7EB57DC885BC839C/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2753': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2754': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/829135524526797029/1F8A6C29028AED32DB44E4CF22E3120C417F413D/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/829135524526785922/F34A644AC467C751B6D7B8AF398B8FDB07CCF6A0/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '2930': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025946328/561232524C8EAA4B4371B28652F78969E6ED6FFB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3152': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860672861853482/578CFD93B087B0ADA085E7A99062E6191772D6BD/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3684': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956220005/42E220A3221D2BFA22F1B3A71EEE346A8B0AAD77/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3688': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860672864134253/9A6E0399D3624C5FFBD6CAFE5D4B988436CC65AC/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3689': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3690': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1546380927206250326/18BF6D2B2BBFDDBE5B021A46C310E4F45493EC26/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3694': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3704': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3712': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3716': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956229149/FC980D306FA8FE74C552981167CBDF4305821B31/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '3744': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025946328/561232524C8EAA4B4371B28652F78969E6ED6FFB/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '4306': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/960860341956220005/42E220A3221D2BFA22F1B3A71EEE346A8B0AAD77/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '4309': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025945336/04E36F64C2CBE1B4905FF44A869C75EC52CB3A56/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '4311': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107869048626382/DA1F5817A4067A74D883201F1AFAC096646A455B/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '4407': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025944587/520448D0E9C22F102C7DDF64322EAD6FC221ECC8/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '4409': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025943109/9C5481E6DFEACD450C5522F884E615482281DDB1/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '4479': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065725025943109/9C5481E6DFEACD450C5522F884E615482281DDB1/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '4482': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/780749631103001215/3FF9DC51D7737267B68EC5D9CF17BE421681663B/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/780749631102998699/DA1D7C58FE177F46169558EF1D8301754A91A73A/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '4494': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1016065907888685525/36510337B6E7EC46984AE8AE341BA5E3DFB172F3/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1016065907888685007/A30CCF98600F1E9FA0F3EE674FE35BCD86CB6ECB/ - NumHeight: 2 - NumWidth: 2 - Type: 0 - UniqueBack: true - '4499': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1807607979163977116/B4A1405FC47AD67007EA09C27B703F4F3848C8A0/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1807607979163976478/FC378E356EF89EC9AB130A70B63D7129EA3FA10B/ - NumHeight: 4 - NumWidth: 6 - Type: 0 - UniqueBack: true - '4500': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/775107058378732934/F41E84FCDC0AB52634348C439A6D1A725CEB8115/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/775107058378736378/628E179D5305E95AFC25D86526320A24F8B27391/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '5046': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg - FaceURL: http://cloud-3.steamusercontent.com/ugc/1011562618093846571/13C76218853EE87123267F8F6BE99206DB40470B/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '5388': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1546381162227145538/0F253FC5301911273C32210992261DD1D2EBB578/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: false - '5389': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1697276627309509299/3B0E32939EB4599CCE3596975637C90FE4EE1DD6/ - NumHeight: 5 - NumWidth: 6 - Type: 0 - UniqueBack: false - '5534': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/1626320664132672810/20E21AC471D7E5E1545F0EAE635A093718D4C7CF/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1626320664132672550/E5E1C8EE53C7692025E048F0A04BE98D6FA17111/ - NumHeight: 2 - NumWidth: 3 - Type: 0 - UniqueBack: true - '5537': - BackIsHidden: true - BackURL: http://cloud-3.steamusercontent.com/ugc/784110538844100123/A9A0ACCD9ADB5C20745B6AB314C472ECAB71C300/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/784110538844098999/61B68D9375F5BBC2974723215EC6855B5605EFD9/ - NumHeight: 7 - NumWidth: 10 - Type: 0 - UniqueBack: true - '5884': - BackIsHidden: true - BackURL: https://i.imgur.com/EcbhVuh.jpg/ - FaceURL: http://cloud-3.steamusercontent.com/ugc/1747933191219101327/797556CAC112D6D289B3A5D3A28433C9F0999CB5/ - NumHeight: 5 - NumWidth: 6 - Type: 0 - UniqueBack: false -DeckIDs: -- 431111 -- 368928 -- 553734 -- 450011 -- 370422 -- 232047 -- 232249 -- 371209 -- 231921 -- 232226 -- 233550 -- 275436 -- 234206 -- 315249 -- 272328 -- 553733 -- 270508 -- 233339 -- 430907 -- 369000 -- 450012 -- 275330 -- 232024 -- 232046 -- 553401 -- 275433 -- 232900 -- 275434 -- 271619 -- 232824 -- 232022 -- 232825 -- 232264 -- 232805 -- 275435 -- 368423 -- 230626 -- 270609 -- 430643 -- 450049 -- 273707 -- 449400 -- 270305 -- 448235 -- 293014 -- 430651 -- 230343 -- 368427 -- 450010 -- 230620 -- 231613 -- 315244 -- 371605 -- 275331 -- 368840 -- 270406 -- 232045 -- 369424 -- 232044 -- 447932 -- 449904 -- 588403 -- 538928 -- 440722 -- 440924 -- 538825 -- 374417 -- 504613 -- 266200 -Description: '' -DragSelectable: true -GMNotes: '' -GUID: 8fa254 -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: true -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Deck -Nickname: Pre-Errata Cards -SidewaysCard: false -Snap: true -Sticky: true -Tooltip: true -Transform: - posX: 43.66 - posY: 2.65 - posZ: -66.59 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.ttslua b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.ttslua index 5e3a3f62d..7ba1823d7 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.ttslua +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.ttslua @@ -501,4 +501,4 @@ end function round(num, dec) local mult = 10^(dec or 0) return math.floor(num * mult + 0.5) / mult -end \ No newline at end of file +end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.yaml index 062919096..137c45d35 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 0.9921699 - r: 1.0 + b: 1 + g: 0.99217 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.yaml' @@ -19,16 +19,16 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068588410895356/0B5F0CCD29DEC12514840D7B9CD2329B635A79A6/ MaterialIndex: 3 - MeshURL: http://pastebin.com/raw.php?i=uWAmuNZ2 + MeshURL: http://cloud-3.steamusercontent.com/ugc/2278324073260846176/33EFCAF30567F8756F665BE5A2A6502E9C61C7F7/ NormalURL: '' TypeIndex: 6 Description: '' @@ -43,7 +43,7 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false LuaScript: !include 'Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8.ttslua' -LuaScriptState: "{\"ml\":{\"77a5f9\":{\"lock\":false,\"pos\":{\"x\":-9,\"y\":1.4815,\"z\":-66},\"rot\":{\"x\":0,\"y\":270,\"z\":0}},\"9f6801\":{\"lock\":false,\"pos\":{\"x\":-9,\"y\":1.4815,\"z\":-76},\"rot\":{\"x\":0,\"y\":270,\"z\":0}}}}\r" +LuaScriptState: '{"ml":{"77a5f9":{"lock":false,"pos":{"x":-9,"y":1.4815,"z":-66},"rot":{"x":0,"y":270,"z":0}},"9f6801":{"lock":false,"pos":{"x":-9,"y":1.4815,"z":-76},"rot":{"x":0,"y":270,"z":0}}}}' MaterialIndex: -1 MeasureMovement: false MeshIndex: -1 @@ -53,12 +53,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 0.0 + posX: 0 posY: 1.87 - posZ: -71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: -71 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.76 scaleY: 0.11 scaleZ: 1.49 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.ttslua b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.ttslua index 7a8c1b8c9..c99612b1a 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.ttslua +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.ttslua @@ -500,4 +500,4 @@ end function round(num, dec) local mult = 10^(dec or 0) return math.floor(num * mult + 0.5) / mult -end \ No newline at end of file +end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.yaml index 8af82db31..72096618b 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801.yaml @@ -1,34 +1,38 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: -- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Bad Blood 451eaa.yaml' +- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Relics of the + Past 0d6da1.yaml' - !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Red Tide Rising 5302f2.yaml' +- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Read or Die 9e73fa.yaml' +- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Laid to Rest + e2dd57.yaml' +- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model By the Book cc7eb3.yaml' +- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Bad Blood 451eaa.yaml' - !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model All or Nothing 72ab92.yaml' -- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Read or Die 9e73fa.yaml' -- !include 'Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model By the Book cc7eb3.yaml' CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068588410811700/1DF1FE7CA9B185FE571B967718A66C175FB35B64/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -46,7 +50,7 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false LuaScript: !include 'Custom_Model_Bag Challenge Scenarios 9f6801.ttslua' -LuaScriptState: "{\"ml\":{\"451eaa\":{\"lock\":false,\"pos\":{\"x\":12.2499580383301,\"y\":1.46560525894165,\"z\":3.98636198043823},\"rot\":{\"x\":359.920135498047,\"y\":269.999908447266,\"z\":0.016873624175787}},\"5302f2\":{\"lock\":false,\"pos\":{\"x\":12.2504663467407,\"y\":1.45853757858276,\"z\":-20.013650894165},\"rot\":{\"x\":359.920135498047,\"y\":270.00146484375,\"z\":0.0168716721236706}},\"72ab92\":{\"lock\":false,\"pos\":{\"x\":12.2520532608032,\"y\":1.4679582118988,\"z\":11.9863719940186},\"rot\":{\"x\":359.920135498047,\"y\":270,\"z\":0.0168737415224314}},\"9e73fa\":{\"lock\":false,\"pos\":{\"x\":12.2500581741333,\"y\":1.46089386940002,\"z\":-12.0136384963989},\"rot\":{\"x\":359.920135498047,\"y\":269.999847412109,\"z\":0.0168744903057814}},\"cc7eb3\":{\"lock\":false,\"pos\":{\"x\":12.2495565414429,\"y\":1.46325027942657,\"z\":-4.01364088058472},\"rot\":{\"x\":359.920135498047,\"y\":269.999908447266,\"z\":0.0168744102120399}}}}\r" +LuaScriptState: '{"ml":{"0d6da1":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":-28.014},"rot":{"x":0,"y":270.0014,"z":0}},"451eaa":{"lock":false,"pos":{"x":12.252,"y":1.4815,"z":11.986},"rot":{"x":0,"y":269.9999,"z":0}},"5302f2":{"lock":false,"pos":{"x":12.2505,"y":1.4815,"z":-20.0137},"rot":{"x":0,"y":270.0014,"z":0}},"72ab92":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":19.986},"rot":{"x":0,"y":269.9999,"z":0}},"9e73fa":{"lock":false,"pos":{"x":12.2501,"y":1.4815,"z":-12.0137},"rot":{"x":0,"y":269.9998,"z":0}},"cc7eb3":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":3.986},"rot":{"x":0,"y":269.9999,"z":0}},"e2dd57":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":-4.014},"rot":{"x":0,"y":270,"z":0}}}}' MaterialIndex: -1 MeasureMovement: false MeshIndex: -1 @@ -56,12 +60,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -9.0 + posX: -9 posY: 1.48 - posZ: -76.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: -76 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 scaleY: 0.1 scaleZ: 0.8 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model All or Nothing 72ab92.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model All or Nothing 72ab92.yaml index a88ebacc4..41798351b 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model All or Nothing 72ab92.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model All or Nothing 72ab92.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1655600953066192972/8A5939900FCA8E2A2772CEDE6A03594A68961C4C/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -61,11 +61,11 @@ Sticky: true Tooltip: true Transform: posX: 12.25 - posY: 1.47 - posZ: 11.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posY: 1.48 + posZ: 19.99 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Bad Blood 451eaa.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Bad Blood 451eaa.yaml index 6c3549db8..21f59416c 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Bad Blood 451eaa.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Bad Blood 451eaa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1655599785039299268/52DB5C3A0E600D6AECB0B851ECF90C5B3D016421/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -61,11 +61,11 @@ Sticky: true Tooltip: true Transform: posX: 12.25 - posY: 1.47 - posZ: 3.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posY: 1.48 + posZ: 11.99 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model By the Book cc7eb3.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model By the Book cc7eb3.yaml index 714a664a1..f9856b8f3 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model By the Book cc7eb3.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model By the Book cc7eb3.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1719794129200879643/47A3BC15C8C8ADB45137A2258B86C1D2DB9C2B03/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -61,11 +61,11 @@ Sticky: true Tooltip: true Transform: posX: 12.25 - posY: 1.46 - posZ: -4.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posY: 1.48 + posZ: 3.99 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Alice in Wonderland 39916d.ttslua b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Laid to Rest e2dd57.ttslua similarity index 100% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Alice in Wonderland 39916d.ttslua rename to unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Laid to Rest e2dd57.ttslua diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Crown of Egil 7458b7.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Laid to Rest e2dd57.yaml similarity index 53% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Crown of Egil 7458b7.yaml rename to unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Laid to Rest e2dd57.yaml index a78150b23..a36ff214a 100644 --- a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model The Crown of Egil 7458b7.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Laid to Rest e2dd57.yaml @@ -1,71 +1,71 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ Name: dunwich_back Size: 7.4 Transform: - posX: -0.0021877822 - posY: -0.08963572 - posZ: -0.00288731651 - rotX: 270.0 - rotY: 359.869568 - rotZ: 0.0 - scaleX: 2.00000215 - scaleY: 2.00000238 - scaleZ: 2.00000262 + posX: 0 + posY: 0 + posZ: 0 + rotX: 270 + rotY: 0 + rotZ: 0 + scaleX: 2 + scaleY: 2 + scaleZ: 2 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: https://i.imgur.com/Vn2CXra.png + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2115061845788468343/B7611EC7DCD2008B87D6518EBEFF0AD36EFE5B54/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj NormalURL: '' TypeIndex: 0 -Description: version 1.1 +Description: Challenge Scenario DragSelectable: true -GMNotes: fancreations/campaign_crown_of_egil.json -GUID: 7458b7 +GMNotes: scenarios/challenge_laid_to_rest.json +GUID: e2dd57 Grid: true GridProjection: false -Hands: false +Hands: true HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: !include "Custom_Model \uF729The Crown of Egil 7458b7.ttslua" +LuaScript: !include 'Custom_Model Laid to Rest e2dd57.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_Model -Nickname: "\uF729The Crown of Egil" +Nickname: Laid to Rest Snap: true Sticky: true Tooltip: true Transform: - posX: -7.14 - posY: 1.62 - posZ: 68.8 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 12.25 + posY: 1.48 + posZ: -4.01 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Read or Die 9e73fa.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Read or Die 9e73fa.yaml index 8182fa671..b428cd4e6 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Read or Die 9e73fa.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Read or Die 9e73fa.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1655599785039304850/852232605656B7DD6577C475A1988491D3378506/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -61,11 +61,11 @@ Sticky: true Tooltip: true Transform: posX: 12.25 - posY: 1.46 + posY: 1.48 posZ: -12.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Red Tide Rising 5302f2.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Red Tide Rising 5302f2.yaml index 13955184c..cff363110 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Red Tide Rising 5302f2.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Red Tide Rising 5302f2.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1849293764610824071/BD70BFDA6DED25221D6DC1BE60C8CE11B165F848/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -61,11 +61,11 @@ Sticky: true Tooltip: true Transform: posX: 12.25 - posY: 1.46 + posY: 1.48 posZ: -20.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Betrayal at the Mountains of Madness ef939a.ttslua b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Relics of the Past 0d6da1.ttslua similarity index 100% rename from unpacked/Custom_Model_Bag Fan-Made ScenariosCampaignsMiscellany 66e97c/Custom_Model_Bag Fan-Made Campaigns 89c32e/Custom_Model Betrayal at the Mountains of Madness ef939a.ttslua rename to unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Relics of the Past 0d6da1.ttslua diff --git a/unpacked/Custom_Model Half-Life b46db2.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Relics of the Past 0d6da1.yaml similarity index 63% rename from unpacked/Custom_Model Half-Life b46db2.yaml rename to unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Relics of the Past 0d6da1.yaml index 3f57dea0a..717f370ee 100644 --- a/unpacked/Custom_Model Half-Life b46db2.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Challenge Scenarios 9f6801/Custom_Model Relics of the Past 0d6da1.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,39 +11,39 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: - a: 0.27843 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0.27451 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 - DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2005838229417815473/BC879D878262BA9FBD9040AE4F952468C3C4C2CC/ + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2299716459828640802/A224024254ABCFB818F12B50C1E5E0B32060F972/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj NormalURL: '' TypeIndex: 0 -Description: '' +Description: Challenge Scenario DragSelectable: true -GMNotes: fancreations/campaign_half-life.json -GUID: b46db2 +GMNotes: scenarios/challenge_relics_of_the_past.json +GUID: 0d6da1 Grid: true GridProjection: false Hands: false @@ -51,21 +51,21 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false -LuaScript: !include 'Custom_Model Half-Life b46db2.ttslua' +LuaScript: !include 'Custom_Model Relics of the Past 0d6da1.ttslua' LuaScriptState: '' MeasureMovement: false Name: Custom_Model -Nickname: Half-Life +Nickname: Relics of the Past Snap: true Sticky: true Tooltip: true Transform: - posX: -25.87 + posX: 12.25 posY: 1.48 - posZ: -87.51 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: -28.01 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.ttslua b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.ttslua index 7a8c1b8c9..c99612b1a 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.ttslua +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.ttslua @@ -500,4 +500,4 @@ end function round(num, dec) local mult = 10^(dec or 0) return math.floor(num * mult + 0.5) / mult -end \ No newline at end of file +end \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.yaml index ec9a90968..ef91c1f14 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Carnevale of Horrors 23dd51.yaml' @@ -35,13 +35,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1758068588410818645/F8C950620F886182DD2BB1FD351E41D0B77B4827/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/core_h_MSH.obj @@ -59,7 +59,7 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: false LuaScript: !include 'Custom_Model_Bag Standalone Scenarios 77a5f9.ttslua' -LuaScriptState: "{\"ml\":{\"01d780\":{\"lock\":false,\"pos\":{\"x\":12.252,\"y\":1.4815,\"z\":11.986},\"rot\":{\"x\":0,\"y\":270.0001,\"z\":0}},\"0dce91\":{\"lock\":false,\"pos\":{\"x\":12.25,\"y\":1.4815,\"z\":-28.014},\"rot\":{\"x\":0,\"y\":269.9792,\"z\":0}},\"23dd51\":{\"lock\":false,\"pos\":{\"x\":12.249,\"y\":1.4815,\"z\":35.986},\"rot\":{\"x\":0,\"y\":270,\"z\":0}},\"3c4f3c\":{\"lock\":false,\"pos\":{\"x\":12.251,\"y\":1.4815,\"z\":-20.014},\"rot\":{\"x\":0,\"y\":269.9867,\"z\":0}},\"4c173f\":{\"lock\":false,\"pos\":{\"x\":12.25,\"y\":1.4815,\"z\":3.986},\"rot\":{\"x\":0,\"y\":269.9998,\"z\":0}},\"4dee5a\":{\"lock\":false,\"pos\":{\"x\":12.25,\"y\":1.4815,\"z\":-4.014},\"rot\":{\"x\":0,\"y\":269.9999,\"z\":0}},\"d02940\":{\"lock\":false,\"pos\":{\"x\":12.25,\"y\":1.4815,\"z\":-36.014},\"rot\":{\"x\":0,\"y\":270.0045,\"z\":0}},\"db7039\":{\"lock\":false,\"pos\":{\"x\":12.25,\"y\":1.4815,\"z\":27.986},\"rot\":{\"x\":0,\"y\":270.0001,\"z\":0}},\"ee987d\":{\"lock\":false,\"pos\":{\"x\":12.25,\"y\":1.4815,\"z\":19.986},\"rot\":{\"x\":0,\"y\":270.0001,\"z\":0}},\"fc7674\":{\"lock\":false,\"pos\":{\"x\":12.247,\"y\":1.4815,\"z\":-12.016},\"rot\":{\"x\":0,\"y\":270.0001,\"z\":0}}}}\r" +LuaScriptState: '{"ml":{"01d780":{"lock":false,"pos":{"x":12.252,"y":1.4815,"z":11.986},"rot":{"x":0,"y":270.0001,"z":0}},"0dce91":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":-28.014},"rot":{"x":0,"y":269.9792,"z":0}},"23dd51":{"lock":false,"pos":{"x":12.249,"y":1.4815,"z":35.986},"rot":{"x":0,"y":270,"z":0}},"3c4f3c":{"lock":false,"pos":{"x":12.251,"y":1.4815,"z":-20.014},"rot":{"x":0,"y":269.9867,"z":0}},"4c173f":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":3.986},"rot":{"x":0,"y":269.9998,"z":0}},"4dee5a":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":-4.014},"rot":{"x":0,"y":269.9999,"z":0}},"d02940":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":-36.014},"rot":{"x":0,"y":270.0045,"z":0}},"db7039":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":27.986},"rot":{"x":0,"y":270.0001,"z":0}},"ee987d":{"lock":false,"pos":{"x":12.25,"y":1.4815,"z":19.986},"rot":{"x":0,"y":270.0001,"z":0}},"fc7674":{"lock":false,"pos":{"x":12.247,"y":1.4815,"z":-12.016},"rot":{"x":0,"y":270.0001,"z":0}}}}' MaterialIndex: -1 MeasureMovement: false MeshIndex: -1 @@ -69,12 +69,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -9.0 + posX: -9 posY: 1.48 - posZ: -66.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: -66 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 scaleY: 0.1 scaleZ: 0.8 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Carnevale of Horrors 23dd51.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Carnevale of Horrors 23dd51.yaml index cfe1ebb77..71008e78e 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Carnevale of Horrors 23dd51.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Carnevale of Horrors 23dd51.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/826883954590151386/AFF80583FAE6A513663D7BA0A36C4EDAC02DCF43/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: 32.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.ttslua b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.ttslua index e6f67c6af..3c2a044ca 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.ttslua +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.ttslua @@ -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("core/DownloadBox") +end) __bundle_register("core/DownloadBox", function(require, _LOADED, __bundle_register, __bundle_modules) function onLoad() local notes = self.getGMNotes() @@ -84,7 +87,4 @@ function buttonClick_download() Global.call('placeholder_download', { url = self.getGMNotes(), replace = self.guid }) end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/DownloadBox") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.yaml index 5068eb873..20bb36cc6 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Curse of the Rougarou db7039.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/826883954590159139/DD8593B1F0B0D531AF8F3A9B6A37568E551B9B03/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: 24.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Fortune and Folly 0dce91.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Fortune and Folly 0dce91.yaml index 6de77a005..7be744660 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Fortune and Folly 0dce91.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Fortune and Folly 0dce91.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2038486699957629658/90632624064547CE896A5236F3F15492FD920D28/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: -31.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Guardians of the Abyss ee987d.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Guardians of the Abyss ee987d.yaml index e5a5b0545..1c9fbf697 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Guardians of the Abyss ee987d.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Guardians of the Abyss ee987d.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/826883954590180592/50C4420774777AFE0D3168DA24D0E72941862CC4/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: 16.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Machinations Through Time 3c4f3c.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Machinations Through Time 3c4f3c.yaml index de167f9a6..23bd8065b 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Machinations Through Time 3c4f3c.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Machinations Through Time 3c4f3c.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1849293764609930695/A32186E44882FD6EF5753CCB9D325B4EC6848B5A/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.28 posY: 1.48 posZ: -23.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Murder at the Excelsior Hotel 01d780.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Murder at the Excelsior Hotel 01d780.yaml index b2cbc2c3f..b3211964f 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Murder at the Excelsior Hotel 01d780.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model Murder at the Excelsior Hotel 01d780.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/766102485311280290/6AFE3755ED304F8D6D1E0B0E7CCA7748BA07DDE9/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: 8.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Blob that Ate Everything 4dee5a.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Blob that Ate Everything 4dee5a.yaml index 31155636f..c939bdb0c 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Blob that Ate Everything 4dee5a.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Blob that Ate Everything 4dee5a.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/784129708171644922/CF8E4B744A65B5C7FEAF46C907D8E470A9E2241F/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: -7.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Labyrinths of Lunacy 4c173f.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Labyrinths of Lunacy 4c173f.yaml index 4d698c538..dd7a4e9a8 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Labyrinths of Lunacy 4c173f.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Labyrinths of Lunacy 4c173f.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/798737729142912455/15B44AE6487546376FD9DED67A1BC9D613163511/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: 0.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.2 scaleZ: 2.46 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Meddling of Meowlathotep d02940.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Meddling of Meowlathotep d02940.yaml index bffd0eb87..7d498b834 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Meddling of Meowlathotep d02940.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model The Meddling of Meowlathotep d02940.yaml @@ -1,40 +1,40 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ Name: dunwich_back Size: 7.4 Transform: - posX: 0.0 - posY: 0.0 - posZ: 0.0 - rotX: 270.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 2.0 - scaleY: 2.0 - scaleZ: 2.0 + posX: 0 + posY: 0 + posZ: 0 + rotX: 270 + rotY: 0 + rotZ: 0 + scaleX: 2 + scaleY: 2 + scaleZ: 2 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2038486699957629839/74B187339172F55B05CD212F214F5D31B117FDF0/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: -36.01 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model War of the Outer Gods fc7674.yaml b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model War of the Outer Gods fc7674.yaml index 3f3a8cfc2..f3d778f93 100644 --- a/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model War of the Outer Gods fc7674.yaml +++ b/unpacked/Custom_Model_Bag Official StandaloneChallenge Scenarios 0ef5c8/Custom_Model_Bag Standalone Scenarios 77a5f9/Custom_Model War of the Outer Gods fc7674.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedDecals: - CustomDecal: ImageURL: http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/ @@ -11,30 +11,30 @@ AttachedDecals: posX: -0.0021877822 posY: -0.08963572 posZ: -0.00288731651 - rotX: 270.0 + rotX: 270 rotY: 359.869568 - rotZ: 0.0 + rotZ: 0 scaleX: 2.00000215 scaleY: 2.00000238 scaleZ: 2.00000262 Autoraise: true ColorDiffuse: a: 0.27451 - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/1655599785041387976/264E2E1DA532DC374D6E75B19AD4FEDDBEAA22F0/ MaterialIndex: 3 MeshURL: https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj @@ -63,9 +63,9 @@ Transform: posX: 12.25 posY: 1.48 posZ: -15.99 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.21 scaleY: 0.46 scaleZ: 2.42 diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f.yaml index a18bcc6b2..347db2d69 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f.yaml @@ -1,14 +1,14 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - !include 'Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Mysterious Chanting - Custom Content Blog 18bd3a.yaml' @@ -33,13 +33,13 @@ CustomMesh: ColliderURL: '' Convex: true CustomShader: - FresnelStrength: 0.0 + FresnelStrength: 0 SpecularColor: - b: 1.0 - g: 1.0 - r: 1.0 - SpecularIntensity: 0.0 - SpecularSharpness: 2.0 + b: 1 + g: 1 + r: 1 + SpecularIntensity: 0 + SpecularSharpness: 2 DiffuseURL: http://cloud-3.steamusercontent.com/ugc/762723517668487233/EDDD832597F756BE94833B29B70EE21EDA95C677/ MaterialIndex: 3 MeshURL: http://cloud-3.steamusercontent.com/ugc/254843371583107453/E3BD9426DD28A525F93BAF54635A969958E991B2/ @@ -67,12 +67,12 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -66.0 + posX: -66 posY: 1.47 - posZ: 55.0 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + posZ: 55 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 4.3 scaleY: 4.3 scaleZ: 4.3 diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Learn to Play 49f237.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Learn to Play 49f237.yaml index f74606f14..0bdf6872d 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Learn to Play 49f237.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Learn to Play 49f237.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,11 +35,11 @@ Transform: posX: 22.24 posY: 2.46 posZ: -29.53 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 2.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Official FAQ 7fc24e.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Official FAQ 7fc24e.yaml index e20330cf4..db03ede83 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Official FAQ 7fc24e.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Official FAQ 7fc24e.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,11 +35,11 @@ Transform: posX: 22.42 posY: 2.46 posZ: -30.68 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 2.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Starter Decklists 9cd82a.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Starter Decklists 9cd82a.yaml index 90db38d76..384cd0842 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Starter Decklists 9cd82a.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF Starter Decklists 9cd82a.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,11 +35,11 @@ Transform: posX: 22.95 posY: 2.46 posZ: -30.34 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 2.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF The Scarlet Keys - Investigator Expansion e331fc.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF The Scarlet Keys - Investigator Expansion e331fc.yaml index acc34eb03..f8c615d9a 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF The Scarlet Keys - Investigator Expansion e331fc.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Custom_PDF The Scarlet Keys - Investigator Expansion e331fc.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 @@ -35,11 +35,11 @@ Transform: posX: -33.92 posY: 3.42 posZ: 11.83 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 3.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 3.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet In-depth Arkham Horror TTS tutorial 51cb8d.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet In-depth Arkham Horror TTS tutorial 51cb8d.yaml index 48de107b7..f8533f384 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet In-depth Arkham Horror TTS tutorial 51cb8d.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet In-depth Arkham Horror TTS tutorial 51cb8d.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: YouTube DragSelectable: true GMNotes: '' @@ -32,11 +32,11 @@ Transform: posX: 25.5 posY: 2.74 posZ: -31.09 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Mysterious Chanting - Custom Content Blog 18bd3a.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Mysterious Chanting - Custom Content Blog 18bd3a.yaml index 4d83bbc4a..183a1a27d 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Mysterious Chanting - Custom Content Blog 18bd3a.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Mysterious Chanting - Custom Content Blog 18bd3a.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' @@ -32,11 +32,11 @@ Transform: posX: 20.75 posY: 2.74 posZ: -32.56 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Official Learn to Play Video 39ec3d.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Official Learn to Play Video 39ec3d.yaml index 844ccdf1b..9cb4d688a 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Official Learn to Play Video 39ec3d.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Official Learn to Play Video 39ec3d.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: YouTube DragSelectable: true GMNotes: '' @@ -32,11 +32,11 @@ Transform: posX: 21.92 posY: 2.74 posZ: -31.13 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Rulepop - Quick Rules Reference Site b78dae.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Rulepop - Quick Rules Reference Site b78dae.yaml index b4fc7bbf1..da4c24901 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Rulepop - Quick Rules Reference Site b78dae.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Rulepop - Quick Rules Reference Site b78dae.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' @@ -32,11 +32,11 @@ Transform: posX: 20.67 posY: 2.74 posZ: -30.87 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Suggested Ambient Tracks 5b268d.yaml b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Suggested Ambient Tracks 5b268d.yaml index 5a31f92f2..eb9a1a2e7 100644 --- a/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Suggested Ambient Tracks 5b268d.yaml +++ b/unpacked/Custom_Model_Bag Rulebooks, Guides and Tablets fcfa7f/Tablet Suggested Ambient Tracks 5b268d.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' @@ -32,11 +32,11 @@ Transform: posX: 19.78 posY: 2.75 posZ: -32.86 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Trash 147e80.ttslua b/unpacked/Custom_Model_Bag Trash 147e80.ttslua index 3a4a5ed8c..de7afd1c2 100644 --- a/unpacked/Custom_Model_Bag Trash 147e80.ttslua +++ b/unpacked/Custom_Model_Bag Trash 147e80.ttslua @@ -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("util/Trashcan") -end) __bundle_register("util/Trashcan", function(require, _LOADED, __bundle_register, __bundle_modules) -- adds a context menu entry to trigger the emptying function onLoad() @@ -57,4 +54,7 @@ function emptyTrash() end end end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("util/Trashcan") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Trash 147e80.yaml b/unpacked/Custom_Model_Bag Trash 147e80.yaml index 3adf655fb..035bc9d4b 100644 --- a/unpacked/Custom_Model_Bag Trash 147e80.yaml +++ b/unpacked/Custom_Model_Bag Trash 147e80.yaml @@ -1,21 +1,21 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.9979599 - g: 0.996229947 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true - DiffuseURL: '' + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064421/956617F74D651E2B2CD1F7E7EC6B34C3A30617B2/ MaterialIndex: 0 - MeshURL: http://cloud-3.steamusercontent.com/ugc/1293045649230453355/2F68BC7FA71E051E2BBA46C0D1B06A5972D52E7C/ + MeshURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064278/BFF258FC90A0E56581C5C302752CF67C4947A540/ NormalURL: '' TypeIndex: 6 Description: '' @@ -42,13 +42,13 @@ Sticky: true Tooltip: true Transform: posX: -47.73 - posY: 1.62 - posZ: 4.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 0.3 - scaleY: 0.3 - scaleZ: 0.3 + posY: 1.55 + posZ: 4 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.75 + scaleY: 1 + scaleZ: 0.75 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Trash 4b8594.yaml b/unpacked/Custom_Model_Bag Trash 4b8594.yaml index 6102d2b38..638ee0095 100644 --- a/unpacked/Custom_Model_Bag Trash 4b8594.yaml +++ b/unpacked/Custom_Model_Bag Trash 4b8594.yaml @@ -1,21 +1,21 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.9979599 - g: 0.996229947 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true - DiffuseURL: '' + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064421/956617F74D651E2B2CD1F7E7EC6B34C3A30617B2/ MaterialIndex: 0 - MeshURL: http://cloud-3.steamusercontent.com/ugc/1293045649230453355/2F68BC7FA71E051E2BBA46C0D1B06A5972D52E7C/ + MeshURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064278/BFF258FC90A0E56581C5C302752CF67C4947A540/ NormalURL: '' TypeIndex: 6 Description: '' @@ -44,11 +44,11 @@ Transform: posX: -19.09 posY: 1.65 posZ: -20.4 - rotX: 0.0 - rotY: 15.17 - rotZ: 0.0 - scaleX: 0.3 - scaleY: 0.3 - scaleZ: 0.3 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.75 + scaleY: 1 + scaleZ: 0.75 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Trash 5f896a.yaml b/unpacked/Custom_Model_Bag Trash 5f896a.yaml index 20968c5ee..497ebfec0 100644 --- a/unpacked/Custom_Model_Bag Trash 5f896a.yaml +++ b/unpacked/Custom_Model_Bag Trash 5f896a.yaml @@ -1,21 +1,21 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.9979599 - g: 0.996229947 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true - DiffuseURL: '' + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064421/956617F74D651E2B2CD1F7E7EC6B34C3A30617B2/ MaterialIndex: 0 - MeshURL: http://cloud-3.steamusercontent.com/ugc/1293045649230453355/2F68BC7FA71E051E2BBA46C0D1B06A5972D52E7C/ + MeshURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064278/BFF258FC90A0E56581C5C302752CF67C4947A540/ NormalURL: '' TypeIndex: 6 Description: '' @@ -44,11 +44,11 @@ Transform: posX: -19.37 posY: 1.66 posZ: 20.39 - rotX: 0.0 - rotY: 195.0 - rotZ: 0.0 - scaleX: 0.3 - scaleY: 0.3 - scaleZ: 0.3 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.75 + scaleY: 1 + scaleZ: 0.75 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Trash 70b9f6.ttslua b/unpacked/Custom_Model_Bag Trash 70b9f6.ttslua index 3a4a5ed8c..de7afd1c2 100644 --- a/unpacked/Custom_Model_Bag Trash 70b9f6.ttslua +++ b/unpacked/Custom_Model_Bag Trash 70b9f6.ttslua @@ -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("util/Trashcan") -end) __bundle_register("util/Trashcan", function(require, _LOADED, __bundle_register, __bundle_modules) -- adds a context menu entry to trigger the emptying function onLoad() @@ -57,4 +54,7 @@ function emptyTrash() end end end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("util/Trashcan") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Model_Bag Trash 70b9f6.yaml b/unpacked/Custom_Model_Bag Trash 70b9f6.yaml index a486c893c..44d59c9eb 100644 --- a/unpacked/Custom_Model_Bag Trash 70b9f6.yaml +++ b/unpacked/Custom_Model_Bag Trash 70b9f6.yaml @@ -1,21 +1,21 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.9979599 - g: 0.996229947 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true - DiffuseURL: '' + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064421/956617F74D651E2B2CD1F7E7EC6B34C3A30617B2/ MaterialIndex: 0 - MeshURL: http://cloud-3.steamusercontent.com/ugc/1293045649230453355/2F68BC7FA71E051E2BBA46C0D1B06A5972D52E7C/ + MeshURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064278/BFF258FC90A0E56581C5C302752CF67C4947A540/ NormalURL: '' TypeIndex: 6 Description: '' @@ -42,13 +42,13 @@ Sticky: true Tooltip: true Transform: posX: 0.49 - posY: 1.66 - posZ: 0.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 0.4 - scaleY: 0.3 - scaleZ: 0.4 + posY: 1.55 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.75 + scaleY: 1 + scaleZ: 0.75 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Trash f7b6c8.yaml b/unpacked/Custom_Model_Bag Trash f7b6c8.yaml index abde2ef70..a00fe6928 100644 --- a/unpacked/Custom_Model_Bag Trash f7b6c8.yaml +++ b/unpacked/Custom_Model_Bag Trash f7b6c8.yaml @@ -1,21 +1,21 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true Bag: Order: 0 ColorDiffuse: - b: 0.9979599 - g: 0.996229947 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' Convex: true - DiffuseURL: '' + DiffuseURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064421/956617F74D651E2B2CD1F7E7EC6B34C3A30617B2/ MaterialIndex: 0 - MeshURL: http://cloud-3.steamusercontent.com/ugc/1293045649230453355/2F68BC7FA71E051E2BBA46C0D1B06A5972D52E7C/ + MeshURL: http://cloud-3.steamusercontent.com/ugc/2172484009093064278/BFF258FC90A0E56581C5C302752CF67C4947A540/ NormalURL: '' TypeIndex: 6 Description: '' @@ -42,13 +42,13 @@ Sticky: true Tooltip: true Transform: posX: -47.73 - posY: 1.62 - posZ: -4.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 0.3 - scaleY: 0.3 - scaleZ: 0.3 + posY: 1.55 + posZ: -4 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.75 + scaleY: 1 + scaleZ: 0.75 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Clue tokens 11e0cf.yaml b/unpacked/Custom_Model_Infinite_Bag Clue tokens 11e0cf.yaml index 0a9a90027..84c141d10 100644 --- a/unpacked/Custom_Model_Infinite_Bag Clue tokens 11e0cf.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Clue tokens 11e0cf.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: 2.595 posY: 1.779 posZ: -8.511 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -88,16 +88,18 @@ Name: Custom_Model_Infinite_Bag Nickname: Clue tokens Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: posX: 2.86 posY: 1.68 posZ: -8.86 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Clue tokens 31fa39.yaml b/unpacked/Custom_Model_Infinite_Bag Clue tokens 31fa39.yaml index c5c9e681c..b044149fe 100644 --- a/unpacked/Custom_Model_Infinite_Bag Clue tokens 31fa39.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Clue tokens 31fa39.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: -55.495 posY: 1.722 posZ: -1.639 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -93,9 +93,9 @@ Transform: posX: -57.92 posY: 1.64 posZ: -1.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 scaleY: 0.8 scaleZ: 0.8 diff --git a/unpacked/Custom_Model_Infinite_Bag Clue tokens 3b2550.yaml b/unpacked/Custom_Model_Infinite_Bag Clue tokens 3b2550.yaml index e70f2a5f9..95b143b23 100644 --- a/unpacked/Custom_Model_Infinite_Bag Clue tokens 3b2550.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Clue tokens 3b2550.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: -41.932 posY: 1.695 posZ: -31.367 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Clue tokens fae2f6.yaml b/unpacked/Custom_Model_Infinite_Bag Clue tokens fae2f6.yaml index e388ca721..78873ad5b 100644 --- a/unpacked/Custom_Model_Infinite_Bag Clue tokens fae2f6.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Clue tokens fae2f6.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: -44.326 posY: 1.716 posZ: 31.203 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Connection markers 170f10.yaml b/unpacked/Custom_Model_Infinite_Bag Connection markers 170f10.yaml index 31b7dcc27..ed67d1ab9 100644 --- a/unpacked/Custom_Model_Infinite_Bag Connection markers 170f10.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Connection markers 170f10.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.60453 @@ -23,10 +23,10 @@ ContainedObjects: Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/vppt2my.png ImageURL: https://i.imgur.com/vppt2my.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,9 +48,9 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.6045295 @@ -62,10 +62,10 @@ ContainedObjects: Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/HyfE8m8.png ImageURL: https://i.imgur.com/HyfE8m8.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: path @@ -94,16 +94,16 @@ ContainedObjects: rotX: 359.9201 rotY: 269.9961 rotZ: 0.0168742146 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.6045295 @@ -115,10 +115,10 @@ ContainedObjects: Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/HyfE8m8.png ImageURL: https://i.imgur.com/dHKBLoD.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: path @@ -148,7 +148,7 @@ ContainedObjects: rotY: 272.9828 rotZ: 0.01687373 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' @@ -160,12 +160,12 @@ ContainedObjects: posX: -50.369 posY: 1.746 posZ: -0.17 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' CustomMesh: @@ -197,6 +197,8 @@ Name: Custom_Model_Infinite_Bag Nickname: Connection markers Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: posX: -53.46 @@ -206,7 +208,7 @@ Transform: rotY: 270.01 rotZ: 0.02 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Damage Tokens 480bda.yaml b/unpacked/Custom_Model_Infinite_Bag Damage Tokens 480bda.yaml index 006ab96d0..3cfc15c11 100644 --- a/unpacked/Custom_Model_Infinite_Bag Damage Tokens 480bda.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Damage Tokens 480bda.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.00426 r: 0.69512 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974350/E16168497E847B690A16F1C0914E4F5C872555B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975474/DFCA4DBDEDCC936D2A2888A98C9B2FEBCD30C22B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -91,33 +91,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -2.114869e-06 - rotY: 180.0 + rotY: 180 rotZ: -3.44551631e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975559/D34362DF759435E36BF4109C8EE397D96EDE6B56/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -143,33 +143,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -6.37244239e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.0489314e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975658/F7CBB1000A579C9642A259174E611C0118190022/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -195,33 +195,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -6.856813e-06 - rotY: 180.0 + rotY: 180 rotZ: 6.24681149e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975808/E0965014A9756E7CB50A144006363535D43BA6F5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -247,33 +247,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.10479651e-06 - rotY: 180.0 + rotY: 180 rotZ: 4.15571648e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975959/B5BB691A4BF8E83DD2B514C81EC38E8E082ED787/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -299,33 +299,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 5.15672855e-06 - rotY: 180.0 + rotY: 180 rotZ: -9.08177e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976119/2EFDA564FE2E9F58EB47F21B4CB69117876DCC7A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -351,33 +351,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 7.670889e-06 - rotY: 180.0 + rotY: 180 rotZ: 2.730384e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976252/7FE12F57BD8ED418097467B0472B2B510C5B3D05/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -403,33 +403,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 9.659233e-06 - rotY: 180.0 + rotY: 180 rotZ: 3.145974e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976402/BFC6C6655B0EB1C3DFD3819AFEA599F8D42CEB64/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -455,33 +455,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: 9.30901138e-07 - rotY: 180.0 + rotY: 180 rotZ: 1.40537149e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976543/32E963CDBABCDEBEF3FB499670577A19689E1D8B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -507,33 +507,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.49763832e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.1208811e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976679/9CFECB352760F82A558905BC6874DD47F807F785/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -562,30 +562,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.83701524e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974497/B53160AEF67C32741FB7393B887A745C5A0403A6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -611,33 +611,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -1.12864509e-05 - rotY: 180.0 + rotY: 180 rotZ: 9.893568e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976805/C81E859758C7B35531566E99CFFDC10626F184D2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -666,30 +666,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -1.25628785e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '21': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976909/640634C5EC652071E14B8EDDEB8800ED4CFECBE3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -715,33 +715,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.09130187e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.615263e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '22': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977001/6854680D0F7FE536050A1FDDC5A31B642BAA82FB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -770,30 +770,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -3.36548e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '23': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977114/58B8C6AFC58BEC7F5CDA992B399235E1D1CE216A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -822,30 +822,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.26669079e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '24': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977249/7D1F115182E691E90A505760A3349D237C0F16E1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -874,30 +874,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.73802164e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '25': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977373/3EB829A410A896DFBA803FB029394976F6AE0CCB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -926,30 +926,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 5.3036315e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '26': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977465/9CA5019A545C6BF2AA1BBB3112267EACAF52C01E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -978,30 +978,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -1.37765155e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '27': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977563/7037BEF939CFBDC031481366476C44C7C3EF322D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1030,30 +1030,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.49157665e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '28': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977715/F7661D4ADB8F7071FB4E836B2BAF43C3820848E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1082,30 +1082,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.53182373e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '29': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977844/58C1F8974EEF4961249B44B8517B350F18753379/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1134,30 +1134,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -4.327291e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974625/F8D98C87DCB93C8CDF106FFAB3DA836B22DA8BEB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1183,33 +1183,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -9.526744e-08 - rotY: 180.0 + rotY: 180 rotZ: -7.436876e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '30': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977960/7AC1D20BCD93FD3D035EC26A4C108A82E72EBA86/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1238,30 +1238,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.19717617e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '31': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978096/D6F6F7EDF5E14EE6B9EE21F807E7CF4F9F9EC028/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1290,30 +1290,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.574338e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '32': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978200/E6CDADB9AAB0A79E8526D7A4A1F49471893F7947/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1339,33 +1339,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.1233e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.67793787e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '33': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978337/818E96F0D2BCB45CC90CEE863677312245594B4C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1391,33 +1391,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.90952255e-06 - rotY: 180.0 + rotY: 180 rotZ: 6.814834e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '34': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978437/B98FDAB4D1EBC1D40E969DEF9CA7143C8D251BB4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1443,33 +1443,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.08585373e-05 - rotY: 180.0 + rotY: 180 rotZ: 5.40023439e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '35': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978553/9A27448271331CDD6292E14F2CB49D71C50CEBF3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1495,33 +1495,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -7.21516062e-06 - rotY: 180.0 + rotY: 180 rotZ: -2.222035e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '36': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978668/D56BF0309ECBDDC4DC4C8FFB71C8B80B320A5E11/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1547,33 +1547,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -6.55812164e-06 - rotY: 180.0 + rotY: 180 rotZ: -4.21542978e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '37': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978779/A532740121C41FEF6E30A9E98F933AE1D15907CB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1599,33 +1599,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.363716e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.25134511e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '38': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978910/695348D90CBB1D5EF857964662D3D29478FAECC2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1651,33 +1651,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.65363917e-06 - rotY: 180.0 + rotY: 180 rotZ: 7.55110068e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '39': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979053/575819DDF05E4E6FBFA296DD68E7AF6A764CE2B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1703,33 +1703,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -4.33588548e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.34007632e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974789/EC9F446EA2DF1E2AE8369138E6873B28852469F1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1755,33 +1755,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 3.948265e-06 - rotY: 180.0 + rotY: 180 rotZ: -2.10753624e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '40': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979152/FFC073DECEC5837E340C37F6CE4F40938E40C514/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1807,33 +1807,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 3.05671983e-06 - rotY: 180.0 + rotY: 180 rotZ: -4.596211e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '41': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979285/C69BFF8D1ECC77BF0F5DAD355DD6E84A6A268731/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1859,33 +1859,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 6.80305163e-07 - rotY: 180.0 + rotY: 180 rotZ: -4.47995035e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '42': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979439/375AE4A39169F62B3447BDC1AA4A26A6690A66D7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1911,33 +1911,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.68703422e-06 - rotY: 180.0 + rotY: 180 rotZ: 2.98529955e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '43': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979609/C5BFCF1A87F14282C61EC920FD21D9B25E883693/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1963,33 +1963,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.27916132e-06 - rotY: 180.0 + rotY: 180 rotZ: 8.00865e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '44': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979713/BEB28A94C343F57F6DC3A81F32DDB657CD896EBC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2015,33 +2015,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.32305695e-05 - rotY: 180.0 + rotY: 180 rotZ: -8.536388e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '45': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979797/B27B29B4FF6D550F532D46CD0F7A3EDF984FD39A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2067,33 +2067,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: 8.879468e-06 - rotY: 180.0 + rotY: 180 rotZ: -3.5132357e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '46': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979901/BA1482E12F3DB002FADB2F5C74FA48EA8DE1E31F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2119,33 +2119,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -5.77568835e-06 - rotY: 180.0 + rotY: 180 rotZ: 7.164294e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '47': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980020/3756AD3A8C521914A763443EC79407CB6F38B8E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2171,33 +2171,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.50068281e-05 - rotY: 180.0 + rotY: 180 rotZ: 3.70904536e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '48': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980124/599CAF38B47AD4B29319213CD65C40946DF84777/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2223,33 +2223,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -4.77549e-06 - rotY: 180.0 + rotY: 180 rotZ: -8.039457e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '49': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980220/D3682CD04922D7709D49C1066AD921221AD92F74/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2275,33 +2275,33 @@ ContainedObjects: posY: 1.01000011 posZ: 9.519388 rotX: -1.32930072e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.75149926e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974892/4AFA955A876D8E5BD28DA6164F38EDFBC9988E0F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2327,33 +2327,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -2.51728725e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.07583146e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '50': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980328/86FB8E62D4EAD71432622244C92A7B261D1D2F6A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2379,33 +2379,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.07346423e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.03672137e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975047/33060EB9820DE72C983844818A81444377736BB1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2431,33 +2431,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.53614124e-07 - rotY: 180.0 + rotY: 180 rotZ: -9.400431e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975160/6B9DD5F5EBFF943633F1A97D4F2D5EAA15D2E3CA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2483,33 +2483,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.06476e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.94595268e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975274/4E93F71661D310DB5FB0472E49E935F16AD0B16E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2535,33 +2535,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.66816653e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.42901517e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975360/E524936A793CC5871EE74EBE75388A61ABDD44D0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2587,10 +2587,10 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.92622952e-06 - rotY: 180.0 + rotY: 180 rotZ: 4.37234166e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' @@ -2600,11 +2600,11 @@ ContainedObjects: posX: -53.473 posY: 1.821 posZ: 1.095 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.24 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.24 Value: 0 XmlUI: '' @@ -2650,11 +2650,11 @@ Transform: posX: -55.7 posY: 1.66 posZ: 1.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Damage Tokens b0ef6c.yaml b/unpacked/Custom_Model_Infinite_Bag Damage Tokens b0ef6c.yaml index f515649e2..a92e7cc7e 100644 --- a/unpacked/Custom_Model_Infinite_Bag Damage Tokens b0ef6c.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Damage Tokens b0ef6c.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.00426 r: 0.69512 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974350/E16168497E847B690A16F1C0914E4F5C872555B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975474/DFCA4DBDEDCC936D2A2888A98C9B2FEBCD30C22B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -91,33 +91,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -2.114869e-06 - rotY: 180.0 + rotY: 180 rotZ: -3.44551631e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975559/D34362DF759435E36BF4109C8EE397D96EDE6B56/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -143,33 +143,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -6.37244239e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.0489314e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975658/F7CBB1000A579C9642A259174E611C0118190022/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -195,33 +195,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -6.856813e-06 - rotY: 180.0 + rotY: 180 rotZ: 6.24681149e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975808/E0965014A9756E7CB50A144006363535D43BA6F5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -247,33 +247,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.10479651e-06 - rotY: 180.0 + rotY: 180 rotZ: 4.15571648e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975959/B5BB691A4BF8E83DD2B514C81EC38E8E082ED787/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -299,33 +299,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 5.15672855e-06 - rotY: 180.0 + rotY: 180 rotZ: -9.08177e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976119/2EFDA564FE2E9F58EB47F21B4CB69117876DCC7A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -351,33 +351,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 7.670889e-06 - rotY: 180.0 + rotY: 180 rotZ: 2.730384e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976252/7FE12F57BD8ED418097467B0472B2B510C5B3D05/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -403,33 +403,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 9.659233e-06 - rotY: 180.0 + rotY: 180 rotZ: 3.145974e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976402/BFC6C6655B0EB1C3DFD3819AFEA599F8D42CEB64/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -455,33 +455,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: 9.30901138e-07 - rotY: 180.0 + rotY: 180 rotZ: 1.40537149e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976543/32E963CDBABCDEBEF3FB499670577A19689E1D8B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -507,33 +507,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.49763832e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.1208811e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976679/9CFECB352760F82A558905BC6874DD47F807F785/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -562,30 +562,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.83701524e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974497/B53160AEF67C32741FB7393B887A745C5A0403A6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -611,33 +611,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -1.12864509e-05 - rotY: 180.0 + rotY: 180 rotZ: 9.893568e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976805/C81E859758C7B35531566E99CFFDC10626F184D2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -666,30 +666,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -1.25628785e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '21': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976909/640634C5EC652071E14B8EDDEB8800ED4CFECBE3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -715,33 +715,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.09130187e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.615263e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '22': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977001/6854680D0F7FE536050A1FDDC5A31B642BAA82FB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -770,30 +770,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -3.36548e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '23': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977114/58B8C6AFC58BEC7F5CDA992B399235E1D1CE216A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -822,30 +822,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.26669079e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '24': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977249/7D1F115182E691E90A505760A3349D237C0F16E1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -874,30 +874,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.73802164e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '25': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977373/3EB829A410A896DFBA803FB029394976F6AE0CCB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -926,30 +926,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 5.3036315e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '26': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977465/9CA5019A545C6BF2AA1BBB3112267EACAF52C01E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -978,30 +978,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -1.37765155e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '27': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977563/7037BEF939CFBDC031481366476C44C7C3EF322D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1030,30 +1030,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.49157665e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '28': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977715/F7661D4ADB8F7071FB4E836B2BAF43C3820848E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1082,30 +1082,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.53182373e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '29': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977844/58C1F8974EEF4961249B44B8517B350F18753379/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1134,30 +1134,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -4.327291e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974625/F8D98C87DCB93C8CDF106FFAB3DA836B22DA8BEB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1183,33 +1183,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -9.526744e-08 - rotY: 180.0 + rotY: 180 rotZ: -7.436876e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '30': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977960/7AC1D20BCD93FD3D035EC26A4C108A82E72EBA86/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1238,30 +1238,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.19717617e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '31': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978096/D6F6F7EDF5E14EE6B9EE21F807E7CF4F9F9EC028/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1290,30 +1290,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.574338e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '32': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978200/E6CDADB9AAB0A79E8526D7A4A1F49471893F7947/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1339,33 +1339,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.1233e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.67793787e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '33': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978337/818E96F0D2BCB45CC90CEE863677312245594B4C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1391,33 +1391,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.90952255e-06 - rotY: 180.0 + rotY: 180 rotZ: 6.814834e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '34': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978437/B98FDAB4D1EBC1D40E969DEF9CA7143C8D251BB4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1443,33 +1443,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.08585373e-05 - rotY: 180.0 + rotY: 180 rotZ: 5.40023439e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '35': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978553/9A27448271331CDD6292E14F2CB49D71C50CEBF3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1495,33 +1495,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -7.21516062e-06 - rotY: 180.0 + rotY: 180 rotZ: -2.222035e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '36': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978668/D56BF0309ECBDDC4DC4C8FFB71C8B80B320A5E11/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1547,33 +1547,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -6.55812164e-06 - rotY: 180.0 + rotY: 180 rotZ: -4.21542978e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '37': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978779/A532740121C41FEF6E30A9E98F933AE1D15907CB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1599,33 +1599,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.363716e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.25134511e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '38': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978910/695348D90CBB1D5EF857964662D3D29478FAECC2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1651,33 +1651,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.65363917e-06 - rotY: 180.0 + rotY: 180 rotZ: 7.55110068e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '39': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979053/575819DDF05E4E6FBFA296DD68E7AF6A764CE2B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1703,33 +1703,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -4.33588548e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.34007632e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974789/EC9F446EA2DF1E2AE8369138E6873B28852469F1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1755,33 +1755,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 3.948265e-06 - rotY: 180.0 + rotY: 180 rotZ: -2.10753624e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '40': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979152/FFC073DECEC5837E340C37F6CE4F40938E40C514/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1807,33 +1807,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 3.05671983e-06 - rotY: 180.0 + rotY: 180 rotZ: -4.596211e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '41': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979285/C69BFF8D1ECC77BF0F5DAD355DD6E84A6A268731/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1859,33 +1859,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 6.80305163e-07 - rotY: 180.0 + rotY: 180 rotZ: -4.47995035e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '42': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979439/375AE4A39169F62B3447BDC1AA4A26A6690A66D7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1911,33 +1911,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.68703422e-06 - rotY: 180.0 + rotY: 180 rotZ: 2.98529955e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '43': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979609/C5BFCF1A87F14282C61EC920FD21D9B25E883693/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1963,33 +1963,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.27916132e-06 - rotY: 180.0 + rotY: 180 rotZ: 8.00865e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '44': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979713/BEB28A94C343F57F6DC3A81F32DDB657CD896EBC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2015,33 +2015,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.32305695e-05 - rotY: 180.0 + rotY: 180 rotZ: -8.536388e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '45': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979797/B27B29B4FF6D550F532D46CD0F7A3EDF984FD39A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2067,33 +2067,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: 8.879468e-06 - rotY: 180.0 + rotY: 180 rotZ: -3.5132357e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '46': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979901/BA1482E12F3DB002FADB2F5C74FA48EA8DE1E31F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2119,33 +2119,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -5.77568835e-06 - rotY: 180.0 + rotY: 180 rotZ: 7.164294e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '47': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980020/3756AD3A8C521914A763443EC79407CB6F38B8E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2171,33 +2171,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.50068281e-05 - rotY: 180.0 + rotY: 180 rotZ: 3.70904536e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '48': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980124/599CAF38B47AD4B29319213CD65C40946DF84777/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2223,33 +2223,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -4.77549e-06 - rotY: 180.0 + rotY: 180 rotZ: -8.039457e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '49': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980220/D3682CD04922D7709D49C1066AD921221AD92F74/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2275,33 +2275,33 @@ ContainedObjects: posY: 1.01000011 posZ: 9.519388 rotX: -1.32930072e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.75149926e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974892/4AFA955A876D8E5BD28DA6164F38EDFBC9988E0F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2327,33 +2327,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -2.51728725e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.07583146e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '50': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980328/86FB8E62D4EAD71432622244C92A7B261D1D2F6A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2379,33 +2379,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.07346423e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.03672137e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975047/33060EB9820DE72C983844818A81444377736BB1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2431,33 +2431,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.53614124e-07 - rotY: 180.0 + rotY: 180 rotZ: -9.400431e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975160/6B9DD5F5EBFF943633F1A97D4F2D5EAA15D2E3CA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2483,33 +2483,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.06476e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.94595268e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975274/4E93F71661D310DB5FB0472E49E935F16AD0B16E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2535,33 +2535,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.66816653e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.42901517e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975360/E524936A793CC5871EE74EBE75388A61ABDD44D0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2587,10 +2587,10 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.92622952e-06 - rotY: 180.0 + rotY: 180 rotZ: 4.37234166e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' @@ -2600,11 +2600,11 @@ ContainedObjects: posX: -41.626 posY: 1.813 posZ: 28.781 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.24 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.24 Value: 0 XmlUI: '' @@ -2654,7 +2654,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Damage tokens 93f4a0.yaml b/unpacked/Custom_Model_Infinite_Bag Damage tokens 93f4a0.yaml index ddd4cfc70..8bc3024dd 100644 --- a/unpacked/Custom_Model_Infinite_Bag Damage tokens 93f4a0.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Damage tokens 93f4a0.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.00426 r: 0.69512 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974350/E16168497E847B690A16F1C0914E4F5C872555B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975474/DFCA4DBDEDCC936D2A2888A98C9B2FEBCD30C22B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -91,33 +91,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -2.114869e-06 - rotY: 180.0 + rotY: 180 rotZ: -3.44551631e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975559/D34362DF759435E36BF4109C8EE397D96EDE6B56/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -143,33 +143,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -6.37244239e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.0489314e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975658/F7CBB1000A579C9642A259174E611C0118190022/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -195,33 +195,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -6.856813e-06 - rotY: 180.0 + rotY: 180 rotZ: 6.24681149e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975808/E0965014A9756E7CB50A144006363535D43BA6F5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -247,33 +247,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.10479651e-06 - rotY: 180.0 + rotY: 180 rotZ: 4.15571648e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975959/B5BB691A4BF8E83DD2B514C81EC38E8E082ED787/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -299,33 +299,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 5.15672855e-06 - rotY: 180.0 + rotY: 180 rotZ: -9.08177e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976119/2EFDA564FE2E9F58EB47F21B4CB69117876DCC7A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -351,33 +351,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 7.670889e-06 - rotY: 180.0 + rotY: 180 rotZ: 2.730384e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976252/7FE12F57BD8ED418097467B0472B2B510C5B3D05/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -403,33 +403,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 9.659233e-06 - rotY: 180.0 + rotY: 180 rotZ: 3.145974e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976402/BFC6C6655B0EB1C3DFD3819AFEA599F8D42CEB64/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -455,33 +455,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: 9.30901138e-07 - rotY: 180.0 + rotY: 180 rotZ: 1.40537149e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976543/32E963CDBABCDEBEF3FB499670577A19689E1D8B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -507,33 +507,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.49763832e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.1208811e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976679/9CFECB352760F82A558905BC6874DD47F807F785/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -562,30 +562,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.83701524e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974497/B53160AEF67C32741FB7393B887A745C5A0403A6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -611,33 +611,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -1.12864509e-05 - rotY: 180.0 + rotY: 180 rotZ: 9.893568e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976805/C81E859758C7B35531566E99CFFDC10626F184D2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -666,30 +666,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -1.25628785e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '21': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857976909/640634C5EC652071E14B8EDDEB8800ED4CFECBE3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -715,33 +715,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.09130187e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.615263e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '22': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977001/6854680D0F7FE536050A1FDDC5A31B642BAA82FB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -770,30 +770,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -3.36548e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '23': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977114/58B8C6AFC58BEC7F5CDA992B399235E1D1CE216A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -822,30 +822,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.26669079e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '24': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977249/7D1F115182E691E90A505760A3349D237C0F16E1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -874,30 +874,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.73802164e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '25': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977373/3EB829A410A896DFBA803FB029394976F6AE0CCB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -926,30 +926,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 5.3036315e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '26': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977465/9CA5019A545C6BF2AA1BBB3112267EACAF52C01E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -978,30 +978,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -1.37765155e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '27': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977563/7037BEF939CFBDC031481366476C44C7C3EF322D/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1030,30 +1030,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.49157665e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '28': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977715/F7661D4ADB8F7071FB4E836B2BAF43C3820848E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1082,30 +1082,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 1.53182373e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '29': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977844/58C1F8974EEF4961249B44B8517B350F18753379/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1134,30 +1134,30 @@ ContainedObjects: rotY: 180.000015 rotZ: -4.327291e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974625/F8D98C87DCB93C8CDF106FFAB3DA836B22DA8BEB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1183,33 +1183,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -9.526744e-08 - rotY: 180.0 + rotY: 180 rotZ: -7.436876e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '30': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857977960/7AC1D20BCD93FD3D035EC26A4C108A82E72EBA86/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1238,30 +1238,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.19717617e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '31': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978096/D6F6F7EDF5E14EE6B9EE21F807E7CF4F9F9EC028/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1290,30 +1290,30 @@ ContainedObjects: rotY: 180.000015 rotZ: 2.574338e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '32': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978200/E6CDADB9AAB0A79E8526D7A4A1F49471893F7947/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1339,33 +1339,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.1233e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.67793787e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '33': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978337/818E96F0D2BCB45CC90CEE863677312245594B4C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1391,33 +1391,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.90952255e-06 - rotY: 180.0 + rotY: 180 rotZ: 6.814834e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '34': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978437/B98FDAB4D1EBC1D40E969DEF9CA7143C8D251BB4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1443,33 +1443,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.08585373e-05 - rotY: 180.0 + rotY: 180 rotZ: 5.40023439e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '35': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978553/9A27448271331CDD6292E14F2CB49D71C50CEBF3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1495,33 +1495,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -7.21516062e-06 - rotY: 180.0 + rotY: 180 rotZ: -2.222035e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '36': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978668/D56BF0309ECBDDC4DC4C8FFB71C8B80B320A5E11/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1547,33 +1547,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -6.55812164e-06 - rotY: 180.0 + rotY: 180 rotZ: -4.21542978e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '37': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978779/A532740121C41FEF6E30A9E98F933AE1D15907CB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1599,33 +1599,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.363716e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.25134511e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '38': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857978910/695348D90CBB1D5EF857964662D3D29478FAECC2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1651,33 +1651,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.65363917e-06 - rotY: 180.0 + rotY: 180 rotZ: 7.55110068e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '39': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979053/575819DDF05E4E6FBFA296DD68E7AF6A764CE2B6/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1703,33 +1703,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -4.33588548e-06 - rotY: 180.0 + rotY: 180 rotZ: 1.34007632e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974789/EC9F446EA2DF1E2AE8369138E6873B28852469F1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1755,33 +1755,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 3.948265e-06 - rotY: 180.0 + rotY: 180 rotZ: -2.10753624e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '40': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979152/FFC073DECEC5837E340C37F6CE4F40938E40C514/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1807,33 +1807,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 3.05671983e-06 - rotY: 180.0 + rotY: 180 rotZ: -4.596211e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '41': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979285/C69BFF8D1ECC77BF0F5DAD355DD6E84A6A268731/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1859,33 +1859,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 6.80305163e-07 - rotY: 180.0 + rotY: 180 rotZ: -4.47995035e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '42': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979439/375AE4A39169F62B3447BDC1AA4A26A6690A66D7/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1911,33 +1911,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.68703422e-06 - rotY: 180.0 + rotY: 180 rotZ: 2.98529955e-07 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '43': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979609/C5BFCF1A87F14282C61EC920FD21D9B25E883693/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -1963,33 +1963,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -3.27916132e-06 - rotY: 180.0 + rotY: 180 rotZ: 8.00865e-08 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '44': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979713/BEB28A94C343F57F6DC3A81F32DDB657CD896EBC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2015,33 +2015,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -1.32305695e-05 - rotY: 180.0 + rotY: 180 rotZ: -8.536388e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '45': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979797/B27B29B4FF6D550F532D46CD0F7A3EDF984FD39A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2067,33 +2067,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: 8.879468e-06 - rotY: 180.0 + rotY: 180 rotZ: -3.5132357e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '46': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857979901/BA1482E12F3DB002FADB2F5C74FA48EA8DE1E31F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2119,33 +2119,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -5.77568835e-06 - rotY: 180.0 + rotY: 180 rotZ: 7.164294e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '47': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980020/3756AD3A8C521914A763443EC79407CB6F38B8E4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2171,33 +2171,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.50068281e-05 - rotY: 180.0 + rotY: 180 rotZ: 3.70904536e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '48': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980124/599CAF38B47AD4B29319213CD65C40946DF84777/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2223,33 +2223,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -4.77549e-06 - rotY: 180.0 + rotY: 180 rotZ: -8.039457e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '49': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980220/D3682CD04922D7709D49C1066AD921221AD92F74/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2275,33 +2275,33 @@ ContainedObjects: posY: 1.01000011 posZ: 9.519388 rotX: -1.32930072e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.75149926e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857974892/4AFA955A876D8E5BD28DA6164F38EDFBC9988E0F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2327,33 +2327,33 @@ ContainedObjects: posY: 1.00999987 posZ: 9.519388 rotX: -2.51728725e-05 - rotY: 180.0 + rotY: 180 rotZ: -1.07583146e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '50': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857980328/86FB8E62D4EAD71432622244C92A7B261D1D2F6A/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2379,33 +2379,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.07346423e-05 - rotY: 180.0 + rotY: 180 rotZ: 1.03672137e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975047/33060EB9820DE72C983844818A81444377736BB1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2431,33 +2431,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.53614124e-07 - rotY: 180.0 + rotY: 180 rotZ: -9.400431e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975160/6B9DD5F5EBFF943633F1A97D4F2D5EAA15D2E3CA/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2483,33 +2483,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: -8.06476e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.94595268e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975274/4E93F71661D310DB5FB0472E49E935F16AD0B16E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2535,33 +2535,33 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.66816653e-06 - rotY: 180.0 + rotY: 180 rotZ: -1.42901517e-05 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1615094763857975360/E524936A793CC5871EE74EBE75388A61ABDD44D0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -2587,10 +2587,10 @@ ContainedObjects: posY: 1.01 posZ: 9.519388 rotX: 1.92622952e-06 - rotY: 180.0 + rotY: 180 rotZ: 4.37234166e-06 scaleX: 0.239203319 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.239203319 Value: 0 XmlUI: '' @@ -2600,11 +2600,11 @@ ContainedObjects: posX: -44.425 posY: 1.799 posZ: -29.129 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.24 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.24 Value: 0 XmlUI: '' @@ -2654,7 +2654,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Doom tokens 16724b.yaml b/unpacked/Custom_Model_Infinite_Bag Doom tokens 16724b.yaml index b24f3dccf..1bbba70e5 100644 --- a/unpacked/Custom_Model_Infinite_Bag Doom tokens 16724b.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Doom tokens 16724b.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: -41.815 posY: 1.853 posZ: 31.125 - rotX: 0.0 - rotY: 0.0 - rotZ: 180.0 + rotX: 0 + rotY: 0 + rotZ: 180 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -97,7 +97,7 @@ Transform: rotY: 270.0 rotZ: 180.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Doom tokens 16fcd6.yaml b/unpacked/Custom_Model_Infinite_Bag Doom tokens 16fcd6.yaml index 279c56056..6077b9925 100644 --- a/unpacked/Custom_Model_Infinite_Bag Doom tokens 16fcd6.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Doom tokens 16fcd6.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: -44.462 posY: 1.838 posZ: -31.294 - rotX: 0.0 - rotY: 0.0 - rotZ: 180.0 + rotX: 0 + rotY: 0 + rotZ: 180 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -97,7 +97,7 @@ Transform: rotY: 270.0 rotZ: 180.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Doom tokens 47ffc3.yaml b/unpacked/Custom_Model_Infinite_Bag Doom tokens 47ffc3.yaml index 182cb6dd8..db36874d6 100644 --- a/unpacked/Custom_Model_Infinite_Bag Doom tokens 47ffc3.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Doom tokens 47ffc3.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: -55.844 posY: 1.864 posZ: 1.057 - rotX: 0.0 - rotY: 180.0 - rotZ: 180.0 + rotX: 0 + rotY: 180 + rotZ: 180 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -88,16 +88,18 @@ Name: Custom_Model_Infinite_Bag Nickname: Doom tokens Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: posX: -57.92 posY: 1.66 posZ: 1.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Doom tokens b015d8.yaml b/unpacked/Custom_Model_Infinite_Bag Doom tokens b015d8.yaml index c1aaf8d02..e86042049 100644 --- a/unpacked/Custom_Model_Infinite_Bag Doom tokens b015d8.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Doom tokens b015d8.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: true Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: https://i.imgur.com/EoL7yaZ.png ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -51,11 +51,11 @@ ContainedObjects: posX: 2.972 posY: 1.884 posZ: 8.88 - rotX: 0.0 - rotY: 180.0 - rotZ: 180.0 + rotX: 0 + rotY: 180 + rotZ: 180 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -88,16 +88,18 @@ Name: Custom_Model_Infinite_Bag Nickname: Doom tokens Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: posX: 2.76 posY: 1.68 posZ: 8.82 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Horror tokens 7bd2a0.yaml b/unpacked/Custom_Model_Infinite_Bag Horror tokens 7bd2a0.yaml index e97c1d3c7..3665e62d6 100644 --- a/unpacked/Custom_Model_Infinite_Bag Horror tokens 7bd2a0.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Horror tokens 7bd2a0.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.451219976 - g: 0.248129934 - r: 0.192479938 + b: 0.45122 + g: 0.24813 + r: 0.19248 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163535/6D9E0756503664D65BDB384656AC6D4BD713F5FC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163230/ED46F8BBAEDB4D3C96C654D48C56110D35F3F54F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -94,30 +94,30 @@ ContainedObjects: rotY: 270.015259 rotZ: 2.20759175e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357162977/E5D453CC14394519E004B4F8703FC425A7AE3D6C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -146,30 +146,30 @@ ContainedObjects: rotY: 270.015137 rotZ: 1.02804506e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164483/5E22FEAE253AE65BDE3FA09E4EE7133569F7E194/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -198,30 +198,30 @@ ContainedObjects: rotY: 270.01532 rotZ: 1.59575811e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164251/34DC7172A2B433047DA853796DB52AECE019F99F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -250,30 +250,30 @@ ContainedObjects: rotY: 270.016 rotZ: -3.73151761e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164030/0A12FD352F28A560EA7E7952D8CA618A5245F1E0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -302,30 +302,30 @@ ContainedObjects: rotY: 270.0157 rotZ: 2.92043842e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357114485/8B2B8A9F61CC2D8C1F10977ABDB4BA2423AD143F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -354,30 +354,30 @@ ContainedObjects: rotY: 270.015656 rotZ: 2.18774017e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163806/F397C22A8DDB8F22E08E42E6449C3B5D8CFDB313/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -406,30 +406,30 @@ ContainedObjects: rotY: 270.016541 rotZ: -2.19759459e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357110165/AD791E6817304851C0ABD7AE97AA60326AC14538/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -458,7 +458,7 @@ ContainedObjects: rotY: 270.016724 rotZ: 4.970206e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -468,11 +468,11 @@ ContainedObjects: posX: -26.404 posY: 1.41 posZ: 15.728 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -514,7 +514,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Horror tokens ae1a4e.yaml b/unpacked/Custom_Model_Infinite_Bag Horror tokens ae1a4e.yaml index d485863bb..6d0803b53 100644 --- a/unpacked/Custom_Model_Infinite_Bag Horror tokens ae1a4e.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Horror tokens ae1a4e.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.451219976 - g: 0.248129934 - r: 0.192479938 + b: 0.45122 + g: 0.24813 + r: 0.19248 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163535/6D9E0756503664D65BDB384656AC6D4BD713F5FC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163230/ED46F8BBAEDB4D3C96C654D48C56110D35F3F54F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -94,30 +94,30 @@ ContainedObjects: rotY: 270.015259 rotZ: 2.20759175e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357162977/E5D453CC14394519E004B4F8703FC425A7AE3D6C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -146,30 +146,30 @@ ContainedObjects: rotY: 270.015137 rotZ: 1.02804506e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164483/5E22FEAE253AE65BDE3FA09E4EE7133569F7E194/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -198,30 +198,30 @@ ContainedObjects: rotY: 270.01532 rotZ: 1.59575811e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164251/34DC7172A2B433047DA853796DB52AECE019F99F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -250,30 +250,30 @@ ContainedObjects: rotY: 270.016 rotZ: -3.73151761e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164030/0A12FD352F28A560EA7E7952D8CA618A5245F1E0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -302,30 +302,30 @@ ContainedObjects: rotY: 270.0157 rotZ: 2.92043842e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357114485/8B2B8A9F61CC2D8C1F10977ABDB4BA2423AD143F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -354,30 +354,30 @@ ContainedObjects: rotY: 270.015656 rotZ: 2.18774017e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163806/F397C22A8DDB8F22E08E42E6449C3B5D8CFDB313/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -406,30 +406,30 @@ ContainedObjects: rotY: 270.016541 rotZ: -2.19759459e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357110165/AD791E6817304851C0ABD7AE97AA60326AC14538/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -458,7 +458,7 @@ ContainedObjects: rotY: 270.016724 rotZ: 4.970206e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -468,11 +468,11 @@ ContainedObjects: posX: -26.404 posY: 1.41 posZ: 15.728 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -514,7 +514,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Horror tokens c3ecf4.yaml b/unpacked/Custom_Model_Infinite_Bag Horror tokens c3ecf4.yaml index 67b95f2ce..58f40e0ee 100644 --- a/unpacked/Custom_Model_Infinite_Bag Horror tokens c3ecf4.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Horror tokens c3ecf4.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.451219976 - g: 0.248129934 - r: 0.192479938 + b: 0.45122 + g: 0.24813 + r: 0.19248 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163535/6D9E0756503664D65BDB384656AC6D4BD713F5FC/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163230/ED46F8BBAEDB4D3C96C654D48C56110D35F3F54F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -94,30 +94,30 @@ ContainedObjects: rotY: 270.015259 rotZ: 2.20759175e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357162977/E5D453CC14394519E004B4F8703FC425A7AE3D6C/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -146,30 +146,30 @@ ContainedObjects: rotY: 270.015137 rotZ: 1.02804506e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164483/5E22FEAE253AE65BDE3FA09E4EE7133569F7E194/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -198,30 +198,30 @@ ContainedObjects: rotY: 270.01532 rotZ: 1.59575811e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164251/34DC7172A2B433047DA853796DB52AECE019F99F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -250,30 +250,30 @@ ContainedObjects: rotY: 270.016 rotZ: -3.73151761e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164030/0A12FD352F28A560EA7E7952D8CA618A5245F1E0/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -302,30 +302,30 @@ ContainedObjects: rotY: 270.0157 rotZ: 2.92043842e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357114485/8B2B8A9F61CC2D8C1F10977ABDB4BA2423AD143F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -354,30 +354,30 @@ ContainedObjects: rotY: 270.015656 rotZ: 2.18774017e-06 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357163806/F397C22A8DDB8F22E08E42E6449C3B5D8CFDB313/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -406,30 +406,30 @@ ContainedObjects: rotY: 270.016541 rotZ: -2.19759459e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357110165/AD791E6817304851C0ABD7AE97AA60326AC14538/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -458,7 +458,7 @@ ContainedObjects: rotY: 270.016724 rotZ: 4.970206e-05 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -468,11 +468,11 @@ ContainedObjects: posX: -26.404 posY: 1.41 posZ: 15.728 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' @@ -510,11 +510,11 @@ Transform: posX: -55.7 posY: 1.66 posZ: -1.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Resource tokens 0168ae.yaml b/unpacked/Custom_Model_Infinite_Bag Resource tokens 0168ae.yaml index 34e21d939..27ddd905c 100644 --- a/unpacked/Custom_Model_Infinite_Bag Resource tokens 0168ae.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Resource tokens 0168ae.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0704999641 - g: 0.0704999641 - r: 0.282239944 + b: 0.0705 + g: 0.0705 + r: 0.28224 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230067/741BC33D398801C4BC8368C345EAEF3BE2522823/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -87,12 +87,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -100,24 +100,24 @@ ContainedObjects: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808233/22B6C4A9FEE0814E6A9BDB2C833C79D66F8100B8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -139,12 +139,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -152,24 +152,24 @@ ContainedObjects: XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230179/E3A30A2D661A12205D98D4D0E374591586C5C486/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -191,12 +191,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -204,24 +204,24 @@ ContainedObjects: XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808359/FA36A27E47F940D14B4C45809BF1A0CD7783C8EB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -243,12 +243,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -256,24 +256,24 @@ ContainedObjects: XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230311/11AD08ED0D8BF5B237444DAD0AF4F8144297A485/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -295,12 +295,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -308,24 +308,24 @@ ContainedObjects: XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230402/6486457CE96C04945473D4E079CBFFAF54C7EE1B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -347,12 +347,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -361,12 +361,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -410,7 +410,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Resource tokens 9fadf9.yaml b/unpacked/Custom_Model_Infinite_Bag Resource tokens 9fadf9.yaml index 3fc83d84d..0d7d8c340 100644 --- a/unpacked/Custom_Model_Infinite_Bag Resource tokens 9fadf9.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Resource tokens 9fadf9.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0704999641 - g: 0.0704999641 - r: 0.282239944 + b: 0.0705 + g: 0.0705 + r: 0.28224 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230067/741BC33D398801C4BC8368C345EAEF3BE2522823/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -87,12 +87,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -100,24 +100,24 @@ ContainedObjects: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808233/22B6C4A9FEE0814E6A9BDB2C833C79D66F8100B8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -139,12 +139,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -152,24 +152,24 @@ ContainedObjects: XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230179/E3A30A2D661A12205D98D4D0E374591586C5C486/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -191,12 +191,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -204,24 +204,24 @@ ContainedObjects: XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808359/FA36A27E47F940D14B4C45809BF1A0CD7783C8EB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -243,12 +243,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -256,24 +256,24 @@ ContainedObjects: XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230311/11AD08ED0D8BF5B237444DAD0AF4F8144297A485/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -295,12 +295,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -308,24 +308,24 @@ ContainedObjects: XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230402/6486457CE96C04945473D4E079CBFFAF54C7EE1B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -347,12 +347,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -361,12 +361,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -406,11 +406,11 @@ Transform: posX: -53.46 posY: 1.65 posZ: -1.12 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Model_Infinite_Bag Resource tokens fd617a.yaml b/unpacked/Custom_Model_Infinite_Bag Resource tokens fd617a.yaml index 270aa4f9a..69653a769 100644 --- a/unpacked/Custom_Model_Infinite_Bag Resource tokens fd617a.yaml +++ b/unpacked/Custom_Model_Infinite_Bag Resource tokens fd617a.yaml @@ -1,32 +1,32 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0704999641 - g: 0.0704999641 - r: 0.282239944 + b: 0.0705 + g: 0.0705 + r: 0.28224 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357192910/11DDDC7EF621320962FDCF3AE3211D5EDC3D1573/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,24 +48,24 @@ ContainedObjects: States: '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230067/741BC33D398801C4BC8368C345EAEF3BE2522823/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -87,12 +87,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -100,24 +100,24 @@ ContainedObjects: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808233/22B6C4A9FEE0814E6A9BDB2C833C79D66F8100B8/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -139,12 +139,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -152,24 +152,24 @@ ContainedObjects: XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230179/E3A30A2D661A12205D98D4D0E374591586C5C486/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -191,12 +191,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -204,24 +204,24 @@ ContainedObjects: XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2021604000335808359/FA36A27E47F940D14B4C45809BF1A0CD7783C8EB/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -243,12 +243,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -256,24 +256,24 @@ ContainedObjects: XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230311/11AD08ED0D8BF5B237444DAD0AF4F8144297A485/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -295,12 +295,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -308,24 +308,24 @@ ContainedObjects: XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 10.0 + MergeDistancePixels: 10 Stackable: true StandUp: false Thickness: 0.3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2028355744161230402/6486457CE96C04945473D4E079CBFFAF54C7EE1B/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -347,12 +347,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -361,12 +361,12 @@ ContainedObjects: Sticky: true Tooltip: true Transform: - posX: 44.0 + posX: 44 posY: 1.5 - posZ: 8.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + posZ: 8 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.17 scaleY: 0.17 scaleZ: 0.17 @@ -410,7 +410,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_PDF Rules Reference d99993.yaml b/unpacked/Custom_PDF Rules Reference d99993.yaml index 62f28016f..e089e8a3a 100644 --- a/unpacked/Custom_PDF Rules Reference d99993.yaml +++ b/unpacked/Custom_PDF Rules Reference d99993.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomPDF: PDFPage: 0 PDFPageOffset: 0 PDFPassword: '' - PDFUrl: https://images-cdn.fantasyflightgames.com/filer_public/c4/b0/c4b0d66c-d79e-411b-bdb5-b5d8c457d4bc/ahc01_rules_reference_web.pdf + PDFUrl: http://cloud-3.steamusercontent.com/ugc/2115061845793806189/6FC67F9AF9224452E2D8F25E63B88D702B21B0DC/ Description: '' DragSelectable: true GMNotes: '' @@ -32,14 +32,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -42.0 + posX: -42 posY: 1.48 - posZ: 89.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 89 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 4.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 4.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Action Description fb09d4.yaml b/unpacked/Custom_Tile Action Description fb09d4.yaml index 7a2e2ce09..07171e250 100644 --- a/unpacked/Custom_Tile Action Description fb09d4.yaml +++ b/unpacked/Custom_Tile Action Description fb09d4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2022727271910314655/F62931F67B2D5B5612A4688307A68D1058415408/ ImageURL: https://i.imgur.com/8SxnJvQ.jpg - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -57.0 + posX: -57 posY: 1.55 posZ: 52.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 + rotX: 0 + rotY: 270 + rotZ: 180 scaleX: 3.3 - scaleY: 1.0 + scaleY: 1 scaleZ: 3.3 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.ttslua b/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.ttslua index 3cde2042a..25eb359de 100644 --- a/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.ttslua +++ b/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.ttslua @@ -41,9 +41,901 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("arkhamdb/DeckImporterMain", function(require, _LOADED, __bundle_register, __bundle_modules) +require("arkhamdb/DeckImporterUi") +require("playercards/PlayerCardSpawner") + +local allCardsBagApi = require("playercards/AllCardsBagApi") +local arkhamDb = require("arkhamdb/ArkhamDb") +local playAreaApi = require("core/PlayAreaApi") +local playmatApi = require("playermat/PlaymatApi") +local zones = require("playermat/Zones") + +local startsInPlayCount = 0 + +function onLoad(script_state) + initializeUi(JSON.decode(script_state)) + math.randomseed(os.time()) + arkhamDb.initialize() +end + +function arkhamdb_reinit() + arkhamDb.initialize() +end + +function onSave() return JSON.encode(getUiState()) end + +-- Returns the zone name where the specified card should be placed, based on its metadata. +---@param cardMetadata Table of card metadata. +---@return Zone String Name of the zone such as "Deck", "SetAside1", etc. +-- See Zones object documentation for a list of valid zones. +function getDefaultCardZone(cardMetadata, bondedList) + if (cardMetadata.id == "09080-m") then -- Have to check the Servitor before other minicards + return "SetAside6" + elseif (cardMetadata.id == "09006") then -- On The Mend is set aside + return "SetAside2" + elseif cardMetadata.type == "Investigator" then + return "Investigator" + elseif cardMetadata.type == "Minicard" then + return "Minicard" + elseif cardMetadata.type == "UpgradeSheet" then + return "SetAside4" + elseif cardMetadata.startsInPlay then + return startsInPlayTracker() + elseif cardMetadata.permanent then + return "SetAside1" + elseif bondedList[cardMetadata.id] then + return "SetAside2" + -- SetAside3 is used for Ancestral Knowledge / Underworld Market + else + return "Deck" + end +end + +function startsInPlayTracker() + startsInPlayCount = startsInPlayCount + 1 + if startsInPlayCount > 6 then + broadcastToAll("Card that should start in play was placed with permanents because no blank slots remained") + return "SetAside1" + else + return "Blank" .. startsInPlayCount + end +end + +function buildDeck(playerColor, deckId) + local uiState = getUiState() + arkhamDb.getDecklist( + playerColor, + deckId, + uiState.private, + uiState.loadNewest, + uiState.investigators, + loadCards) +end + +-- Process the slot list, which defines the card Ids and counts of cards to load. Spawn those cards +-- at the appropriate zones and report an error to the user if any could not be loaded. +-- This is a callback function which handles the results of ArkhamDb.getDecklist() +-- This method uses an encapsulated coroutine with yields to make the card spawning cleaner. +-- +---@param slots Table Key-Value table of cardId:count. cardId is the ArkhamDB ID of the card to spawn, +-- and count is the number which should be spawned +---@param investigatorId String ArkhamDB ID (code) for this deck's investigator. +-- Investigator cards should already be added to the slots list if they +-- should be spawned, but this value is separate to check for special +-- handling for certain investigators +---@param bondedList Table A table of cardID keys to meaningless values. Card IDs in this list were added +-- from a parent bonded card. +---@param customizations String ArkhamDB data for customizations on customizable cards +---@param playerColor String Color name of the player mat to place this deck on (e.g. "Red") +---@param loadAltInvestigator String Contains the name of alternative art for the investigator ("normal", "revised" or "promo") +function loadCards(slots, investigatorId, bondedList, customizations, playerColor, loadAltInvestigator) + function coinside() + local cardsToSpawn = {} + + -- reset the startsInPlayCount + startsInPlayCount = 0 + for cardId, cardCount in pairs(slots) do + local card = allCardsBagApi.getCardById(cardId) + if card ~= nil then + local cardZone = getDefaultCardZone(card.metadata, bondedList) + for i = 1, cardCount do + table.insert(cardsToSpawn, { data = card.data, metadata = card.metadata, zone = cardZone }) + end + + slots[cardId] = 0 + end + end + + handleAncestralKnowledge(cardsToSpawn) + handleUnderworldMarket(cardsToSpawn, playerColor) + handleHunchDeck(investigatorId, cardsToSpawn, playerColor) + handleSpiritDeck(investigatorId, cardsToSpawn, playerColor) + handleCustomizableUpgrades(cardsToSpawn, customizations) + handlePeteSignatureAssets(investigatorId, cardsToSpawn) + + -- Split the card list into separate lists for each zone + local zoneDecks = buildZoneLists(cardsToSpawn) + -- Spawn the list for each zone + for zone, zoneCards in pairs(zoneDecks) do + local deckPos = zones.getZonePosition(playerColor, zone) + deckPos.y = 3 + + local callback = nil + -- If cards are spread too close together TTS groups them weirdly, selecting multiples + -- when hovering over a single card. This distance is the minimum to avoid that + local spreadDistance = 1.15 + if (zone == "SetAside4") then + -- SetAside4 is reserved for customization cards, and we want them spread on the table + -- so their checkboxes are visible + -- TO-DO: take into account that spreading will make multiple rows + -- (this is affected by the user's local settings!) + if (playerColor == "White") then + deckPos.z = deckPos.z + (#zoneCards - 1) * spreadDistance + elseif (playerColor == "Green") then + deckPos.x = deckPos.x + (#zoneCards - 1) * spreadDistance + end + callback = function(deck) deck.spread(spreadDistance) end + elseif zone == "Deck" then + callback = function(deck) deckSpawned(deck, playerColor) end + elseif zone == "Investigator" or zone == "Minicard" then + callback = function(card) loadAltArt(card, loadAltInvestigator) end + end + Spawner.spawnCards( + zoneCards, + deckPos, + zones.getDefaultCardRotation(playerColor, zone), + true, -- Sort deck + callback) + + coroutine.yield(0) + end + + -- Look for any cards which haven't been loaded + local hadError = false + for cardId, remainingCount in pairs(slots) do + if remainingCount > 0 then + hadError = true + arkhamDb.logCardNotFound(cardId, playerColor) + end + end + if (not hadError) then + printToAll("Deck loaded successfully!", playerColor) + end + return 1 + end + + startLuaCoroutine(self, "coinside") +end + +-- Callback handler for the main deck spawning. Looks for cards which should start in hand, and +-- draws them for the appropriate player. +---@param deck Object Callback-provided spawned deck object +---@param playerColor String Color of the player to draw the cards to +function deckSpawned(deck, playerColor) + local player = Player[playmatApi.getPlayerColor(playerColor)] + local handPos = player.getHandTransform(1).position -- Only one hand zone per player + local deckCards = deck.getData().ContainedObjects + + -- Process in reverse order so taking cards out doesn't upset the indexing + for i = #deckCards, 1, -1 do + local cardMetadata = JSON.decode(deckCards[i].GMNotes) or { } + if cardMetadata.startsInHand then + deck.takeObject({ index = i - 1, position = handPos, flip = true, smooth = true}) + end + end + + -- add the "PlayerCard" tag to the deck + if deck and deck.type == "Deck" and deck.getQuantity() > 1 then + deck.addTag("PlayerCard") + end +end + +-- Converts the Raven Quill's selections from card IDs to card names. This could be more elegant +-- but the inputs are very static so we're using some brute force. +---@param selectionString String provided by ArkhamDB, indicates the customization selections +-- Should be either a single card ID or two separated by a ^ (e.g. XXXXX^YYYYY) +function convertRavenQuillSelections(selectionString) + if (string.len(selectionString) == 5) then + return getCardName(selectionString) + elseif (string.len(selectionString) == 11) then + return getCardName(string.sub(selectionString, 1, 5)) .. ", " .. getCardName(string.sub(selectionString, 7)) + end +end + +-- Converts Grizzled's selections from a single string with "^". +---@param selectionString String provided by ArkhamDB, indicates the customization selections +-- Should be two Traits separated by a ^ (e.g. XXXXX^YYYYY) +function convertGrizzledSelections(selectionString) + return selectionString:gsub("%^", ", ") +end + +-- Returns the simple name of a card given its ID. This will find the card and strip any trailing +-- SCED-specific suffixes such as (Taboo) or (Level) +function getCardName(cardId) + local card = allCardsBagApi.getCardById(cardId) + if (card ~= nil) then + local name = card.data.Nickname + if (string.find(name, " %(")) then + return string.sub(name, 1, string.find(name, " %(") - 1) + else + return name + end + end +end + +-- Split a single list of cards into a separate table of lists, keyed by the zone +---@param cards Table Table of {cardData, cardMetadata, zone} +---@return: Table of {zoneName=card list} +function buildZoneLists(cards) + local zoneList = {} + for _, card in ipairs(cards) do + if zoneList[card.zone] == nil then + zoneList[card.zone] = {} + end + table.insert(zoneList[card.zone], card) + end + + return zoneList +end + +-- Check to see if the deck list has Ancestral Knowledge. If it does, move 5 random skills to SetAside3 +---@param cardList Table Deck list being created +function handleAncestralKnowledge(cardList) + local hasAncestralKnowledge = false + local skillList = {} + -- Have to process the entire list to check for Ancestral Knowledge and get all possible skills, so do both in one pass + for i, card in ipairs(cardList) do + if card.metadata.id == "07303" then + hasAncestralKnowledge = true + card.zone = "SetAside3" + elseif (card.metadata.type == "Skill" + and card.zone == "Deck" + and not card.metadata.weakness) then + table.insert(skillList, i) + end + end + if hasAncestralKnowledge then + for i = 1, 5 do + -- Move 5 random skills to SetAside3 + local skillListIndex = math.random(#skillList) + cardList[skillList[skillListIndex]].zone = "UnderSetAside3" + table.remove(skillList, skillListIndex) + end + end +end + +-- Check for and handle Underworld Market by moving all Illicit cards to UnderSetAside3 +---@param cardList Table Deck list being created +---@param playerColor String Color this deck is being loaded for +function handleUnderworldMarket(cardList, playerColor) + local hasMarket = false + local illicitList = {} + -- Process the entire list to check for Underworld Market and get all possible skills, doing both in one pass + for i, card in ipairs(cardList) do + if card.metadata.id == "09077" then + -- Underworld Market found + hasMarket = true + card.zone = "SetAside3" + elseif card.metadata.traits ~= nil and string.find(card.metadata.traits, "Illicit", 1, true) and card.zone == "Deck" then + table.insert(illicitList, i) + end + end + + if hasMarket then + if #illicitList < 10 then + printToAll("Only " .. #illicitList .. + " Illicit cards in your deck, you can't trigger Underworld Market's ability.", + playerColor) + else + -- Process cards to move them to the market deck. This is done in reverse + -- order because the sorting needs to be reversed (deck sorts for face down) + -- Performance here may be an issue, as table.remove() is an O(n) operation + -- which makes the full shift O(n^2). But keep it simple unless it becomes + -- a problem + for i = #illicitList, 1, -1 do + local moving = cardList[illicitList[i]] + moving.zone = "UnderSetAside3" + table.remove(cardList, illicitList[i]) + table.insert(cardList, moving) + end + + if #illicitList > 10 then + printToAll("Moved all " .. #illicitList .. + " Illicit cards to the Market deck, reduce it to 10", + playerColor) + else + printToAll("Built the Market deck", playerColor) + end + end + end +end + +-- If the investigator is Joe Diamond, extract all Insight events to SetAside5 to build the Hunch +-- Deck. +---@param investigatorId String ID for the deck's investigator card. Passed separately because the +--- investigator may not be included in the cardList +---@param cardList Table Deck list being created +---@param playerColor String Color this deck is being loaded for +function handleHunchDeck(investigatorId, cardList, playerColor) + if investigatorId == "05002" then -- Joe Diamond + local insightList = {} + for i, card in ipairs(cardList) do + if (card.metadata.type == "Event" + and card.metadata.traits ~= nil + and string.match(card.metadata.traits, "Insight") + and card.metadata.bonded_to == nil) then + table.insert(insightList, i) + end + end + -- Process insights to move them to the hunch deck. This is done in reverse + -- order because the sorting needs to be reversed (deck sorts for face down) + -- Performance here may be an issue, as table.remove() is an O(n) operation + -- which makes the full shift O(n^2). But keep it simple unless it becomes + -- a problem + for i = #insightList, 1, -1 do + local moving = cardList[insightList[i]] + moving.zone = "SetAside5" + table.remove(cardList, insightList[i]) + table.insert(cardList, moving) + end + if #insightList < 11 then + printToAll("Joe's hunch deck must have 11 cards but the deck only has " .. #insightList .. + " Insight events.", playerColor) + elseif #insightList > 11 then + printToAll("Moved all " .. #insightList .. + " Insight events to the hunch deck, reduce it to 11.", playerColor) + else + printToAll("Built Joe's hunch deck", playerColor) + end + end +end + +-- If the investigator is Parallel Jim Culver, extract all Ally assets to SetAside5 to build the Spirit +-- Deck. +---@param investigatorId String ID for the deck's investigator card. Passed separately because the +--- investigator may not be included in the cardList +---@param cardList Table Deck list being created +---@param playerColor String Color this deck is being loaded for +function handleSpiritDeck(investigatorId, cardList, playerColor) + if investigatorId == "02004-p" or investigatorId == "02004-pb" then -- Parallel Jim Culver + local spiritList = {} + for i, card in ipairs(cardList) do + if card.metadata.id == "90053" or ( + card.metadata.type == "Asset" + and card.metadata.traits ~= nil + and string.match(card.metadata.traits, "Ally") + and card.metadata.level ~= nil + and card.metadata.level < 3) then + table.insert(spiritList, i) + end + end + -- Process allies to move them to the spirit deck. This is done in reverse + -- order because the sorting needs to be reversed (deck sorts for face down) + -- Performance here may be an issue, as table.remove() is an O(n) operation + -- which makes the full shift O(n^2). But keep it simple unless it becomes + -- a problem + for i = #spiritList, 1, -1 do + local moving = cardList[spiritList[i]] + moving.zone = "SetAside5" + table.remove(cardList, spiritList[i]) + table.insert(cardList, moving) + end + if #spiritList < 10 then + printToAll("Jim's spirit deck must have 9 Ally assets but the deck only has " .. (#spiritList - 1) .. + " Ally assets.", playerColor) + elseif #spiritList > 11 then + printToAll("Moved all " .. (#spiritList - 1) .. + " Ally assets to the spirit deck, reduce it to 10 (including Vengeful Shade).", playerColor) + else + printToAll("Built Jim's spirit deck", playerColor) + end + end +end + +-- For any customization upgrade cards in the card list, process the metadata from the deck to +-- set the save state to show the correct checkboxes/text field values +---@param cardList Table Deck list being created +---@param customizations String ArkhamDB data for customizations on customizable cards +function handleCustomizableUpgrades(cardList, customizations) + for _, card in ipairs(cardList) do + if card.metadata.type == "UpgradeSheet" then + local baseId = string.sub(card.metadata.id, 1, 5) + local upgrades = customizations["cus_" .. baseId] + + if upgrades ~= nil then + -- initialize tables + -- markedBoxes: contains the amount of markedBoxes (left to right) per row (starting at row 1) + -- inputValues: contains the amount of inputValues per row (starting at row 0) + local selectedUpgrades = { } + local index_xp = {} + + -- get the index and xp values (looks like this: X|X,X|X, ..) + -- input string from ArkhamDB is split by "," + for str in string.gmatch(customizations["cus_" .. baseId], "([^,]+)") do + table.insert(index_xp, str) + end + + -- split each pair and assign it to the proper position in markedBoxes + for _, entry in ipairs(index_xp) do + -- counter increments from 1 to 3 and indicates the part of the string we are on + -- usually: 1 = row, 2 = amount of check boxes, 3 = entry in inputfield + local counter = 0 + local row = 0 + + -- parsing the string for each row + for str in entry:gmatch("([^|]+)") do + counter = counter + 1 + + if counter == 1 then + row = tonumber(str) + 1 + elseif counter == 2 then + if selectedUpgrades[row] == nil then + selectedUpgrades[row] = { } + end + selectedUpgrades[row].xp = tonumber(str) + elseif counter == 3 and str ~= "" then + if baseId == "09042" then + selectedUpgrades[row].text = convertRavenQuillSelections(str) + elseif baseId == "09101" then + selectedUpgrades[row].text = convertGrizzledSelections(str) + elseif baseId == "09079" then -- Living Ink skill selection + -- All skills, regardless of row, are placed in upgrade slot 1 as a comma-delimited + -- list + if selectedUpgrades[1] == nil then + selectedUpgrades[1] = { } + end + if selectedUpgrades[1].text == nil then + selectedUpgrades[1].text = str + else + selectedUpgrades[1].text = selectedUpgrades[1].text .. "," .. str + end + else + selectedUpgrades[row].text = str + end + end + end + end + + -- write the loaded values to the save_data of the sheets + card.data["LuaScriptState"] = JSON.encode({ selections = selectedUpgrades }) + end + end + end +end + +-- Handles cards that start in play under specific conditions for Ashcan Pete (Regular Pete - Duke, Parallel Pete - Guitar) +---@param investigatorId String ID for the deck's investigator card. Passed separately because the +--- investigator may not be included in the cardList +---@param cardList Table Deck list being created +function handlePeteSignatureAssets(investigatorId, cardList) + if investigatorId == "02005" or investigatorId == "02005-pb" then -- regular Pete's front + for i, card in ipairs(cardList) do + if card.metadata.id == "02014" then -- Duke + card.zone = startsInPlayTracker() + end + end + elseif investigatorId == "02005-p" or investigatorId == "02005-pf" then -- parallel Pete's front + for i, card in ipairs(cardList) do + if card.metadata.id == "90047" then -- Pete's Guitar + card.zone = startsInPlayTracker() + end + end + end +end + +-- Callback function for investigator cards and minicards to set the correct state for alt art +---@param card Object Card which needs to be set the state for +---@param loadAltInvestigator String Contains the name of alternative art for the investigator ("normal", "revised" or "promo") +function loadAltArt(card, loadAltInvestigator) + -- states are set up this way: + -- 1 - normal, 2 - revised/promo, 3 - promo (if 2 is revised) + -- This means we can always load the 2nd state for revised and just get the last state for promo + if loadAltInvestigator == "normal" then + return + elseif loadAltInvestigator == "revised" then + card.setState(2) + elseif loadAltInvestigator == "promo" then + local states = card.getStates() + card.setState(#states) + end +end +end) +__bundle_register("playercards/AllCardsBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local AllCardsBagApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getAllCardsBag() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "AllCardsBag") + end + + -- Returns a specific card from the bag, based on ArkhamDB ID + ---@param id table String ID of the card to retrieve + ---@return table table + -- If the indexes are still being constructed, an empty table is + -- returned. Otherwise, a single table with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardById = function(id) + return getAllCardsBag().call("getCardById", {id = id}) + end + + -- Gets a random basic weakness from the bag. Once a given ID has been returned + -- it will be removed from the list and cannot be selected again until a reload + -- occurs or the indexes are rebuilt, which will refresh the list to include all + -- weaknesses. + ---@return id String ID of the selected weakness. + AllCardsBagApi.getRandomWeaknessId = function() + return getAllCardsBag().call("getRandomWeaknessId") + end + + AllCardsBagApi.isIndexReady = function() + return getAllCardsBag().call("isIndexReady") + end + + -- Called by Hotfix bags when they load. If we are still loading indexes, then + -- the all cards and hotfix bags are being loaded together, and we can ignore + -- this call as the hotfix will be included in the initial indexing. If it is + -- called once indexing is complete it means the hotfix bag has been added + -- later, and we should rebuild the index to integrate the hotfix bag. + AllCardsBagApi.rebuildIndexForHotfix = function() + return getAllCardsBag().call("rebuildIndexForHotfix") + end + + -- Searches the bag for cards which match the given name and returns a list. Note that this is + -- an O(n) search without index support. It may be slow. + ---@param name String or string fragment to search for names + ---@param exact Boolean Whether the name match should be exact + AllCardsBagApi.getCardsByName = function(name, exact) + return getAllCardsBag().call("getCardsByName", {name = name, exact = exact}) + end + + AllCardsBagApi.isBagPresent = function() + return getAllCardsBag() and true + end + + -- Returns a list of cards from the bag matching a class and level (0 or upgraded) + ---@param class String class to retrieve ("Guardian", "Seeker", etc) + ---@param upgraded Boolean true for upgraded cards (Level 1-5), false for Level 0 + ---@return: If the indexes are still being constructed, returns an empty table. + -- Otherwise, a list of tables, each with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardsByClassAndLevel = function(class, upgraded) + return getAllCardsBag().call("getCardsByClassAndLevel", {class = class, upgraded = upgraded}) + end + + AllCardsBagApi.getCardsByCycle = function(cycle) + return getAllCardsBag().call("getCardsByCycle", cycle) + end + + AllCardsBagApi.getUniqueWeaknesses = function() + return getAllCardsBag().call("getUniqueWeaknesses") + end + + return AllCardsBagApi +end +end) +__bundle_register("playercards/PlayerCardSpawner", function(require, _LOADED, __bundle_register, __bundle_modules) +-- Amount to shift for the next card (zShift) or next row of cards (xShift) +-- Note that the table rotation is weird, and the X axis is vertical while the +-- Z axis is horizontal +local SPREAD_Z_SHIFT = -2.3 +local SPREAD_X_SHIFT = -3.66 + +Spawner = { } + +-- Spawns a list of cards at the given position/rotation. This will separate cards by size - +-- investigator, standard, and mini, spawning them in that order with larger cards on bottom. If +-- there are different types, the provided callback will be called once for each type as it spawns +-- either a card or deck. +-- @param cardList: A list of Player Card data structures (data/metadata) +-- @param pos Position table where the cards should be spawned (global) +-- @param rot Rotation table for the orientation of the spawned cards (global) +-- @param sort Boolean, true if this list of cards should be sorted before spawning +-- @param callback Function, callback to be called after the card/deck spawns. +Spawner.spawnCards = function(cardList, pos, rot, sort, callback) + if (sort) then + table.sort(cardList, Spawner.cardComparator) + end + + local miniCards = { } + local standardCards = { } + local investigatorCards = { } + + for _, card in ipairs(cardList) do + if (card.metadata.type == "Investigator") then + table.insert(investigatorCards, card) + elseif (card.metadata.type == "Minicard") then + table.insert(miniCards, card) + else + table.insert(standardCards, card) + end + end + -- Spawn each of the three types individually. Each Y position shift accounts for the thickness + -- of the spawned deck + local position = { x = pos.x, y = pos.y, z = pos.z } + Spawner.spawn(investigatorCards, position, { rot.x, rot.y - 90, rot.z }, callback) + + position.y = position.y + (#investigatorCards + #standardCards) * 0.07 + Spawner.spawn(standardCards, position, rot, callback) + + position.y = position.y + (#standardCards + #miniCards) * 0.07 + Spawner.spawn(miniCards, position, rot, callback) +end + +Spawner.spawnCardSpread = function(cardList, startPos, maxCols, rot, sort, callback) + if (sort) then + table.sort(cardList, Spawner.cardComparator) + end + + local position = { x = startPos.x, y = startPos.y, z = startPos.z } + -- Special handle the first row if we have less than a full single row, but only if there's a + -- reasonable max column count. Single-row spreads will send a large value for maxCols + if maxCols < 100 and #cardList < maxCols then + position.z = startPos.z + ((maxCols - #cardList) / 2 * SPREAD_Z_SHIFT) + end + local cardsInRow = 0 + local rows = 0 + for _, card in ipairs(cardList) do + Spawner.spawn({ card }, position, rot, callback) + position.z = position.z + SPREAD_Z_SHIFT + cardsInRow = cardsInRow + 1 + if cardsInRow >= maxCols then + rows = rows + 1 + local cardsForRow = #cardList - rows * maxCols + if cardsForRow > maxCols then + cardsForRow = maxCols + end + position.z = startPos.z + ((maxCols - cardsForRow) / 2 * SPREAD_Z_SHIFT) + position.x = position.x + SPREAD_X_SHIFT + cardsInRow = 0 + end + end +end + +-- Spawn a specific list of cards. This method is for internal use and should not be called +-- directly, use spawnCards instead. +---@param cardList: A list of Player Card data structures (data/metadata) +---@param pos table Position where the cards should be spawned (global) +---@param rot table Rotation for the orientation of the spawned cards (global) +---@param callback function callback to be called after the card/deck spawns. +Spawner.spawn = function(cardList, pos, rot, callback) + if (#cardList == 0) then + return + end + -- Spawn a single card directly + if (#cardList == 1) then + spawnObjectData({ + data = cardList[1].data, + position = pos, + rotation = rot, + callback_function = callback, + }) + return + end + -- For multiple cards, construct a deck and spawn that + local deck = Spawner.buildDeckDataTemplate() + -- Decks won't inherently scale to the cards in them. The card list being spawned should be all + -- the same type/size by this point, so use the first card to set the size + deck.Transform = { + scaleX = cardList[1].data.Transform.scaleX, + scaleY = 1, + scaleZ = cardList[1].data.Transform.scaleZ, + } + local sidewaysDeck = true + for _, spawnCard in ipairs(cardList) do + Spawner.addCardToDeck(deck, spawnCard.data) + -- set sidewaysDeck to false if any card is not a sideways card + sidewaysDeck = (sidewaysDeck and spawnCard.data.SidewaysCard) + end + -- set the alt view angle for sideway decks + if sidewaysDeck then + deck.AltLookAngle = { x = 0, y = 180, z = 90 } + end + spawnObjectData({ + data = deck, + position = pos, + rotation = rot, + callback_function = callback, + }) +end + +-- Inserts a card into the given deck. This does three things: +-- 1. Add the card's data to ContainedObjects +-- 2. Add the card's ID (the TTS CardID, not the Arkham ID) to the deck's +-- ID list. Note that the deck's ID list is "DeckIDs" even though it +-- contains a list of card Ids +-- 3. Extract the card's CustomDeck table and add it to the deck. The deck's +-- "CustomDeck" field is a list of all CustomDecks used by cards within the +-- deck, keyed by the DeckID and referencing the custom deck table +---@param deck: TTS deck data structure to add to +---@param cardData: Data for the card to be inserted +Spawner.addCardToDeck = function(deck, cardData) + for customDeckId, customDeckData in pairs(cardData.CustomDeck) do + if (deck.CustomDeck[customDeckId] == nil) then + -- CustomDeck not added to deck yet, add it + deck.CustomDeck[customDeckId] = customDeckData + elseif (deck.CustomDeck[customDeckId].FaceURL == customDeckData.FaceURL) then + -- CustomDeck for this card matches the current one for the deck, do nothing + else + -- CustomDeck data conflict + local newDeckId = nil + for deckId, customDeck in pairs(deck.CustomDeck) do + if (customDeckData.FaceURL == customDeck.FaceURL) then + newDeckId = deckId + end + end + if (newDeckId == nil) then + -- No non-conflicting custom deck for this card, add a new one + newDeckId = Spawner.findNextAvailableId(deck.CustomDeck, "1000") + deck.CustomDeck[newDeckId] = customDeckData + end + -- Update the card with the new CustomDeck info + cardData.CardID = newDeckId..string.sub(cardData.CardID, 5) + cardData.CustomDeck[customDeckId] = nil + cardData.CustomDeck[newDeckId] = customDeckData + break + end + end + table.insert(deck.ContainedObjects, cardData) + table.insert(deck.DeckIDs, cardData.CardID) +end + +-- Create an empty deck data table which can have cards added to it. This +-- creates a new table on each call without using metatables or previous +-- definitions because we can't be sure that TTS doesn't modify the structure +---@return: Table containing the minimal TTS deck data structure +Spawner.buildDeckDataTemplate = function() + local deck = {} + deck.Name = "Deck" + + -- Card data. DeckIDs and CustomDeck entries will be built from the cards + deck.ContainedObjects = {} + deck.DeckIDs = {} + deck.CustomDeck = {} + + -- Transform is required, Position and Rotation will be overridden by the spawn call so can be omitted here + deck.Transform = { + scaleX = 1, + scaleY = 1, + scaleZ = 1, + } + + return deck +end + +-- Returns the first ID which does not exist in the given table, starting at startId and increasing +-- @param objectTable Table keyed by strings which are numbers +-- @param startId First possible ID. +-- @return String ID >= startId +Spawner.findNextAvailableId = function(objectTable, startId) + local id = startId + while (objectTable[id] ~= nil) do + id = tostring(tonumber(id) + 1) + end + + return id +end + +-- Get the PBCN (Permanent/Bonded/Customizable/Normal) value from the given metadata. +---@return: 1 for Permanent, 2 for Bonded or 4 for Normal. The actual values are +-- irrelevant as they provide only grouping and the order between them doesn't matter. +Spawner.getpbcn = function(metadata) + if metadata.permanent then + return 1 + elseif metadata.bonded_to ~= nil then + return 2 + else -- Normal card + return 3 + end +end + +-- Comparison function used to sort the cards in a deck. Groups bonded or +-- permanent cards first, then sorts within theose types by name/subname. +-- Normal cards will sort in standard alphabetical order, while +-- permanent/bonded/customizable will be in reverse alphabetical order. +-- +-- Since cards spawn in the order provided by this comparator, with the first +-- cards ending up at the bottom of a pile, this ordering will spawn in reverse +-- alphabetical order. This presents the cards in order for non-face-down +-- areas, and presents them in order when Searching the face-down deck. +Spawner.cardComparator = function(card1, card2) + local pbcn1 = Spawner.getpbcn(card1.metadata) + local pbcn2 = Spawner.getpbcn(card2.metadata) + if pbcn1 ~= pbcn2 then + return pbcn1 > pbcn2 + end + if pbcn1 == 3 then + if card1.data.Nickname ~= card2.data.Nickname then + return card1.data.Nickname < card2.data.Nickname + end + return card1.data.Description < card2.data.Description + else + if card1.data.Nickname ~= card2.data.Nickname then + return card1.data.Nickname > card2.data.Nickname + end + return card1.data.Description > card2.data.Description + end +end +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("arkhamdb/DeckImporterMain") +end) __bundle_register("arkhamdb/ArkhamDb", function(require, _LOADED, __bundle_register, __bundle_modules) do + local allCardsBagApi = require("playercards/AllCardsBagApi") local playAreaApi = require("core/PlayAreaApi") + local ArkhamDb = { } local internal = { } @@ -100,8 +992,7 @@ do callback) -- Get a simple card to see if the bag indexes are complete. If not, abort -- the deck load. The called method will handle player notification. - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) - local checkCard = allCardsBag.call("getCardById", { id = "01001" }) + local checkCard = allCardsBagApi.getCardById("01001") if (checkCard ~= nil and checkCard.data == nil) then return end @@ -187,12 +1078,14 @@ do if loadInvestigators then loadAltInvestigator = internal.addInvestigatorCards(deck, slots) end - internal.maybeAddCustomizeUpgradeSheets(slots) + + internal.maybeModifyDeckFromDescription(slots, deck.description_md) internal.maybeAddSummonedServitor(slots) internal.maybeAddOnTheMend(slots, playerColor) internal.maybeAddRealityAcidReference(slots) local bondList = internal.extractBondedCards(slots) internal.checkTaboos(deck.taboo_id, slots, playerColor) + internal.maybeAddUpgradeSheets(slots) -- get upgrades for customizable cards local customizations = {} @@ -211,13 +1104,12 @@ do ---@param playerColor String Color of the player this deck is being loaded for. Used for broadcast --- if a weakness is added. internal.maybeDrawRandomWeakness = function(slots, playerColor) - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) local randomWeaknessAmount = slots[RANDOM_WEAKNESS_ID] or 0 slots[RANDOM_WEAKNESS_ID] = nil if randomWeaknessAmount ~= 0 then for i=1, randomWeaknessAmount do - local weaknessId = allCardsBag.call("getRandomWeaknessId") + local weaknessId = allCardsBagApi.getRandomWeaknessId() slots[weaknessId] = (slots[weaknessId] or 0) + 1 end internal.maybePrint("Added " .. randomWeaknessAmount .. " random basic weakness(es) to deck", playerColor) @@ -241,7 +1133,7 @@ do local altArt = { front = "normal", back = "normal" } -- translating front ID - if altFrontId > 90000 and altFrontId < 90047 then + if altFrontId > 90000 and altFrontId < 90100 then altArt.front = "parallel" elseif altFrontId > 01500 and altFrontId < 01506 then altArt.front = "revised" @@ -250,7 +1142,7 @@ do end -- translating back ID - if altBackId > 90000 and altBackId < 90047 then + if altBackId > 90000 and altBackId < 90100 then altArt.back = "parallel" elseif altBackId > 01500 and altBackId < 01506 then altArt.back = "revised" @@ -282,11 +1174,10 @@ do -- Process the card list looking for the customizable cards, and add their upgrade sheets if needed ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number -- of those cards which will be spawned - internal.maybeAddCustomizeUpgradeSheets = function(slots) - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) + internal.maybeAddUpgradeSheets = function(slots) for cardId, _ in pairs(slots) do -- upgrade sheets for customizable cards - local upgradesheet = allCardsBag.call("getCardById", { id = cardId .. "-c" }) + local upgradesheet = allCardsBagApi.getCardById(cardId .. "-c") if upgradesheet ~= nil then slots[cardId .. "-c"] = 1 end @@ -329,18 +1220,66 @@ do end end + -- Processes the deck description from ArkhamDB and modifies the slot list accordingly + ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number + ---@param description String The deck desription from ArkhamDB + internal.maybeModifyDeckFromDescription = function(slots, description) + -- check for import instructions + local pos = string.find(description, "++SCED import instructions++") + if not pos then return end + + -- remove everything before instructions (including newline) + local tempStr = string.sub(description, pos + 30) + + -- parse each line in instructions + for line in tempStr:gmatch("([^\n]+)") do + -- remove dashes at the start + line = line:gsub("%- ", "") + + -- remove spaces + line = line:gsub("%s", "") + + -- get instructor + local instructor = "" + for word in line:gmatch("%a+:") do + instructor = word + break + end + + if instructor == "" or (instructor ~= "add:" and instructor ~= "remove:") then return end + + -- remove instructor from line + line = line:gsub(instructor, "") + + -- evaluate instructions + local cardIds = {} + for str in line:gmatch("([^,]+)") do + if instructor == "add:" then + slots[str] = (slots[str] or 0) + 1 + elseif instructor == "remove:" then + if slots[str] == nil then break end + slots[str] = math.max(slots[str] - 1, 0) + end + end + end + end + -- Process the slot list and looks for any cards which are bonded to those in the deck. Adds those cards to the slot list. ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number of those cards which will be spawned internal.extractBondedCards = function(slots) - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) -- Create a list of bonded cards first so we don't modify slots while iterating local bondedCards = { } local bondedList = { } for cardId, cardCount in pairs(slots) do - local card = allCardsBag.call("getCardById", { id = cardId }) + local card = allCardsBagApi.getCardById(cardId) if (card ~= nil and card.metadata.bonded ~= nil) then for _, bond in ipairs(card.metadata.bonded) do - bondedCards[bond.id] = bond.count + -- add a bonded card for each copy of the parent card (except for Pendant of the Queen) + if bond.id == "06022" then + bondedCards[bond.id] = bond.count + else + bondedCards[bond.id] = bond.count * cardCount + end -- We need to know which cards are bonded to determine their position, remember them bondedList[bond.id] = true -- Also adding taboo versions of bonded cards to the list @@ -361,15 +1300,14 @@ do ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number of those cards which will be spawned internal.checkTaboos = function(tabooId, slots, playerColor) if tabooId then - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) for cardId, _ in pairs(tabooList[tabooId].cards) do if slots[cardId] ~= nil then -- Make sure there's a taboo version of the card before we replace it -- SCED only maintains the most recent taboo cards. If a deck is using -- an older taboo list it's possible the card isn't a taboo any more - local tabooCard = allCardsBag.call("getCardById", { id = cardId .. "-t" }) + local tabooCard = allCardsBagApi.getCardById(cardId .. "-t") if tabooCard == nil then - local basicCard = allCardsBag.call("getCardById", { id = cardId }) + local basicCard = allCardsBagApi.getCardById(cardId) internal.maybePrint("Taboo version for " .. basicCard.data.Nickname .. " is not available. Using standard version", playerColor) else slots[cardId .. "-t"] = slots[cardId] @@ -521,6 +1459,8 @@ do end end) __bundle_register("arkhamdb/DeckImporterUi", function(require, _LOADED, __bundle_register, __bundle_modules) +local allCardsBagApi = require("playercards/AllCardsBagApi") + local INPUT_FIELD_HEIGHT = 340 local INPUT_FIELD_WIDTH = 1500 local FIELD_COLOR = { 0.9, 0.7, 0.5 } @@ -569,7 +1509,7 @@ function getUiState() end -- Updates the state of the UI based on the provided table. Any values not provided will be left the same. --- @param uiStateTable Table of values to update on importer +---@param uiStateTable Table of values to update on importer -- Table values: -- redDeck: Deck ID to load for the red player -- orangeDeck: Deck ID to load for the orange player @@ -579,36 +1519,9 @@ end -- loadNewest: True if the most upgraded version of the deck should be loaded -- investigators: True if investigator cards should be spawned function setUiState(uiStateTable) - -- Callback functions aren't triggered when editing buttons/inputs so values must be set manually - - if uiStateTable["greenDeck"] then - greenDeckId = uiStateTable["greenDeck"] - self.editInput({index=0, value=greenDeckId}) - end - if uiStateTable["redDeck"] then - redDeckId = uiStateTable["redDeck"] - self.editInput({index=1, value=redDeckId}) - end - if uiStateTable["whiteDeck"] then - whiteDeckId = uiStateTable["whiteDeck"] - self.editInput({index=2, value=whiteDeckId}) - end - if uiStateTable["orangeDeck"]then - orangeDeckId = uiStateTable["orangeDeck"] - self.editInput({index=3, value=orangeDeckId}) - end - if uiStateTable["private"] then - privateDeck = uiStateTable["private"] - self.editButton { index = 0, label = PRIVATE_TOGGLE_LABELS[privateDeck] } - end - if uiStateTable["loadNewest"] then - loadNewestDeck = uiStateTable["loadNewest"] - self.editButton { index = 1, label = UPGRADED_TOGGLE_LABELS[loadNewestDeck] } - end - if uiStateTable["investigators"] then - loadInvestigators = uiStateTable["investigators"] - self.editButton { index = 2, label = LOAD_INVESTIGATOR_TOGGLE_LABELS[loadInvestigators] } - end + self.clearButtons() + self.clearInputs() + initializeUi(uiStateTable) end -- Sets up the UI for the deck loader, populating fields from the given save state table decoded from onLoad() @@ -740,9 +1653,7 @@ function loadDecks() -- testLoadLotsOfDecks() -- Method in DeckImporterMain, visible due to inclusion - -- TODO: Make this use the configuration ID for the all cards bag - local allCardsBag = getObjectFromGUID("15bb07") - local indexReady = allCardsBag.call("isIndexReady") + local indexReady = allCardsBagApi.isIndexReady() if (not indexReady) then broadcastToAll("Still loading player cards, please try again in a few seconds", {0.9, 0.2, 0.2}) return @@ -763,561 +1674,400 @@ end end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi end end) -__bundle_register("playercards/PlayerCardSpawner", function(require, _LOADED, __bundle_register, __bundle_modules) - --- Amount to shift for the next card (zShift) or next row of cards (xShift) --- Note that the table rotation is weird, and the X axis is vertical while the --- Z axis is horizontal -local SPREAD_Z_SHIFT = -2.3 -local SPREAD_X_SHIFT = -3.66 - -Spawner = { } - --- Spawns a list of cards at the given position/rotation. This will separate cards by size - --- investigator, standard, and mini, spawning them in that order with larger cards on bottom. If --- there are different types, the provided callback will be called once for each type as it spawns --- either a card or deck. --- @param cardList: A list of Player Card data structures (data/metadata) --- @param pos Position table where the cards should be spawned (global) --- @param rot Rotation table for the orientation of the spawned cards (global) --- @param sort Boolean, true if this list of cards should be sorted before spawning --- @param callback Function, callback to be called after the card/deck spawns. -Spawner.spawnCards = function(cardList, pos, rot, sort, callback) - if (sort) then - table.sort(cardList, Spawner.cardComparator) - end - - local miniCards = { } - local standardCards = { } - local investigatorCards = { } - - for _, card in ipairs(cardList) do - if (card.metadata.type == "Investigator") then - table.insert(investigatorCards, card) - elseif (card.metadata.type == "Minicard") then - table.insert(miniCards, card) - else - table.insert(standardCards, card) - end - end - -- Spawn each of the three types individually. Each Y position shift accounts for the thickness - -- of the spawned deck - local position = { x = pos.x, y = pos.y, z = pos.z } - Spawner.spawn(investigatorCards, position, { rot.x, rot.y - 90, rot.z }, callback) - - position.y = position.y + (#investigatorCards + #standardCards) * 0.07 - Spawner.spawn(standardCards, position, rot, callback) - - position.y = position.y + (#standardCards + #miniCards) * 0.07 - Spawner.spawn(miniCards, position, rot, callback) -end - -Spawner.spawnCardSpread = function(cardList, startPos, maxCols, rot, sort, callback) - if (sort) then - table.sort(cardList, Spawner.cardComparator) - end - - local position = { x = startPos.x, y = startPos.y, z = startPos.z } - -- Special handle the first row if we have less than a full single row, but only if there's a - -- reasonable max column count. Single-row spreads will send a large value for maxCols - if maxCols < 100 and #cardList < maxCols then - position.z = startPos.z + ((maxCols - #cardList) / 2 * SPREAD_Z_SHIFT) - end - local cardsInRow = 0 - local rows = 0 - for _, card in ipairs(cardList) do - Spawner.spawn({ card }, position, rot, callback) - position.z = position.z + SPREAD_Z_SHIFT - cardsInRow = cardsInRow + 1 - if cardsInRow >= maxCols then - rows = rows + 1 - local cardsForRow = #cardList - rows * maxCols - if cardsForRow > maxCols then - cardsForRow = maxCols - end - position.z = startPos.z + ((maxCols - cardsForRow) / 2 * SPREAD_Z_SHIFT) - position.x = position.x + SPREAD_X_SHIFT - cardsInRow = 0 - end - end -end - --- Spawn a specific list of cards. This method is for internal use and should not be called --- directly, use spawnCards instead. ----@param cardList: A list of Player Card data structures (data/metadata) ----@param pos table Position where the cards should be spawned (global) ----@param rot table Rotation for the orientation of the spawned cards (global) ----@param callback function callback to be called after the card/deck spawns. -Spawner.spawn = function(cardList, pos, rot, callback) - if (#cardList == 0) then - return - end - -- Spawn a single card directly - if (#cardList == 1) then - spawnObjectData({ - data = cardList[1].data, - position = pos, - rotation = rot, - callback_function = callback, - }) - return - end - -- For multiple cards, construct a deck and spawn that - local deck = Spawner.buildDeckDataTemplate() - -- Decks won't inherently scale to the cards in them. The card list being spawned should be all - -- the same type/size by this point, so use the first card to set the size - deck.Transform = { - scaleX = cardList[1].data.Transform.scaleX, - scaleY = 1, - scaleZ = cardList[1].data.Transform.scaleZ, - } - local sidewaysDeck = true - for _, spawnCard in ipairs(cardList) do - Spawner.addCardToDeck(deck, spawnCard.data) - -- set sidewaysDeck to false if any card is not a sideways card - sidewaysDeck = (sidewaysDeck and spawnCard.data.SidewaysCard) - end - -- set the alt view angle for sideway decks - if sidewaysDeck then - deck.AltLookAngle = { x = 0, y = 180, z = 90 } - end - spawnObjectData({ - data = deck, - position = pos, - rotation = rot, - callback_function = callback, - }) -end - --- Inserts a card into the given deck. This does three things: --- 1. Add the card's data to ContainedObjects --- 2. Add the card's ID (the TTS CardID, not the Arkham ID) to the deck's --- ID list. Note that the deck's ID list is "DeckIDs" even though it --- contains a list of card Ids --- 3. Extract the card's CustomDeck table and add it to the deck. The deck's --- "CustomDeck" field is a list of all CustomDecks used by cards within the --- deck, keyed by the DeckID and referencing the custom deck table ----@param deck: TTS deck data structure to add to ----@param card: Data for the card to be inserted -Spawner.addCardToDeck = function(deck, cardData) - for customDeckId, customDeckData in pairs(cardData.CustomDeck) do - if (deck.CustomDeck[customDeckId] == nil) then - -- CustomDeck not added to deck yet, add it - deck.CustomDeck[customDeckId] = customDeckData - elseif (deck.CustomDeck[customDeckId].FaceURL == customDeckData.FaceURL) then - -- CustomDeck for this card matches the current one for the deck, do nothing - else - -- CustomDeck data conflict - local newDeckId = nil - for deckId, customDeck in pairs(deck.CustomDeck) do - if (customDeckData.FaceURL == customDeck.FaceURL) then - newDeckId = deckId - end - end - if (newDeckId == nil) then - -- No non-conflicting custom deck for this card, add a new one - newDeckId = Spawner.findNextAvailableId(deck.CustomDeck, "1000") - deck.CustomDeck[newDeckId] = customDeckData - end - -- Update the card with the new CustomDeck info - cardData.CardID = newDeckId..string.sub(cardData.CardID, 5) - cardData.CustomDeck[customDeckId] = nil - cardData.CustomDeck[newDeckId] = customDeckData - break - end - end - table.insert(deck.ContainedObjects, cardData) - table.insert(deck.DeckIDs, cardData.CardID) -end - --- Create an empty deck data table which can have cards added to it. This --- creates a new table on each call without using metatables or previous --- definitions because we can't be sure that TTS doesn't modify the structure ----@return: Table containing the minimal TTS deck data structure -Spawner.buildDeckDataTemplate = function() - local deck = {} - deck.Name = "Deck" - - -- Card data. DeckIDs and CustomDeck entries will be built from the cards - deck.ContainedObjects = {} - deck.DeckIDs = {} - deck.CustomDeck = {} - - -- Transform is required, Position and Rotation will be overridden by the spawn call so can be omitted here - deck.Transform = { - scaleX = 1, - scaleY = 1, - scaleZ = 1, - } - - return deck -end - --- Returns the first ID which does not exist in the given table, starting at startId and increasing --- @param objectTable Table keyed by strings which are numbers --- @param startId First possible ID. --- @return String ID >= startId -Spawner.findNextAvailableId = function(objectTable, startId) - local id = startId - while (objectTable[id] ~= nil) do - id = tostring(tonumber(id) + 1) - end - - return id -end - --- Get the PBCN (Permanent/Bonded/Customizable/Normal) value from the given metadata. ----@return: 1 for Permanent, 2 for Bonded or 4 for Normal. The actual values are --- irrelevant as they provide only grouping and the order between them doesn't matter. -Spawner.getpbcn = function(metadata) - if metadata.permanent then - return 1 - elseif metadata.bonded_to ~= nil then - return 2 - else -- Normal card - return 3 - end -end - --- Comparison function used to sort the cards in a deck. Groups bonded or --- permanent cards first, then sorts within theose types by name/subname. --- Normal cards will sort in standard alphabetical order, while --- permanent/bonded/customizable will be in reverse alphabetical order. --- --- Since cards spawn in the order provided by this comparator, with the first --- cards ending up at the bottom of a pile, this ordering will spawn in reverse --- alphabetical order. This presents the cards in order for non-face-down --- areas, and presents them in order when Searching the face-down deck. -Spawner.cardComparator = function(card1, card2) - local pbcn1 = Spawner.getpbcn(card1.metadata) - local pbcn2 = Spawner.getpbcn(card2.metadata) - if pbcn1 ~= pbcn2 then - return pbcn1 > pbcn2 - end - if pbcn1 == 3 then - if card1.data.Nickname ~= card2.data.Nickname then - return card1.data.Nickname < card2.data.Nickname - end - return card1.data.Description < card2.data.Description - else - if card1.data.Nickname ~= card2.data.Nickname then - return card1.data.Nickname > card2.data.Nickname - end - return card1.data.Description > card2.data.Description - end -end -end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) @@ -1332,8 +2082,8 @@ __bundle_register("playermat/Zones", function(require, _LOADED, __bundle_registe -- Investigator: Investigator card area. -- Minicard: Placement for the investigator's minicard, just above the player mat -- Deck, Discard: Standard locations for the deck and discard piles. --- BlankTop: used for assets that start in play (e.g. Duke) --- Tarot, Hand1, Hand2, Ally, BlankBottom, Accessory, Arcane1, Arcane2, Body: Asset slot positions +-- Blank1: used for assets that start in play (e.g. Duke) +-- Tarot, Hand1, Hand2, Ally, Blank4, Accessory, Arcane1, Arcane2, Body: Asset slot positions -- Threat[1-4]: Threat area slots. Threat[1-3] correspond to the named threat area slots, and Threat4 is the blank threat area slot. -- SetAside[1-3]: Column closest to the player mat, with 1 at the top and 3 at the bottom. -- SetAside[4-6]: Column farther away from the mat, with 4 at the top and 6 at the bottom. @@ -1344,32 +2094,31 @@ __bundle_register("playermat/Zones", function(require, _LOADED, __bundle_registe -- SetAside5: Hunch Deck for Joe Diamond -- SetAside6: currently unused do + local playmatApi = require("playermat/PlaymatApi") local Zones = { } - local playerMatGuids = {} - playerMatGuids["Red"] = "0840d5" - playerMatGuids["Orange"] = "bd0ff4" - playerMatGuids["White"] = "8b081b" - playerMatGuids["Green"] = "383d8b" - local commonZones = {} - commonZones["Investigator"] = { -1.17702, 0, 0.00209 } - commonZones["Deck"] = { -1.822724, 0, -0.02940192 } - commonZones["Discard"] = { -1.822451, 0, 0.6092291 } - commonZones["Ally"] = { -0.6157398, 0, 0.02435675 } - commonZones["Body"] = { -0.6306521, 0, 0.553170 } - commonZones["Hand1"] = { 0.2155387, 0, 0.04257287 } - commonZones["Hand2"] = { -0.1803701, 0, 0.03745948 } - commonZones["Arcane1"] = { 0.2124223, 0, 0.5596902 } - commonZones["Arcane2"] = { -0.1711275, 0, 0.5567944 } - commonZones["Tarot"] = { 0.6016169, 0, 0.03273106 } - commonZones["Accessory"] = { 0.6049907, 0, 0.5546234 } - commonZones["BlankTop"] = { 1.758446, 0, 0.03965336 } - commonZones["BlankBottom"] = { 1.754469, 0, 0.5634764 } - commonZones["Threat1"] = { -0.9116555, 0, -0.6446251 } - commonZones["Threat2"] = { -0.4544126, 0, -0.6428719 } - commonZones["Threat3"] = { 0.002246313, 0, -0.6430681 } - commonZones["Threat4"] = { 0.4590618, 0, -0.6432732 } + commonZones["Investigator"] = { -1.177, 0, 0.002 } + commonZones["Deck"] = { -1.82, 0, 0 } + commonZones["Discard"] = { -1.82, 0, 0.61 } + commonZones["Ally"] = { -0.615, 0, 0.024 } + commonZones["Body"] = { -0.630, 0, 0.553 } + commonZones["Hand1"] = { 0.215, 0, 0.042 } + commonZones["Hand2"] = { -0.180, 0, 0.037 } + commonZones["Arcane1"] = { 0.212, 0, 0.559 } + commonZones["Arcane2"] = { -0.171, 0, 0.557 } + commonZones["Tarot"] = { 0.602, 0, 0.033 } + commonZones["Accessory"] = { 0.602, 0, 0.555 } + commonZones["Blank1"] = { 1.758, 0, 0.040 } + commonZones["Blank2"] = { 1.754, 0, 0.563 } + commonZones["Blank3"] = { 1.371, 0, 0.038 } + commonZones["Blank4"] = { 1.371, 0, 0.558 } + commonZones["Blank5"] = { 0.98, 0, 0.035 } + commonZones["Blank6"] = { 0.977, 0, 0.556 } + commonZones["Threat1"] = { -0.911, 0, -0.625 } + commonZones["Threat2"] = { -0.454, 0, -0.625 } + commonZones["Threat3"] = { 0.002, 0, -0.625 } + commonZones["Threat4"] = { 0.459, 0, -0.625 } local zoneData = {} zoneData["White"] = {} @@ -1384,21 +2133,25 @@ do zoneData["White"]["Arcane2"] = commonZones["Arcane2"] zoneData["White"]["Tarot"] = commonZones["Tarot"] zoneData["White"]["Accessory"] = commonZones["Accessory"] - zoneData["White"]["BlankTop"] = commonZones["BlankTop"] - zoneData["White"]["BlankBottom"] = commonZones["BlankBottom"] + zoneData["White"]["Blank1"] = commonZones["Blank1"] + zoneData["White"]["Blank2"] = commonZones["Blank2"] + zoneData["White"]["Blank3"] = commonZones["Blank3"] + zoneData["White"]["Blank4"] = commonZones["Blank4"] + zoneData["White"]["Blank5"] = commonZones["Blank5"] + zoneData["White"]["Blank6"] = commonZones["Blank6"] zoneData["White"]["Threat1"] = commonZones["Threat1"] zoneData["White"]["Threat2"] = commonZones["Threat2"] zoneData["White"]["Threat3"] = commonZones["Threat3"] zoneData["White"]["Threat4"] = commonZones["Threat4"] zoneData["White"]["Minicard"] = { -1, 0, -1.45 } - zoneData["White"]["SetAside1"] = { 2.345893, 0, -0.520315 } - zoneData["White"]["SetAside2"] = { 2.345893, 0, 0.042552 } - zoneData["White"]["SetAside3"] = { 2.345893, 0, 0.605419 } - zoneData["White"]["UnderSetAside3"] = { 2.495893, 0, 0.805419 } - zoneData["White"]["SetAside4"] = { 2.775893, 0, -0.520315 } - zoneData["White"]["SetAside5"] = { 2.775893, 0, 0.042552 } - zoneData["White"]["SetAside6"] = { 2.775893, 0, 0.605419 } - zoneData["White"]["UnderSetAside6"] = { 2.925893, 0, 0.805419 } + zoneData["White"]["SetAside1"] = { 2.35, 0, -0.520 } + zoneData["White"]["SetAside2"] = { 2.35, 0, 0.042 } + zoneData["White"]["SetAside3"] = { 2.35, 0, 0.605 } + zoneData["White"]["UnderSetAside3"] = { 2.50, 0, 0.805 } + zoneData["White"]["SetAside4"] = { 2.78, 0, -0.520 } + zoneData["White"]["SetAside5"] = { 2.78, 0, 0.042 } + zoneData["White"]["SetAside6"] = { 2.78, 0, 0.605 } + zoneData["White"]["UnderSetAside6"] = { 2.93, 0, 0.805 } zoneData["Orange"] = {} zoneData["Orange"]["Investigator"] = commonZones["Investigator"] @@ -1412,21 +2165,25 @@ do zoneData["Orange"]["Arcane2"] = commonZones["Arcane2"] zoneData["Orange"]["Tarot"] = commonZones["Tarot"] zoneData["Orange"]["Accessory"] = commonZones["Accessory"] - zoneData["Orange"]["BlankTop"] = commonZones["BlankTop"] - zoneData["Orange"]["BlankBottom"] = commonZones["BlankBottom"] + zoneData["Orange"]["Blank1"] = commonZones["Blank1"] + zoneData["Orange"]["Blank2"] = commonZones["Blank2"] + zoneData["Orange"]["Blank3"] = commonZones["Blank3"] + zoneData["Orange"]["Blank4"] = commonZones["Blank4"] + zoneData["Orange"]["Blank5"] = commonZones["Blank5"] + zoneData["Orange"]["Blank6"] = commonZones["Blank6"] zoneData["Orange"]["Threat1"] = commonZones["Threat1"] zoneData["Orange"]["Threat2"] = commonZones["Threat2"] zoneData["Orange"]["Threat3"] = commonZones["Threat3"] zoneData["Orange"]["Threat4"] = commonZones["Threat4"] zoneData["Orange"]["Minicard"] = { 1, 0, -1.45 } - zoneData["Orange"]["SetAside1"] = { -2.350362, 0, -0.520315 } - zoneData["Orange"]["SetAside2"] = { -2.350362, 0, 0.042552 } - zoneData["Orange"]["SetAside3"] = { -2.350362, 0, 0.605419 } - zoneData["Orange"]["UnderSetAside3"] = { -2.500362, 0, 0.80419 } - zoneData["Orange"]["SetAside4"] = { -2.7803627, 0, -0.520315 } - zoneData["Orange"]["SetAside5"] = { -2.7803627, 0, 0.042552 } - zoneData["Orange"]["SetAside6"] = { -2.7803627, 0, 0.605419 } - zoneData["Orange"]["UnderSetAside6"] = { -2.9303627, 0, 0.80419 } + zoneData["Orange"]["SetAside1"] = { -2.35, 0, -0.520 } + zoneData["Orange"]["SetAside2"] = { -2.35, 0, 0.042} + zoneData["Orange"]["SetAside3"] = { -2.35, 0, 0.605 } + zoneData["Orange"]["UnderSetAside3"] = { -2.50, 0, 0.805 } + zoneData["Orange"]["SetAside4"] = { -2.78, 0, -0.520 } + zoneData["Orange"]["SetAside5"] = { -2.78, 0, 0.042 } + zoneData["Orange"]["SetAside6"] = { -2.78, 0, 0.605 } + zoneData["Orange"]["UnderSetAside6"] = { -2.93, 0, 0.805 } -- Green positions are the same as White and Red the same as Orange zoneData["Red"] = zoneData["Orange"] @@ -1443,467 +2200,66 @@ do and playerColor ~= "Green") then return nil end - return getObjectFromGUID(playerMatGuids[playerColor]).positionToWorld(zoneData[playerColor][zoneName]) + return playmatApi.transformLocalPosition(zoneData[playerColor][zoneName], playerColor) end - -- Return the global rotation for a card on the given player mat, based on its metadata. + -- Return the global rotation for a card on the given player mat, based on its zone. ---@param playerColor: Color name of the player mat to get the rotation for (e.g. "Red") - ---@param cardMetadata: Table of card metadata. Metadata fields type and permanent are required; all others are optional. + ---@param zoneName: Name of the zone. See Zones object documentation for a list of valid zones. ---@return: Global rotation vector for the given card. This will include the -- Y rotation to orient the card on the given player mat as well as a -- Z rotation to place the card face up or face down. - Zones.getDefaultCardRotation = function(playerColor, zone) - local deckRotation = getObjectFromGUID(playerMatGuids[playerColor]).getRotation() - - if zone == "Deck" then - deckRotation = deckRotation + Vector(0, 0, 180) + Zones.getDefaultCardRotation = function(playerColor, zoneName) + local cardRotation = playmatApi.returnRotation(playerColor) + if zoneName == "Deck" then + cardRotation = cardRotation + Vector(0, 0, 180) end - - return deckRotation + return cardRotation end return Zones end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("arkhamdb/DeckImporterMain") -end) -__bundle_register("arkhamdb/DeckImporterMain", function(require, _LOADED, __bundle_register, __bundle_modules) -require("arkhamdb/DeckImporterUi") -require("playercards/PlayerCardSpawner") +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} -local playmatApi = require("playermat/PlaymatApi") -local playAreaApi = require("core/PlayAreaApi") -local arkhamDb = require("arkhamdb/ArkhamDb") -local zones = require("playermat/Zones") - -local ALL_CARDS_GUID = "15bb07" - -function onLoad(script_state) - initializeUi(JSON.decode(script_state)) - math.randomseed(os.time()) - arkhamDb.initialize() -end - -function arkhamdb_reinit() - arkhamDb.initialize() -end - -function onSave() return JSON.encode(getUiState()) end - --- Returns the zone name where the specified card should be placed, based on its metadata. ----@param cardMetadata Table of card metadata. ----@return Zone String Name of the zone such as "Deck", "SetAside1", etc. --- See Zones object documentation for a list of valid zones. -function getDefaultCardZone(cardMetadata, bondedList) - if (cardMetadata.id == "09080-m") then -- Have to check the Servitor before other minicards - return "SetAside6" - elseif (cardMetadata.id == "09006") then -- On The Mend is set aside - return "SetAside2" - elseif cardMetadata.type == "Investigator" then - return "Investigator" - elseif cardMetadata.type == "Minicard" then - return "Minicard" - elseif cardMetadata.type == "UpgradeSheet" then - return "SetAside4" - elseif cardMetadata.startsInPlay then - return "BlankTop" - elseif cardMetadata.permanent then - return "SetAside1" - elseif bondedList[cardMetadata.id] then - return "SetAside2" - -- SetAside3 is used for Ancestral Knowledge / Underworld Market - else - return "Deck" - end -end - -function buildDeck(playerColor, deckId) - local uiState = getUiState() - arkhamDb.getDecklist( - playerColor, - deckId, - uiState.private, - uiState.loadNewest, - uiState.investigators, - loadCards) -end - --- Process the slot list, which defines the card Ids and counts of cards to load. Spawn those cards --- at the appropriate zones and report an error to the user if any could not be loaded. --- This is a callback function which handles the results of ArkhamDb.getDecklist() --- This method uses an encapsulated coroutine with yields to make the card spawning cleaner. --- ----@param slots Table Key-Value table of cardId:count. cardId is the ArkhamDB ID of the card to spawn, --- and count is the number which should be spawned ----@param investigatorId String ArkhamDB ID (code) for this deck's investigator. --- Investigator cards should already be added to the slots list if they --- should be spawned, but this value is separate to check for special --- handling for certain investigators ----@param bondedList Table A table of cardID keys to meaningless values. Card IDs in this list were added --- from a parent bonded card. ----@param customizations String ArkhamDB data for customizations on customizable cards ----@param playerColor String Color name of the player mat to place this deck on (e.g. "Red") ----@param loadAltInvestigator String Contains the name of alternative art for the investigator ("normal", "revised" or "promo") -function loadCards(slots, investigatorId, bondedList, customizations, playerColor, loadAltInvestigator) - function coinside() - local allCardsBag = getObjectFromGUID(ALL_CARDS_GUID) - local yPos = {} - local cardsToSpawn = {} - for cardId, cardCount in pairs(slots) do - local card = allCardsBag.call("getCardById", { id = cardId }) - if card ~= nil then - local cardZone = getDefaultCardZone(card.metadata, bondedList) - for i = 1, cardCount do - table.insert(cardsToSpawn, { data = card.data, metadata = card.metadata, zone = cardZone }) - end - - slots[cardId] = 0 - end - end - - handleAncestralKnowledge(cardsToSpawn) - handleUnderworldMarket(cardsToSpawn, playerColor) - handleHunchDeck(investigatorId, cardsToSpawn, playerColor) - handleCustomizableUpgrades(cardsToSpawn, customizations) - handlePeteSignatureAssets(investigatorId, cardsToSpawn) - - -- Split the card list into separate lists for each zone - local zoneDecks = buildZoneLists(cardsToSpawn) - -- Spawn the list for each zone - for zone, zoneCards in pairs(zoneDecks) do - local deckPos = zones.getZonePosition(playerColor, zone) - deckPos.y = 3 - - local callback = nil - -- If cards are spread too close together TTS groups them weirdly, selecting multiples - -- when hovering over a single card. This distance is the minimum to avoid that - local spreadDistance = 1.15 - if (zone == "SetAside4") then - -- SetAside4 is reserved for customization cards, and we want them spread on the table - -- so their checkboxes are visible - -- TO-DO: take into account that spreading will make multiple rows - -- (this is affected by the user's local settings!) - if (playerColor == "White") then - deckPos.z = deckPos.z + (#zoneCards - 1) * spreadDistance - elseif (playerColor == "Green") then - deckPos.x = deckPos.x + (#zoneCards - 1) * spreadDistance - end - callback = function(deck) deck.spread(spreadDistance) end - elseif zone == "Deck" then - callback = function(deck) deckSpawned(deck, playerColor) end - elseif zone == "Investigator" or zone == "Minicard" then - callback = function(card) loadAltArt(card, loadAltInvestigator) end - end - Spawner.spawnCards( - zoneCards, - deckPos, - zones.getDefaultCardRotation(playerColor, zone), - true, -- Sort deck - callback) - - coroutine.yield(0) - end - - -- Look for any cards which haven't been loaded - local hadError = false - for cardId, remainingCount in pairs(slots) do - if remainingCount > 0 then - hadError = true - arkhamDb.logCardNotFound(cardId, playerColor) - end - end - if (not hadError) then - printToAll("Deck loaded successfully!", playerColor) - end - return 1 + local function getGuidHandler() + return getObjectFromGUID("123456") end - startLuaCoroutine(self, "coinside") -end - --- Callback handler for the main deck spawning. Looks for cards which should start in hand, and --- draws them for the appropriate player. ----@param deck Object Callback-provided spawned deck object ----@param playerColor String Color of the player to draw the cards to -function deckSpawned(deck, playerColor) - local player = Player[playmatApi.getPlayerColor(playerColor)] - local handPos = player.getHandTransform(1).position -- Only one hand zone per player - local deckCards = deck.getData().ContainedObjects - -- Process in reverse order so taking cards out doesn't upset the indexing - for i = #deckCards, 1, -1 do - local cardMetadata = JSON.decode(deckCards[i].GMNotes) or { } - if cardMetadata.startsInHand then - deck.takeObject({ index = i - 1, position = handPos, flip = true, smooth = true}) - end - end -end - --- Converts the Raven Quill's selections from card IDs to card names. This could be more elegant --- but the inputs are very static so we're using some brute force. ----@param selectionString String provided by ArkhamDB, indicates the customization selections --- Should be either a single card ID or two separated by a ^ (e.g. XXXXX^YYYYY) -function convertRavenQuillSelections(selectionString) - if (string.len(selectionString) == 5) then - return getCardName(selectionString) - elseif (string.len(selectionString) == 11) then - return getCardName(string.sub(selectionString, 1, 5)) .. ", " .. getCardName(string.sub(selectionString, 7)) - end -end - --- Converts Grizzled's selections from a single string with "^". ----@param selectionString String provided by ArkhamDB, indicates the customization selections --- Should be two Traits separated by a ^ (e.g. XXXXX^YYYYY) -function convertGrizzledSelections(selectionString) - return selectionString:gsub("%^", ", ") -end - --- Returns the simple name of a card given its ID. This will find the card and strip any trailing --- SCED-specific suffixes such as (Taboo) or (Level) -function getCardName(cardId) - local allCardsBag = getObjectFromGUID(ALL_CARDS_GUID) - local card = allCardsBag.call("getCardById", { id = cardId }) - if (card ~= nil) then - local name = card.data.Nickname - if (string.find(name, " %(")) then - return string.sub(name, 1, string.find(name, " %(") - 1) - else - return name - end - end -end - --- Split a single list of cards into a separate table of lists, keyed by the zone ----@param cards: Table of {cardData, cardMetadata, zone} ----@return: Table of {zoneName=card list} -function buildZoneLists(cards) - local zoneList = {} - for _, card in ipairs(cards) do - if zoneList[card.zone] == nil then - zoneList[card.zone] = {} - end - table.insert(zoneList[card.zone], card) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type) + return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) end - return zoneList -end - --- Check to see if the deck list has Ancestral Knowledge. If it does, move 5 random skills to SetAside3 ----@param cardList Table Deck list being created -function handleAncestralKnowledge(cardList) - local hasAncestralKnowledge = false - local skillList = {} - -- Have to process the entire list to check for Ancestral Knowledge and get all possible skills, so do both in one pass - for i, card in ipairs(cardList) do - if card.metadata.id == "07303" then - hasAncestralKnowledge = true - card.zone = "SetAside3" - elseif (card.metadata.type == "Skill" - and card.zone == "Deck" - and not card.metadata.weakness) then - table.insert(skillList, i) - end - end - if hasAncestralKnowledge then - for i = 1, 5 do - -- Move 5 random skills to SetAside3 - local skillListIndex = math.random(#skillList) - cardList[skillList[skillListIndex]].zone = "UnderSetAside3" - table.remove(skillList, skillListIndex) - end - end -end - --- Check for and handle Underworld Market by moving all Illicit cards to UnderSetAside3 ----@param cardList Table Deck list being created ----@param playerColor String Color this deck is being loaded for -function handleUnderworldMarket(cardList, playerColor) - local hasMarket = false - local illicitList = {} - -- Process the entire list to check for Underworld Market and get all possible skills, doing both in one pass - for i, card in ipairs(cardList) do - if card.metadata.id == "09077" then - -- Underworld Market found - hasMarket = true - card.zone = "SetAside3" - elseif card.metadata.traits ~= nil and string.find(card.metadata.traits, "Illicit", 1, true) and card.zone == "Deck" then - table.insert(illicitList, i) - end + -- returns all matching objects as a table with references + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectsByType = function(type) + return getGuidHandler().call("getObjectsByType", type) end - if hasMarket then - if #illicitList < 10 then - printToAll("Only " .. #illicitList .. - " Illicit cards in your deck, you can't trigger Underworld Market's ability.", - playerColor) - else - -- Process cards to move them to the market deck. This is done in reverse - -- order because the sorting needs to be reversed (deck sorts for face down) - -- Performance here may be an issue, as table.remove() is an O(n) operation - -- which makes the full shift O(n^2). But keep it simple unless it becomes - -- a problem - for i = #illicitList, 1, -1 do - local moving = cardList[illicitList[i]] - moving.zone = "UnderSetAside3" - table.remove(cardList, illicitList[i]) - table.insert(cardList, moving) - end - - if #illicitList > 10 then - printToAll("Moved all " .. #illicitList .. - " Illicit cards to the Market deck, reduce it to 10", - playerColor) - else - printToAll("Built the Market deck", playerColor) - end - end + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + GUIDReferenceApi.getObjectsByOwner = function(owner) + return getGuidHandler().call("getObjectsByOwner", owner) end -end --- If the investigator is Joe Diamond, extract all Insight events to SetAside5 to build the Hunch --- Deck. ----@param investigatorId String ID for the deck's investigator card. Passed separately because the ---- investigator may not be included in the cardList ----@param cardList Table Deck list being created ----@param playerColor String Color this deck is being loaded for -function handleHunchDeck(investigatorId, cardList, playerColor) - if investigatorId == "05002" then -- Joe Diamond - local insightList = {} - for i, card in ipairs(cardList) do - if (card.metadata.type == "Event" - and card.metadata.traits ~= nil - and string.match(card.metadata.traits, "Insight") - and card.metadata.bonded_to == nil) then - table.insert(insightList, i) - end - end - -- Process insights to move them to the hunch deck. This is done in reverse - -- order because the sorting needs to be reversed (deck sorts for face down) - -- Performance here may be an issue, as table.remove() is an O(n) operation - -- which makes the full shift O(n^2). But keep it simple unless it becomes - -- a problem - for i = #insightList, 1, -1 do - local moving = cardList[insightList[i]] - moving.zone = "SetAside5" - table.remove(cardList, insightList[i]) - table.insert(cardList, moving) - end - if #insightList < 11 then - printToAll("Joe's hunch deck must have 11 cards but the deck only has " .. #insightList .. - " Insight events.", playerColor) - elseif #insightList > 11 then - printToAll("Moved all " .. #insightList .. - " Insight events to the hunch deck, reduce it to 11.", playerColor) - else - printToAll("Built Joe's hunch deck", playerColor) - 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 -end --- For any customization upgrade cards in the card list, process the metadata from the deck to --- set the save state to show the correct checkboxes/text field values ----@param cardList Table Deck list being created ----@param customizations Table Deck's meta table, extracted from ArkhamDB's deck structure -function handleCustomizableUpgrades(cardList, customizations) - for _, card in ipairs(cardList) do - if card.metadata.type == "UpgradeSheet" then - local baseId = string.sub(card.metadata.id, 1, 5) - local upgrades = customizations["cus_" .. baseId] - - if upgrades ~= nil then - -- initialize tables - -- markedBoxes: contains the amount of markedBoxes (left to right) per row (starting at row 1) - -- inputValues: contains the amount of inputValues per row (starting at row 0) - local selectedUpgrades = { } - local index_xp = {} - - -- get the index and xp values (looks like this: X|X,X|X, ..) - -- input string from ArkhamDB is split by "," - for str in string.gmatch(customizations["cus_" .. baseId], "([^,]+)") do - table.insert(index_xp, str) - end - - -- split each pair and assign it to the proper position in markedBoxes - for _, entry in ipairs(index_xp) do - -- counter increments from 1 to 3 and indicates the part of the string we are on - -- usually: 1 = row, 2 = amount of check boxes, 3 = entry in inputfield - local counter = 0 - local row = 0 - - -- parsing the string for each row - for str in entry:gmatch("([^|]+)") do - counter = counter + 1 - - if counter == 1 then - row = tonumber(str) + 1 - elseif counter == 2 then - if selectedUpgrades[row] == nil then - selectedUpgrades[row] = { } - end - selectedUpgrades[row].xp = tonumber(str) - elseif counter == 3 and str ~= "" then - if baseId == "09042" then - selectedUpgrades[row].text = convertRavenQuillSelections(str) - elseif baseId == "09101" then - selectedUpgrades[row].text = convertGrizzledSelections(str) - elseif baseId == "09079" then -- Living Ink skill selection - -- All skills, regardless of row, are placed in upgrade slot 1 as a comma-delimited - -- list - if selectedUpgrades[1].text == nil then - selectedUpgrades[1].text = str - else - selectedUpgrades[1].text = selectedUpgrades[1].text .. "," .. str - end - else - selectedUpgrades[row].text = str - end - end - end - end - - -- write the loaded values to the save_data of the sheets - card.data["LuaScriptState"] = JSON.encode({ selections = selectedUpgrades }) - end - end - end -end - --- Handles cards that start in play under specific conditions for Ashcan Pete (Regular Pete - Duke, Parallel Pete - Guitar) ----@param investigatorId String ID for the deck's investigator card. Passed separately because the ---- investigator may not be included in the cardList ----@param cardList Table Deck list being created -function handlePeteSignatureAssets(investigatorId, cardList) - log(investigatorId) - if investigatorId == "02005" or investigatorId == "02005-pb" then -- regular Pete's front - for i, card in ipairs(cardList) do - if card.metadata.id == "02014" then -- Duke - card.zone = "BlankTop" - end - end - elseif investigatorId == "02005-p" or investigatorId == "02005-pf" then -- parallel Pete's front - for i, card in ipairs(cardList) do - if card.metadata.id == "90047" then -- Pete's Guitar - card.zone = "BlankTop" - end - end - end -end - --- Callback function for investigator cards and minicards to set the correct state for alt art ----@param card Object Card which needs to be set the state for ----@param loadAltInvestigator String Contains the name of alternative art for the investigator ("normal", "revised" or "promo") -function loadAltArt(card, loadAltInvestigator) - -- states are set up this way: - -- 1 - normal, 2 - revised/promo, 3 - promo (if 2 is revised) - -- This means we can always load the 2nd state for revised and just get the last state for promo - if loadAltInvestigator == "normal" then - return - elseif loadAltInvestigator == "revised" then - card.setState(2) - elseif loadAltInvestigator == "promo" then - local states = card.getStates() - card.setState(#states) - end + return GUIDReferenceApi end end) return __bundle_require("__root") diff --git a/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.yaml b/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.yaml index 0f7baacdc..cc5acda5c 100644 --- a/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.yaml +++ b/unpacked/Custom_Tile ArkhamDB Deck Importer a28140.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/wDp1Woo.jpg - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -39,12 +39,12 @@ Tooltip: false Transform: posX: -17.5 posY: 1.48 - posZ: 71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 10.0 - scaleY: 1.0 - scaleZ: 10.0 + posZ: 71 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 10 + scaleY: 1 + scaleZ: 10 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.ttslua b/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.ttslua index d4226b995..1324b445e 100644 --- a/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.ttslua +++ b/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.ttslua @@ -41,13 +41,19 @@ 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("accessories/CampaignImporterExporter") -end) __bundle_register("accessories/CampaignImporterExporter", function(require, _LOADED, __bundle_register, __bundle_modules) +local blessCurseApi = require("chaosbag/BlessCurseManagerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") +local deckImporterApi = require("arkhamdb/DeckImporterApi") +local guidReferenceApi = require("core/GUIDReferenceApi") +local optionPanelApi = require("core/OptionPanelApi") +local playAreaApi = require("core/PlayAreaApi") +local playmatApi = require("playermat/PlaymatApi") + +local checkWarning = true + local campaignTokenData = { - GUID = "51b1c9", - Name = "Custom_Model", + Name = "Custom_Model_Bag", Transform = { posX = -21.25, posY = 1.68, @@ -59,9 +65,7 @@ local campaignTokenData = { scaleY = 2, scaleZ = 2 }, - Nickname = "Arkham Coin", Description = "SCED Importer Token", - GMNotes = "", Tags = { "ImporterToken" }, @@ -72,361 +76,477 @@ local campaignTokenData = { ColliderURL = "http://cloud-3.steamusercontent.com/ugc/943949966265929204/A38BB5D72419E6298385556D931877C0A1A55C17/", Convex = true, MaterialIndex = 2, - TypeIndex = 0, + TypeIndex = 6, CustomShader = { - SpecularColor = { - r = 0.7222887, - g = 0.507659256, - b = 0.339915335 - }, - SpecularIntensity = 0.4, - SpecularSharpness = 7.0, - FresnelStrength = 0.0 + SpecularColor = { + r = 0.7222887, + g = 0.507659256, + b = 0.339915335 + }, + SpecularIntensity = 0.4, + SpecularSharpness = 7.0, + FresnelStrength = 0.0 }, CastShadows = true } } +local COLORS = { "White", "Orange", "Green", "Red" } --- counter GUIDS (4x damage and 4x horror) -local DAMAGE_HORROR_GUIDS = { - "eb08d6"; "e64eec"; "1f5a0a"; "591a45"; - "468e88"; "0257d9"; "7b5729"; "beb964"; - } - -local chaosBagApi = require("chaosbag/ChaosBagApi") -local playAreaApi = require("core/PlayAreaApi") -local deckImporterApi = require("arkhamdb/DeckImporterApi") -local optionPanelApi = require("core/OptionPanelApi") -local blessCurseApi = require("chaosbag/BlessCurseManagerApi") - -local TOUR_GUID = "0e5aa8" - -local campaignBoxGUID - -function onLoad(save_state) - campaignBoxGUID = "" - - self.createButton({ - click_function = "findCampaignFromToken", - function_owner = self, - label = "Import", - tooltip = "Load in a campaign save from a token!\n\n(Token can be anywhere on the table, but ensure there is only 1!)", - position = {x=-1, y=0.2, z=0}, - font_size = 400, - width = 1400, - height = 600, - scale = {0.5, 1, 0.5}, - }) +function onLoad() self.createButton({ click_function = "createCampaignToken", function_owner = self, label = "Export", - tooltip = "Create a campaign save token!\n\n(Ensure all chaos tokens have been unsealed!)", - position = {x=1, y=0.2, z=0}, + tooltip = "Create a campaign save token!", + position = { x = -1, y = 0.21, z = 0 }, font_size = 400, width = 1400, height = 600, - scale = {0.5, 1, 0.5}, + scale = { 0.5, 1, 0.5 }, }) end --- The main import functions. Due to timing concerns, has to be split up into several separate methods to allow for Wait conditions - --- Identifies import token, determines campaign box and downloads it (if needed) -function findCampaignFromToken(_, _, _) - local coin = nil - local coinObjects = getObjectsWithTag("ImporterToken") - if #coinObjects == 0 then - broadcastToAll("Could not find importer token", Color.Red) - elseif #coinObjects > 1 then - broadcastToAll("More than 1 importer token found. Please delete all but 1 importer token", Color.Yellow) - else - coin = coinObjects[1] - local importData = JSON.decode(coin.getGMNotes()) - campaignBoxGUID = importData["box"] - local campaignBox = getObjectFromGUID(campaignBoxGUID) - if campaignBox.type == "Generic" then - campaignBox.call("buttonClick_download") - end - Wait.condition( - function() - if #campaignBox.getObjects() > 0 then - placeCampaignFromToken(importData) - else - createCampaignFromToken(importData) - end - end, - function() - local obj = getObjectFromGUID(campaignBoxGUID) - if obj == nil then - return false - else - return obj.type == "Bag" and obj.getLuaScript() ~= "" - end - end, - 2, - function() broadcastToAll("Error loading campaign box") end - ) +function onObjectLeaveContainer(container, object) + if container.hasTag("ImporterToken") and checkWarning then + broadcastToAll( + "Removing objects from the Save Coin bag will break functionality. Please replace the objects in the same order they were removed.", + Color.Yellow + ) end end --- After box has been downloaded, places content on table -function placeCampaignFromToken(importData) - getObjectFromGUID(campaignBoxGUID).call("buttonClick_place") +function onObjectEnterContainer(container, object) + if container.hasTag("ImporterToken") and checkWarning then + broadcastToAll( + "Adding objects to the Save Coin bag will break functionality. Please remove the objects.", + Color.Yellow + ) + end +end + +--------------------------------------------------------- +-- main import functions (split up to allow for Wait conditions) +--------------------------------------------------------- + +function onCollisionEnter(info) + if info.collision_object.hasTag("ImporterToken") then + importFromToken(info.collision_object) + end +end + +-- Identifies import token, determines campaign box and downloads it (if needed) +function importFromToken(coin) + broadcastToAll("Campaign Import Initiated") + local importData = JSON.decode(coin.getGMNotes()) + + local campaignBoxGUID = importData["box"] + local campaignBox = getObjectFromGUID(campaignBoxGUID) + if not campaignBox then + broadcastToAll("Campaign Box not present on table!", Color.Red) + return + end + if campaignBox.type == "Generic" then + campaignBox.call("buttonClick_download") + end Wait.condition( - function() createCampaignFromToken(importData) end, - function() return findCampaignLog() ~= nil end, + function() + if #campaignBox.getObjects() > 0 then + placeCampaignFromToken(importData, coin) + else + restoreCampaignData(importData, coin) + end + end, + function() + local obj = getObjectFromGUID(campaignBoxGUID) + if obj == nil then + return false + else + return obj.type == "Bag" and obj.getLuaScript() ~= "" + end + end, + 2, + function() broadcastToAll("Error loading campaign box") end + ) +end + +-- After box has been downloaded, places content on table +function placeCampaignFromToken(importData, coin) + getObjectFromGUID(importData["box"]).call("buttonClick_place") + Wait.condition( + function() restoreCampaignData(importData, coin) end, + function() return findUniqueObjectWithTag("CampaignLog") ~= nil end, 2, function() broadcastToAll("Error placing campaign box") end ) end -- After content is placed on table, conducts all the other import operations -function createCampaignFromToken(importData) - findCampaignLog().destruct() - --create campaign log - spawnObjectData({data = importData["log"]}) - --create chaos bag - chaosBagApi.setChaosBagState(importData["bag"]) - --populate trauma values - if importData["trauma"] then - updateCounters(importData["trauma"]) +function restoreCampaignData(importData, coin) + + checkWarning = false + if importData["additionalIndex"] then + guidReferenceApi.getObjectByOwnerAndType("Mythos", "AdditionalPlayerCardsBag").destruct() + if coin.type == "Bag" then + coin.takeObject({index = 0, position = importData["additionalIndex"], callback_function = function(obj) obj.setLock(true) end}) + else + spawnObjectJSON({json = importData["additionalIndex"]}) + end end - --populate ArkhamDB deck IDs + + -- destroy existing campaign log and load saved campaign log + findUniqueObjectWithTag("CampaignLog").destruct() + if coin.type == "Bag" then + local newLog = coin.takeObject({index = 0, position = importData["log"], callback_function = function(obj) obj.setLock(true) end}) + else + spawnObjectData({ data = importData["log"] }) + end + + coin.destruct() + checkWarning = true + + chaosBagApi.setChaosBagState(importData["bag"]) + + -- populate trauma values + if importData["trauma"] then + setTrauma(importData["trauma"]) + end + + -- populate ArkhamDB deck IDs if importData["decks"] then deckImporterApi.setUiState(importData["decks"]) end - --set investigator count + playAreaApi.setInvestigatorCount(importData["clueCount"]) - --set campaign guide page - local guide = findCampaignGuide() + + -- set campaign guide page + local guide = findUniqueObjectWithTag("CampaignGuide") if guide then Wait.condition( - -- Called after the condition function returns true - function() - log("Campaign Guide import successful!") - end, - -- Condition function that is called continiously until returs true or timeout is reached - function() - guide.Book.setPage(importData["guide"]) - return guide.Book.getPage() == importData["guide"] - end, + -- Called after the condition function returns true + function() log("Campaign Guide import successful!") end, + -- Condition function that is called continiously until returs true or timeout is reached + function() return guide.Book.setPage(importData["guide"]) end, -- Amount of time in seconds until the Wait times out - 1, + 2, -- Called if the Wait times out - function() - log("Campaign Guide import failed!") - end + function() log("Campaign Guide import failed!") end ) end - Wait.time( - function() optionPanelApi.loadSettings(importData["options"]) end, - 0.5 - ) - getObjectFromGUID(TOUR_GUID).destruct() - playAreaApi.updateSurface(importData["playmat"]) + + Wait.time(function() optionPanelApi.loadSettings(importData["options"]) end, 0.5) + + -- destroy Tour Starter token + local tourStarter = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TourStarter") + if tourStarter then + tourStarter.destruct() + end + + -- restore PlayArea image + playAreaApi.updateSurface(importData["playarea"]) + broadcastToAll("Campaign successfully imported!", Color.Green) end - -- Creates a campaign token with save data encoded into GM Notes based on the current state of the table function createCampaignToken(_, playerColor, _) - -- clean up chaos tokens - blessCurseApi.removeAll(playerColor) - chaosBagApi.releaseAllSealedTokens(playerColor) - local campaignBoxGUID = "" -- find active campaign + local campaignBox for _, obj in ipairs(getObjectsWithTag("CampaignBox")) do if obj.type == "Bag" and #obj.getObjects() == 0 then - if campaignBoxGUID ~= "" then + if not campaignBox then + campaignBox = obj + else broadcastToAll("Multiple empty campaign box detected; delete all but one.", Color.Red) return end - campaignBoxGUID = obj.getGUID() end end - if campaignBoxGUID == "" then + if not campaignBox then broadcastToAll("Campaign box with all placed objects not found!", Color.Red) return end - local campaignLog = findCampaignLog() + + local campaignLog = findUniqueObjectWithTag("CampaignLog") if campaignLog == nil then broadcastToAll("Campaign log not found!", Color.Red) return end - local traumaValues = nil - local counterData = campaignLog.getVar("ref_buttonData") - if counterData ~= nil then - traumaValues = {} + + local additionalIndex = guidReferenceApi.getObjectByOwnerAndType("Mythos", "AdditionalPlayerCardsBag") + + local traumaValues = { } + local trauma = campaignLog.getVar("returnTrauma") + + if trauma ~= nil then printToAll("Trauma values found in campaign log!", "Green") - for i = 1, 10, 3 do - traumaValues[1 + (i - 1) / 3] = counterData.counter[i].value - traumaValues[5 + (i - 1) / 3] = counterData.counter[i + 1].value + trauma = campaignLog.call("returnTrauma") + for _, val in ipairs(trauma) do + table.insert(traumaValues, val) end else - printToAll("Trauma values could not be found in campaign log!", "Yellow") - printToAll("Default values for health and sanity loaded.", "Yellow") + printToAll("Trauma values could not be found in campaign log!", "Yellow") end - local campaignGuide = findCampaignGuide() + + local campaignGuide = findUniqueObjectWithTag("CampaignGuide") if campaignGuide == nil then broadcastToAll("Campaign guide not found!", Color.Red) return end - local campaignGuidePage = campaignGuide.Book.getPage() + + -- clean up chaos tokens + blessCurseApi.removeAll(playerColor) + chaosBagApi.releaseAllSealedTokens(playerColor) + local campaignData = { - box = campaignBoxGUID, - log = campaignLog.getData(), + box = campaignBox.getGUID(), + log = campaignLog.getPosition(), bag = chaosBagApi.getChaosBagState(), trauma = traumaValues, decks = deckImporterApi.getUiState(), clueCount = playAreaApi.getInvestigatorCount(), - guide = campaignGuidePage, + playarea = playAreaApi.getSurface(), options = optionPanelApi.getOptions(), - playmat = playAreaApi.getSurface() + guide = campaignGuide.Book.getPage(), + additionalIndex = additionalIndex.getPosition() } campaignTokenData.GMNotes = JSON.encode(campaignData) - campaignTokenData.Nickname = os.date("%b %d ") .. getObjectFromGUID(campaignBoxGUID).getName() .. " Save" - spawnObjectData({ - data = campaignTokenData, - position = {-21.25, 1.68, 55.59} - }) + campaignTokenData.Nickname = campaignBox.getName() .. os.date(" %b %d") .. " Save" + campaignTokenData.ContainedObjects = { } + local indexData = additionalIndex.getData() + indexData.Locked = false + table.insert(campaignTokenData.ContainedObjects, indexData) + local logData = campaignLog.getData() + logData.Locked = false + table.insert(campaignTokenData.ContainedObjects, logData) + spawnObjectData({ data = campaignTokenData }) broadcastToAll("Campaign successfully exported! Save coin object to import on a fresh save", Color.Green) end - +--------------------------------------------------------- -- helper functions +--------------------------------------------------------- -function findCampaignLog() - local campaignLog = getObjectsWithTag("CampaignLog") - if campaignLog then - if #campaignLog == 1 then - return campaignLog[1] - else - broadcastToAll("More than 1 campaign log detected; delete all but one.", Color.Red) - return nil - end +function findUniqueObjectWithTag(tag) + local objects = getObjectsWithTag(tag) + if not objects then return end + + if #objects == 1 then + return objects[1] else + broadcastToAll("More than 1 " .. tag .. " detected; delete all but one.", Color.Red) return nil end end -function findCampaignGuide() - local campaignGuide = getObjectsWithTag("CampaignGuide") - if campaignGuide then - if #campaignGuide == 1 then - return campaignGuide[1] - else - broadcastToAll("More than 1 campaign guide detected; delete all but one.", Color.Red) - return nil +function setTrauma(trauma) + for i = 1, 4 do + playmatApi.updateCounter(COLORS[i], "DamageCounter", trauma[i]) + playmatApi.updateCounter(COLORS[i], "HorrorCounter", trauma[i + 4]) + end +end + +-- gets data from campaign log if possible +function loadTrauma(log) + local trauma = log.getVar("returnTrauma") + + if trauma ~= nil then + printToAll("Trauma values found in campaign log!", "Green") + trauma = log.call("returnTrauma") + return trauma + else + return nil + end +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(v.hit_object) then + table.insert(objList, v.hit_object) end - else - return nil - end -end - -function updateCounters(tableOfNewValues) - if tonumber(tableOfNewValues) then - local value = tableOfNewValues - tableOfNewValues = {} - for i = 1, #DAMAGE_HORROR_GUIDS do - table.insert(tableOfNewValues, value) end - end - - for i, guid in ipairs(DAMAGE_HORROR_GUIDS) do - local TOKEN = getObjectFromGUID(guid) - if TOKEN ~= nil then - TOKEN.call("updateVal", tableOfNewValues[i]) - else - printToAll(": No. " .. i .. " could not be found.", "Yellow") - end - end -end -end) -__bundle_register("arkhamdb/DeckImporterApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local DeckImporterApi = {} - local DECK_IMPORTER_GUID = "a28140" - - - -- Returns a table with the full state of the UI, including options and deck IDs. - -- This can be used to persist via onSave(), or provide values for a load operation - -- Table values: - -- redDeck: Deck ID to load for the red player - -- orangeDeck: Deck ID to load for the orange player - -- whiteDeck: Deck ID to load for the white player - -- greenDeck: Deck ID to load for the green player - -- private: True to load a private deck, false to load a public deck - -- loadNewest: True if the most upgraded version of the deck should be loaded - -- investigators: True if investigator cards should be spawned - DeckImporterApi.getUiState = function() - local passthroughTable = {} - for k,v in pairs(getObjectFromGUID(DECK_IMPORTER_GUID).call("getUiState")) do - passthroughTable[k] = v - end - return passthroughTable + return objList end - -- Updates the state of the UI based on the provided table. Any values not provided will be left the same. - -- @param uiStateTable Table of values to update on importer - -- Table values: - -- redDeck: Deck ID to load for the red player - -- orangeDeck: Deck ID to load for the orange player - -- whiteDeck: Deck ID to load for the white player - -- greenDeck: Deck ID to load for the green player - -- private: True to load a private deck, false to load a public deck - -- loadNewest: True if the most upgraded version of the deck should be loaded - -- investigators: True if investigator cards should be spawned - DeckImporterApi.setUiState = function(uiStateTable) - return getObjectFromGUID(DECK_IMPORTER_GUID).call("setUiState", uiStateTable) + -- searches the specified area + SearchLib.inArea = function(pos, rot, size, filter) + return returnSearchResult(pos, rot, size, filter) end - return DeckImporterApi -end -end) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" - - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) + -- 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 - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + -- searches the specified position (a single point) + SearchLib.atPosition = function(pos, filter) + size = { 0.1, 2, 0.1 } + return returnSearchResult(pos, _, size, filter) end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + -- 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 - -- broadcasts the current status for bless/curse tokens - ---@param playerColor String Color of the player to show the broadcast to - BlessCurseManagerApi.broadcastStatus = function(playerColor) - getObjectFromGUID(MANAGER_GUID).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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) - end - - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi + return SearchLib end end) __bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) @@ -455,14 +575,104 @@ do return Global.call("findChaosBag") end + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + -- returns all sealed tokens on cards to the chaos bag ChaosBagApi.releaseAllSealedTokens = function(playerColor) return Global.call("releaseAllSealedTokens", playerColor) end + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local OptionPanelApi = {} @@ -481,103 +691,382 @@ do return OptionPanelApi end end) -__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local PLAY_AREA_GUID = "721ba2" - - local IMAGE_SWAPPER = "b7b45b" - - -- Returns the current value of the investigator counter from the playmat - ---@return Integer. Number of investigators currently set on the counter - PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + -- 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 array 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 - -- Updates the current value of the investigator counter from the playmat - ---@param count Number of investigators to set on the counter - PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + -- 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 - -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted - PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + -- 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 - PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + -- 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 - PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + -- 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 - PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + -- 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 - -- Reset the play area's tracking of which cards have had tokens spawned. - PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + -- 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 - -- Event to be called when the current scenario has changed. - ---@param scenarioName Name of the new scenario - PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + -- 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 - -- Sets this playmat's snap points to limit snapping to locations or not. - -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. - PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + -- 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 - -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged - -- cards before they're destroyed by entering the container - PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + -- 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 - -- counts the VP on locations in the play area - PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + -- 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 - -- highlights all locations in the play area without metadata - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + + -- Triggers the Upkeep for the requested playmat + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + ---@param playerColor String Color of the calling player (for messages) + PlaymatApi.doUpkeepFromHotkey = function(matColor, playerColor) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("doUpkeepFromHotkey", playerColor) + end + end + + -- Handles discarding for the requested playmat for the provided list of objects + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") + ---@param objList Table List of objects to discard + PlaymatApi.discardListOfObjects = function(matColor, objList) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("discardListOfObjects", objList) + end + end + + -- Returns the active investigator id + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") + PlaymatApi.returnInvestigatorId = function(matColor) + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end + end + + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If + -- matchTypes is true, the main card slot snap points will only snap assets, while the + -- investigator area point will only snap Investigators. If matchTypes is false, snap points will + -- be reset to snap all cards. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + PlaymatApi.setLimitSnapsByType = function(matchCardTypes, matColor) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("setLimitSnapsByType", matchCardTypes) + end + end + + -- Sets the requested playmat's draw 1 button to visible + ---@param isDrawButtonVisible Boolean Whether the draw 1 button should be visible or not + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + PlaymatApi.showDrawButton = function(isDrawButtonVisible, matColor) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("showDrawButton", isDrawButtonVisible) + end + end + + -- Shows or hides the clickable clue counter for the requested playmat + ---@param showCounter Boolean Whether the clickable counter should be present or not + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + PlaymatApi.clickableClues = function(showCounter, matColor) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("clickableClues", showCounter) + end + end + + -- Removes all clues (to the trash for tokens and counters set to 0) for the requested playmat + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + PlaymatApi.removeClues = function(matColor) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("removeClues") + end + end + + -- Reports the clue count for the requested playmat + ---@param useClickableCounters Boolean Controls which type of counter is getting checked + PlaymatApi.getClueCount = function(useClickableCounters, matColor) + local count = 0 + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) + end + return count + end + + -- updates the specified owned counter + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + ---@param type String Counter to target + ---@param newValue Number Value to set the counter to + ---@param modifier Number If newValue is not provided, the existing value will be adjusted by this modifier + PlaymatApi.updateCounter = function(matColor, type, newValue, modifier) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("updateCounter", { type = type, newValue = newValue, modifier = modifier }) + end + end + + -- triggers the draw function for the specified playmat + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + ---@param number Number Amount of cards to draw + PlaymatApi.drawCardsWithReshuffle = function(matColor, number) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("drawCardsWithReshuffle", number) + end + end + + -- returns the resource counter amount + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") + ---@param type String Counter to target + PlaymatApi.getCounterValue = function(matColor, type) + for _, mat in pairs(getMatForColor(matColor)) do + return mat.call("getCounterValue", type) + end + end + + -- returns a list of mat colors that have an investigator placed + PlaymatApi.getUsedMatColors = function() + local localInvestigatorPosition = { x = -1.17, y = 1, z = -0.01 } + local usedColors = {} + + for matColor, mat in pairs(getMatForColor("All")) do + local searchPos = mat.positionToWorld(localInvestigatorPosition) + local searchResult = searchLib.atPosition(searchPos, "isCardOrDeck") + + if #searchResult > 0 then + table.insert(usedColors, matColor) + end + end + return usedColors + end + + -- resets the specified skill tracker to "1, 1, 1, 1" + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + PlaymatApi.resetSkillTracker = function(matColor) + for _, mat in pairs(getMatForColor(matColor)) do + mat.call("resetSkillTracker") + end + end + + -- finds all objects on the playmat and associated set aside zone and returns a table + ---@param matColor String Color of the playmat - White, Orange, Green, Red or All + ---@param filter String Name of the filte function (see util/SearchLib) + PlaymatApi.searchAroundPlaymat = function(matColor, filter) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("accessories/CampaignImporterExporter") +end) +__bundle_register("arkhamdb/DeckImporterApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local DeckImporterApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getDeckImporter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "DeckImporter") + end + + -- Returns a table with the full state of the UI, including options and deck IDs. + -- This can be used to persist via onSave(), or provide values for a load operation + -- Table values: + -- redDeck: Deck ID to load for the red player + -- orangeDeck: Deck ID to load for the orange player + -- whiteDeck: Deck ID to load for the white player + -- greenDeck: Deck ID to load for the green player + -- private: True to load a private deck, false to load a public deck + -- loadNewest: True if the most upgraded version of the deck should be loaded + -- investigators: True if investigator cards should be spawned + DeckImporterApi.getUiState = function() + local passthroughTable = {} + for k,v in pairs(getDeckImporter().call("getUiState")) do + passthroughTable[k] = v + end + return passthroughTable + end + + -- Updates the state of the UI based on the provided table. Any values not provided will be left the same. + ---@param uiStateTable Table of values to update on importer + -- Table values: + -- redDeck: Deck ID to load for the red player + -- orangeDeck: Deck ID to load for the orange player + -- whiteDeck: Deck ID to load for the white player + -- greenDeck: Deck ID to load for the green player + -- private: True to load a private deck, false to load a public deck + -- loadNewest: True if the most upgraded version of the deck should be loaded + -- investigators: True if investigator cards should be spawned + DeckImporterApi.setUiState = function(uiStateTable) + return getDeckImporter().call("setUiState", uiStateTable) + end + + return DeckImporterApi +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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) end - -- highlights all locations in the play area with VP - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) - end - - -- Checks if an object is in the play area (returns true or false) - PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) - end - - PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image - end - - PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) - end - - return PlayAreaApi + return BlessCurseManagerApi end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.yaml b/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.yaml index 733619dca..2bf3355f4 100644 --- a/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.yaml +++ b/unpacked/Custom_Tile Campaign ImporterExporter 334ee3.yaml @@ -1,22 +1,27 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 +AttachedSnapPoints: +- Position: + x: -0.95 + y: 0.2 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.2 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/254843371583173230/BECDC34EB4D2C8C5F9F9933C97085F82A2F21AE3/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Saves the state of the table to enable loading the campaign into a new save and keep all current progress. @@ -24,14 +29,15 @@ Description: 'Saves the state of the table to enable loading the campaign into a This tool will track which campaign you''re playing, the entire contents of your campaign log, the contents of your chaos bag, update your health/sanity according to trauma, your ArkhamDB deck IDs, the number of investigators, the page of your - campaign guide, and any options you have selected in the options panel. + campaign guide, cards in the Additional Player Cards bag and any options you have + selected in the options panel. For saving trauma values to correct seats, ensure investigators in the campaign log are in the following order: White, Orange, Green, Red - (For custom campaigns, ensure: 1) Campaign Box, Campaign Log, and Campaign Guide + For custom campaigns, ensure: 1) Campaign Box, Campaign Log, and Campaign Guide each have the corresponding tag, 2)The Campaign Box is on the table when you import or export.' DragSelectable: true @@ -56,11 +62,11 @@ Transform: posX: -11.74 posY: 1.48 posZ: 55.65 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 3.38 - scaleY: 1.0 + scaleY: 1 scaleZ: 3.38 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Campaign Overview e03c01.yaml b/unpacked/Custom_Tile Campaign Overview e03c01.yaml index cc3934479..c477e5566 100644 --- a/unpacked/Custom_Tile Campaign Overview e03c01.yaml +++ b/unpacked/Custom_Tile Campaign Overview e03c01.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037357232933163412/1D2EE3BD0758463D8F6EB0DA30C59A21694BB1A4/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037357232933163412/1D2EE3BD0758463D8F6EB0DA30C59A21694BB1A4/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -39,12 +39,12 @@ Tooltip: true Transform: posX: 6.5 posY: 1.48 - posZ: -87.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 10.0 - scaleY: 1.0 - scaleZ: 10.0 + posZ: -87 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 10 + scaleY: 1 + scaleZ: 10 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Data Helper 708279.ttslua b/unpacked/Custom_Tile Data Helper 708279.ttslua index bfa75f013..0b5bceac7 100644 --- a/unpacked/Custom_Tile Data Helper 708279.ttslua +++ b/unpacked/Custom_Tile Data Helper 708279.ttslua @@ -45,15 +45,6 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("core/DataHelper") end) __bundle_register("core/DataHelper", function(require, _LOADED, __bundle_register, __bundle_modules) --- set true to enable debug logging -DEBUG = false - -function log(message) - if DEBUG then - print(message) - end -end - -- data for difficulty selector scripts to set up chaos bag modeData = { ['Core Set'] = { @@ -540,13 +531,11 @@ modeData = { function onSave() local globalState = JSON.encode(SPAWNED_PLAYER_CARD_GUIDS) - log('saving global state: ' .. globalState) return globalState end function onLoad(save_state) if save_state ~= '' then - log('loading global state: ' .. save_state) SPAWNED_PLAYER_CARD_GUIDS = JSON.decode(save_state) else SPAWNED_PLAYER_CARD_GUIDS = {} diff --git a/unpacked/Custom_Tile Data Helper 708279.yaml b/unpacked/Custom_Tile Data Helper 708279.yaml index f27c722a7..fc44949eb 100644 --- a/unpacked/Custom_Tile Data Helper 708279.yaml +++ b/unpacked/Custom_Tile Data Helper 708279.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/254843371583173230/BECDC34EB4D2C8C5F9F9933C97085F82A2F21AE3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: -56.53 posY: 1.49 posZ: -93.98 - rotX: 0.0 - rotY: 315.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 315 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Decoration - Map 6161b4.yaml b/unpacked/Custom_Tile Decoration - Map 6161b4.yaml index d66a0f3ff..07fb1bcbe 100644 --- a/unpacked/Custom_Tile Decoration - Map 6161b4.yaml +++ b/unpacked/Custom_Tile Decoration - Map 6161b4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.01 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/254843371583102491/71731F2E30413A4D27B0805A54B1D87DC415F8DF/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -40,11 +40,11 @@ Transform: posX: -58.17 posY: 1.48 posZ: -84.61 - rotX: 0.0 - rotY: 305.0 - rotZ: 0.0 - scaleX: 10.0 - scaleY: 1.0 - scaleZ: 10.0 + rotX: 0 + rotY: 305 + rotZ: 0 + scaleX: 10 + scaleY: 1 + scaleZ: 10 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Mythos Area 9f334f.ttslua b/unpacked/Custom_Tile Mythos Area 9f334f.ttslua index 70e38100f..931723ea3 100644 --- a/unpacked/Custom_Tile Mythos Area 9f334f.ttslua +++ b/unpacked/Custom_Tile Mythos Area 9f334f.ttslua @@ -41,22 +41,263 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/MythosArea", function(require, _LOADED, __bundle_register, __bundle_modules) +local deckLib = require("util/DeckLib") +local guidReferenceApi = require("core/GUIDReferenceApi") +local playAreaApi = require("core/PlayAreaApi") +local searchLib = require("util/SearchLib") +local tokenArrangerApi = require("accessories/TokenArrangerApi") +local tokenChecker = require("core/token/TokenChecker") +local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") + +local ENCOUNTER_DECK_AREA = { + upperLeft = { x = 0.9, z = 0.42 }, + lowerRight = { x = 0.86, z = 0.38 }, +} +local ENCOUNTER_DISCARD_AREA = { + upperLeft = { x = 1.62, z = 0.42 }, + lowerRight = { x = 1.58, z = 0.38 }, +} + +-- global position of encounter deck and discard pile +local ENCOUNTER_DECK_POS = { x = -3.93, y = 1, z = 5.76 } +local ENCOUNTER_DISCARD_POSITION = { x = -3.85, y = 1, z = 10.38 } +local isReshuffling = false +local currentScenario, useFrontData, tokenData +local TRASH, DATA_HELPER + +function onLoad(saveState) + if saveState ~= nil then + local loadedState = JSON.decode(saveState) or {} + currentScenario = loadedState.currentScenario or "" + useFrontData = loadedState.useFrontData or true + tokenData = loadedState.tokenData or {} + end + TRASH = guidReferenceApi.getObjectByOwnerAndType("Mythos", "Trash") + DATA_HELPER = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") +end + +function onSave() + return JSON.encode({ + currentScenario = currentScenario, + useFrontData = useFrontData, + tokenData = tokenData + }) +end + +--------------------------------------------------------- +-- collison and container event handling +--------------------------------------------------------- + +-- TTS event handler. Handles scenario name event triggering and encounter card token resets. +function onCollisionEnter(collisionInfo) + local object = collisionInfo.collision_object + + if object.getName() == "Scenario" then + local description = object.getDescription() + + -- detect if a new scenario card is placed down + if currentScenario ~= description then + currentScenario = description + fireScenarioChangedEvent() + end + + local metadata = JSON.decode(object.getGMNotes()) or {} + if not metadata["tokens"] then + tokenData = {} + return + end + + -- detect orientation of scenario card (for difficulty) + useFrontData = not object.is_face_down + tokenData = metadata["tokens"][(useFrontData and "front" or "back")] + fireTokenDataChangedEvent() + end + + local localPos = self.positionToLocal(object.getPosition()) + if inArea(localPos, ENCOUNTER_DECK_AREA) or inArea(localPos, ENCOUNTER_DISCARD_AREA) then + tokenSpawnTrackerApi.resetTokensSpawned(object.getGUID()) + removeTokensFromObject(object) + end +end + +-- TTS event handler. Handles scenario name event triggering +function onCollisionExit(collisionInfo) + local object = collisionInfo.collision_object + + -- reset token metadata if scenario reference card is removed + if object.getName() == "Scenario" then + tokenData = {} + useFrontData = nil + fireTokenDataChangedEvent() + end +end + +-- Listens for cards entering the encounter deck or encounter discard, and resets the spawn state +-- for the cards when they do. +function onObjectEnterContainer(container, object) + local localPos = self.positionToLocal(container.getPosition()) + if inArea(localPos, ENCOUNTER_DECK_AREA) or inArea(localPos, ENCOUNTER_DISCARD_AREA) then + tokenSpawnTrackerApi.resetTokensSpawned(object.getGUID()) + end +end + +-- fires if the scenario title changes +function fireScenarioChangedEvent() + -- maybe show the title splash screen + Wait.frames(function() Global.call('titleSplash', currentScenario) end, 20) + + -- set the scenario for the playarea (connections might be disabled) + playAreaApi.onScenarioChanged(currentScenario) + + -- maybe update the playarea image + local playAreaImageSelector = guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayAreaImageSelector") + playAreaImageSelector.call("maybeUpdatePlayAreaImage", currentScenario) +end + +-- fires if the scenario title or the difficulty changes +function fireTokenDataChangedEvent() + local fullData = returnTokenData() + tokenArrangerApi.onTokenDataChanged(fullData) +end + +-- returns the chaos token metadata (if provided) +function returnTokenData() + return { + tokenData = tokenData, + currentScenario = currentScenario, + useFrontData = useFrontData + } +end + +--------------------------------------------------------- +-- encounter card drawing +--------------------------------------------------------- + +-- gets the encounter deck (for internal functions and Api calls) +function getEncounterDeck() + local searchResult = searchLib.atPosition(ENCOUNTER_DECK_POS, "isCardOrDeck") + + if #searchResult > 0 then + return searchResult[1] + end +end + +-- 'params' contains the position, rotation and a boolean to force a faceup draw +function drawEncounterCard(params) + local encounterDeck = getEncounterDeck() + + if encounterDeck then + reshuffledAlready = false + local card + if encounterDeck.type == "Deck" then + card = encounterDeck.takeObject() + else + card = encounterDeck + end + actualEncounterCardDraw(card, params) + else + -- nothing here, time to reshuffle + if reshuffledAlready == true then + reshuffledAlready = false + return + end + reshuffleEncounterDeck() -- if there is no discard pile either, reshuffleEncounterDeck will give an error message already + reshuffledAlready = true + drawEncounterCard(params) + end +end + +function actualEncounterCardDraw(card, params) + local faceUpRotation = 0 + if not params.alwaysFaceUp then + local metadata = JSON.decode(card.getGMNotes()) or {} + if metadata.hidden or DATA_HELPER.call('checkHiddenCard', card.getName()) then + faceUpRotation = 180 + end + end + + local DRAWN_ENCOUNTER_CARD_OFFSET = {1.365, 0.5, -0.625} + local pos = params.mat.positionToWorld(DRAWN_ENCOUNTER_CARD_OFFSET) + local rotY = params.mat.getRotation().y + + deckLib.placeOrMergeIntoDeck(card, pos, { 0, rotY, faceUpRotation }) +end + +function reshuffleEncounterDeck() + -- flag to avoid multiple calls + if isReshuffling then return end + isReshuffling = true + local encounterDeck = getEncounterDeck() + local discardPile = searchLib.atPosition(ENCOUNTER_DISCARD_POSITION, "isCardOrDeck") + + if #discardPile > 0 then + local discardDeck = discardPile[1] + if not discardDeck.is_face_down then --flips discard pile + discardDeck.setRotation({0, -90, 180}) + end + if encounterDeck == nil then + discardDeck.setPosition(Vector(ENCOUNTER_DECK_POS) + Vector({0, 1, 0})) + discardDeck.shuffle() + else + encounterDeck.putObject(discardDeck) + encounterDeck.shuffle() + end + broadcastToAll("Shuffled encounter discard into deck.", "White") + else + broadcastToAll("Encounter discard pile is already empty.", "Red") + end + + -- disable flag + Wait.time(function() isReshuffling = false end, 1) +end +--------------------------------------------------------- +-- helper functions +--------------------------------------------------------- + +-- Simple method to check if the given point is in a specified area +---@param point Vector Point to check, only x and z values are relevant +---@param bounds Table Defined area to see if the point is within +---@return Boolean: True if the point is in the area defined by bounds +function inArea(point, bounds) + return (point.x < bounds.upperLeft.x + and point.x > bounds.lowerRight.x + and point.z < bounds.upperLeft.z + and point.z > bounds.lowerRight.z) +end + +-- removes tokens from the provided card/deck +function removeTokensFromObject(object) + for _, obj in ipairs(searchLib.onObject(object)) do + if obj.getGUID() ~= "4ee1f2" and -- table + obj ~= self and + obj.type ~= "Deck" and + obj.type ~= "Card" and + obj.memo ~= nil and + obj.getLock() == false and + not tokenChecker.isChaosToken(obj) then + TRASH.putObject(obj) + end + end +end +end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -74,100 +315,285 @@ do return TokenArrangerApi end end) +__bundle_register("util/DeckLib", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local DeckLib = {} + local searchLib = require("util/SearchLib") + + -- places a card/deck at a position or merges into an existing deck + ---@param obj TTSObject Object to move + ---@param pos Table New position for the object + ---@param rot Table New rotation for the object (optional) + DeckLib.placeOrMergeIntoDeck = function(obj, pos, rot) + if obj == nil or pos == nil then return end + + -- search the new position for existing card/deck + local searchResult = searchLib.atPosition(pos, "isCardOrDeck") + + -- get new position + local newPos + local offset = 0.5 + if #searchResult == 1 then + local bounds = searchResult[1].getBounds() + newPos = Vector(pos):setAt("y", bounds.center.y + bounds.size.y / 2 + offset) + else + newPos = Vector(pos) + Vector(0, offset, 0) + end + + -- allow moving the objects smoothly out of the hand + obj.use_hands = false + + if rot then + obj.setRotationSmooth(rot, false, true) + end + obj.setPositionSmooth(newPos, false, true) + + -- continue if the card stops smooth moving + Wait.condition( + function() + obj.use_hands = true + -- this avoids a TTS bug that merges unrelated cards that are not resting + if #searchResult == 1 and searchResult[1] ~= obj then + -- call this with avoiding errors (physics is sometimes too fast so the object doesn't exist for the put) + pcall(function() searchResult[1].putObject(obj) end) + end + end, + function() return not obj.isSmoothMoving() end, 3) + end + + return DeckLib +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/MythosArea") +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi @@ -213,198 +639,38 @@ end end) __bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenSpawnTracker = { } + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local SPAWN_TRACKER_GUID = "e3ffc9" + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) end TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) end TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) end TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") + return getSpawnTracker().call("resetAllAssetAndEvents") end TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") + return getSpawnTracker().call("resetAllLocations") end TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") + return getSpawnTracker().call("resetAll") end return TokenSpawnTracker end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/MythosArea") -end) -__bundle_register("core/MythosArea", function(require, _LOADED, __bundle_register, __bundle_modules) -local playAreaApi = require("core/PlayAreaApi") -local tokenArrangerApi = require("accessories/TokenArrangerApi") -local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") -local tokenChecker = require("core/token/TokenChecker") - -local ENCOUNTER_DECK_AREA = { - upperLeft = { x = 0.9, z = 0.42 }, - lowerRight = { x = 0.86, z = 0.38 }, -} -local ENCOUNTER_DISCARD_AREA = { - upperLeft = { x = 1.62, z = 0.42 }, - lowerRight = { x = 1.58, z = 0.38 }, -} - -local currentScenario -local useFrontData -local tokenData - -local TRASHCAN -local TRASHCAN_GUID = "70b9f6" - --- we use this to turn off collision handling until onLoad() is complete -local collisionEnabled = false - -function onLoad(saveState) - if saveState ~= nil then - local loadedState = JSON.decode(saveState) or {} - currentScenario = loadedState.currentScenario or "" - useFrontData = loadedState.useFrontData or true - tokenData = loadedState.tokenData or {} - end - TRASHCAN = getObjectFromGUID(TRASHCAN_GUID) - collisionEnabled = true -end - -function onSave() - return JSON.encode({ - currentScenario = currentScenario, - useFrontData = useFrontData, - tokenData = tokenData - }) -end - --- TTS event handler. Handles scenario name event triggering and encounter card token resets. -function onCollisionEnter(collisionInfo) - if not collisionEnabled then return end - local object = collisionInfo.collision_object - - if object.getName() == "Scenario" then - local description = object.getDescription() - - -- detect if a new scenario card is placed down - if currentScenario ~= description then - currentScenario = description - fireScenarioChangedEvent() - end - - local metadata = JSON.decode(object.getGMNotes()) or {} - if not metadata["tokens"] then - tokenData = {} - return - end - - -- detect orientation of scenario card (for difficulty) - useFrontData = not object.is_face_down - tokenData = metadata["tokens"][(useFrontData and "front" or "back")] - fireTokenDataChangedEvent() - end - - local localPos = self.positionToLocal(object.getPosition()) - if inArea(localPos, ENCOUNTER_DECK_AREA) or inArea(localPos, ENCOUNTER_DISCARD_AREA) then - tokenSpawnTrackerApi.resetTokensSpawned(object.getGUID()) - removeTokensFromObject(object) - end -end - --- TTS event handler. Handles scenario name event triggering -function onCollisionExit(collisionInfo) - if not collisionEnabled then return end - local object = collisionInfo.collision_object - - -- reset token metadata if scenario reference card is removed - if object.getName() == "Scenario" then - tokenData = {} - useFrontData = nil - fireTokenDataChangedEvent() - end -end - --- Listens for cards entering the encounter deck or encounter discard, and resets the spawn state --- for the cards when they do. -function onObjectEnterContainer(container, object) - local localPos = self.positionToLocal(container.getPosition()) - if inArea(localPos, ENCOUNTER_DECK_AREA) or inArea(localPos, ENCOUNTER_DISCARD_AREA) then - tokenSpawnTrackerApi.resetTokensSpawned(object.getGUID()) - end -end - --- fires if the scenario title changes -function fireScenarioChangedEvent() - Wait.frames(function() Global.call('titleSplash', currentScenario) end, 20) - playAreaApi.onScenarioChanged(currentScenario) -end - --- fires if the scenario title or the difficulty changes -function fireTokenDataChangedEvent() - local fullData = returnTokenData() - tokenArrangerApi.onTokenDataChanged(fullData) -end - --- returns the chaos token metadata (if provided) -function returnTokenData() - return { - tokenData = tokenData, - currentScenario = currentScenario, - useFrontData = useFrontData - } -end - --- Simple method to check if the given point is in a specified area. Local use only, ----@param point Vector. Point to check, only x and z values are relevant ----@param bounds Table. Defined area to see if the point is within. See MAIN_PLAY_AREA for sample --- bounds definition. ----@return Boolean. True if the point is in the area defined by bounds -function inArea(point, bounds) - return (point.x < bounds.upperLeft.x - and point.x > bounds.lowerRight.x - and point.z < bounds.upperLeft.z - and point.z > bounds.lowerRight.z) -end - --- removes tokens from the provided card/deck -function removeTokensFromObject(object) - for _, v in ipairs(searchArea(object.getPosition(), { 3, 1, 4 })) do - local obj = v.hit_object - - if obj.getGUID() ~= "4ee1f2" and -- table - obj ~= self and - obj.type ~= "Deck" and - obj.type ~= "Card" and - obj.memo ~= nil and - obj.getLock() == false and - not tokenChecker.isChaosToken(obj) then - TRASHCAN.putObject(obj) - end - end -end - -function searchArea(origin, size) - return Physics.cast({ - origin = origin, - direction = {0, 1, 0}, - orientation = self.getRotation(), - type = 3, - size = size, - max_distance = 1 - }) -end -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Tile Mythos Area 9f334f.xml b/unpacked/Custom_Tile Mythos Area 9f334f.xml new file mode 100644 index 000000000..4d2625ffc --- /dev/null +++ b/unpacked/Custom_Tile Mythos Area 9f334f.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/unpacked/Custom_Tile Mythos Area 9f334f.yaml b/unpacked/Custom_Tile Mythos Area 9f334f.yaml index 0b291e56b..d909ad948 100644 --- a/unpacked/Custom_Tile Mythos Area 9f334f.yaml +++ b/unpacked/Custom_Tile Mythos Area 9f334f.yaml @@ -1,39 +1,43 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedSnapPoints: - Position: x: 2.19 y: 0.1 z: -0.46 Rotation: - x: 0.0 - y: 315.0 - z: 0.0 + x: 0 + y: 315 + z: 0 - Position: x: 0.88 y: 0.1 z: 0.4 Rotation: - x: 0.0 - y: 0.0 - z: 180.0 + x: 0 + y: 0 + z: 180 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/952965089462071147/F586DAA07E810B16A62C23AE2EA526BE3C7FD7FB/ - WidthScale: 0.0 + WidthScale: 0 +CustomUIAssets: +- Name: font_teutonic-arkham + Type: 1 + URL: http://cloud-3.steamusercontent.com/ugc/2027213118467703445/89328E273B4C5180BF491516CE998DE3C604E162/ Description: '' DragSelectable: true GMNotes: '' @@ -52,16 +56,18 @@ Name: Custom_Tile Nickname: Mythos Area Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: false Transform: posX: -1.31 posY: 1.48 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 6.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 6.5 Value: 0 -XmlUI: '' +XmlUI: !include 'Custom_Tile Mythos Area 9f334f.xml' diff --git a/unpacked/Custom_Tile Neutral 012577.yaml b/unpacked/Custom_Tile Neutral 012577.yaml index a0c5824fe..09e55143a 100644 --- a/unpacked/Custom_Tile Neutral 012577.yaml +++ b/unpacked/Custom_Tile Neutral 012577.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.835083 rotZ: 353.387177 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.01 rotZ: 0.0 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 0329cc.yaml b/unpacked/Custom_Tile Neutral 0329cc.yaml index 5c1c1123a..fb1f03117 100644 --- a/unpacked/Custom_Tile Neutral 0329cc.yaml +++ b/unpacked/Custom_Tile Neutral 0329cc.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.989624 rotZ: 359.9841 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 04765b.yaml b/unpacked/Custom_Tile Neutral 04765b.yaml index 9be01f8c3..58cae083a 100644 --- a/unpacked/Custom_Tile Neutral 04765b.yaml +++ b/unpacked/Custom_Tile Neutral 04765b.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.989624 rotZ: 359.9841 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 183dbe.yaml b/unpacked/Custom_Tile Neutral 183dbe.yaml index f1cfe0845..a179c8590 100644 --- a/unpacked/Custom_Tile Neutral 183dbe.yaml +++ b/unpacked/Custom_Tile Neutral 183dbe.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: -1.60111384e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 1cb302.yaml b/unpacked/Custom_Tile Neutral 1cb302.yaml index b0476524a..31b0b8c5b 100644 --- a/unpacked/Custom_Tile Neutral 1cb302.yaml +++ b/unpacked/Custom_Tile Neutral 1cb302.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: 1.15851122e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 2691e1.yaml b/unpacked/Custom_Tile Neutral 2691e1.yaml index 242817e08..a84bd168f 100644 --- a/unpacked/Custom_Tile Neutral 2691e1.yaml +++ b/unpacked/Custom_Tile Neutral 2691e1.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: 1.15851122e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 271b17.yaml b/unpacked/Custom_Tile Neutral 271b17.yaml index 5ef490390..ae0437c92 100644 --- a/unpacked/Custom_Tile Neutral 271b17.yaml +++ b/unpacked/Custom_Tile Neutral 271b17.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.989624 rotZ: 359.9841 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 429bb3.yaml b/unpacked/Custom_Tile Neutral 429bb3.yaml index 7fcb90841..e4c1888a0 100644 --- a/unpacked/Custom_Tile Neutral 429bb3.yaml +++ b/unpacked/Custom_Tile Neutral 429bb3.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.989624 rotZ: 359.9841 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 5825ca.yaml b/unpacked/Custom_Tile Neutral 5825ca.yaml index eff3a709a..82eea0bce 100644 --- a/unpacked/Custom_Tile Neutral 5825ca.yaml +++ b/unpacked/Custom_Tile Neutral 5825ca.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: 1.15851122e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 5bafdf.yaml b/unpacked/Custom_Tile Neutral 5bafdf.yaml index 395456de7..d3eb305e9 100644 --- a/unpacked/Custom_Tile Neutral 5bafdf.yaml +++ b/unpacked/Custom_Tile Neutral 5bafdf.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.835083 rotZ: 353.387177 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.01 rotZ: 0.0 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 5bec40.yaml b/unpacked/Custom_Tile Neutral 5bec40.yaml index 4a16ca833..b710d9fce 100644 --- a/unpacked/Custom_Tile Neutral 5bec40.yaml +++ b/unpacked/Custom_Tile Neutral 5bec40.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: -1.60111384e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral 748245.yaml b/unpacked/Custom_Tile Neutral 748245.yaml index 8ae797e86..fe3bfcdcd 100644 --- a/unpacked/Custom_Tile Neutral 748245.yaml +++ b/unpacked/Custom_Tile Neutral 748245.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: -1.60111384e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral af1927.yaml b/unpacked/Custom_Tile Neutral af1927.yaml index 3c8a712f0..d668eaead 100644 --- a/unpacked/Custom_Tile Neutral af1927.yaml +++ b/unpacked/Custom_Tile Neutral af1927.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.835083 rotZ: 353.387177 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.01 rotZ: 0.0 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral b71036.yaml b/unpacked/Custom_Tile Neutral b71036.yaml index e9fc2f966..0e2e3d3c5 100644 --- a/unpacked/Custom_Tile Neutral b71036.yaml +++ b/unpacked/Custom_Tile Neutral b71036.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: -1.60111384e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral b80db6.yaml b/unpacked/Custom_Tile Neutral b80db6.yaml index 634abb369..ccd4da0dc 100644 --- a/unpacked/Custom_Tile Neutral b80db6.yaml +++ b/unpacked/Custom_Tile Neutral b80db6.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.987671 rotZ: 1.15851122e-07 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Neutral bbc5d4.yaml b/unpacked/Custom_Tile Neutral bbc5d4.yaml index 63cc0edbf..9bc0f6774 100644 --- a/unpacked/Custom_Tile Neutral bbc5d4.yaml +++ b/unpacked/Custom_Tile Neutral bbc5d4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.247059941 - g: 0.247059941 - r: 0.247059941 + b: 0.24706 + g: 0.24706 + r: 0.24706 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -37,9 +37,9 @@ Snap: true States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -51,10 +51,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -84,15 +84,15 @@ States: rotY: 269.835083 rotZ: 353.387177 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '10': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -104,10 +104,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120675/493ACE1FA05ED4DC96CC7F6D85B3488378C15DD2/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120736/F53989F0806C796D180647A16C6BB4E9957F6DBF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -128,9 +128,9 @@ States: States: '1': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -142,10 +142,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115513/9CA3B804F167041F03C9E0687378FF7B5DCDE1B8/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524115014/6CBF573A12494524613C6280F558D4BED97CF007/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -175,15 +175,15 @@ States: rotY: 269.987976 rotZ: -9.157829e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -195,10 +195,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -228,15 +228,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -248,10 +248,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -281,15 +281,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -301,10 +301,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -334,15 +334,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -354,10 +354,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -387,20 +387,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -443,14 +443,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -493,14 +493,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -543,14 +543,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -593,14 +593,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -643,9 +643,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -657,10 +657,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -690,20 +690,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -746,9 +746,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -760,10 +760,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -793,15 +793,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -813,10 +813,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -846,15 +846,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -866,10 +866,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -899,15 +899,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '6': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.247059911 @@ -919,10 +919,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355435567056295/5A6DE2C637AADCD147723211020D8C0D0591EAE7/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120440/08045D95997033A4D64764850FC2B68C4FB12A3C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -952,15 +952,15 @@ States: rotY: 269.9878 rotZ: -0.000116128736 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -972,10 +972,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1005,15 +1005,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1025,10 +1025,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1058,15 +1058,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1078,10 +1078,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1111,7 +1111,7 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.45 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.45 Value: 0 XmlUI: '' @@ -1127,15 +1127,15 @@ States: rotY: 269.987732 rotZ: -0.000125872859 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '11': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1147,10 +1147,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119623/2244A30B5EBB4126F0BE1D2FF61F6C824DFEE58D/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119692/042FBF813801CFDF4FEDA9ED3205D331842975FA/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1180,15 +1180,15 @@ States: rotY: 269.9841 rotZ: -0.000118024727 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '12': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.2117644 @@ -1200,10 +1200,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120530/79626D1941BEE2D2A310FD4B7C8E3CE90E6820AB/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120607/0D0F1B80B4E6A20B4728F1F7582FF09C1D4A3B9F/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1233,15 +1233,15 @@ States: rotY: 269.988464 rotZ: -9.81453049e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '13': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391777 @@ -1253,10 +1253,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121068/E62DCFA57CE5FE6AF021A2F07C6650323BE19C93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121138/A5506FADCE917AA99925516A147E0320322B5BDD/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1286,15 +1286,15 @@ States: rotY: 269.979767 rotZ: -1.40167895e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '14': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470339 @@ -1306,10 +1306,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119758/EE686A3287D3399347AD72140474F599585E68D5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119839/A92D5AF13B283117BD62EE84B657A3A71FBBD274/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1339,20 +1339,20 @@ States: rotY: 269.9885 rotZ: -0.000124786486 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '15': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1395,14 +1395,14 @@ States: XmlUI: '' '16': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1445,14 +1445,14 @@ States: XmlUI: '' '17': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1495,14 +1495,14 @@ States: XmlUI: '' '18': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1545,14 +1545,14 @@ States: XmlUI: '' '19': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1595,9 +1595,9 @@ States: XmlUI: '' '2': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1609,10 +1609,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120939/5A99D70BBAA96A7CCE94CBAA01BC8C9352F59174/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121002/727C40B7A122B3EC91AD1EF76741A9888E1FF0FF/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1642,20 +1642,20 @@ States: rotY: 269.987976 rotZ: -9.159232e-05 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '20': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomMesh: CastShadows: true ColliderURL: '' @@ -1698,9 +1698,9 @@ States: XmlUI: '' '3': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.211764365 @@ -1712,10 +1712,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120799/1AA70B46183E3DC9981CD93D0A289D456C368B15/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120870/FFA52250CDBE4067D16226E7B4C8D2E6BF263C5B/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1745,15 +1745,15 @@ States: rotY: 269.987885 rotZ: -0.00010959358 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '4': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.380391747 @@ -1765,10 +1765,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120230/08DDB68E10023CC76B9450989F3526F9744A9F77/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120299/D6B1AAFF9763CD6F410D56A716D731714DE34EF8/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1798,15 +1798,15 @@ States: rotY: 269.987854 rotZ: -0.000109348286 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '5': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.176470309 @@ -1818,10 +1818,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121217/CBDB66CA029638728CE27CCBD335BDCFF25B6BCE/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121301/8A83B84C4EC594D48259904616769E84C5191F83/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1851,15 +1851,15 @@ States: rotY: 269.9878 rotZ: -0.000119170043 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '7': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.647058845 @@ -1871,10 +1871,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119903/366BC6E113AE8B9BE480617CEC6BE564CF37CE93/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524119975/196A6AB09BE31462712BA7DF6F6698762B3FC98D/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1904,15 +1904,15 @@ States: rotY: 269.9878 rotZ: -0.000127649575 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '8': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195674 @@ -1924,10 +1924,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120070/74F06CA8602C110158A32ADFF9E1FC1FB858612B/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524120154/9E0936305F807390EBA6AB130E498BFEDBA7596C/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -1957,15 +1957,15 @@ States: rotY: 269.987823 rotZ: -0.000127514912 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' '9': AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.290195644 @@ -1977,10 +1977,10 @@ States: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121381/43FEB2F56E57A5B72E6E7F02E138539D5BB42AC1/ ImageURL: http://cloud-3.steamusercontent.com/ugc/2037355191524121455/F21B46B06BBF327601B4F8A5F9F00974149A6752/ - WidthScale: 0.0 + WidthScale: 0 Description: Action Token DragSelectable: true GMNotes: '' @@ -2010,7 +2010,7 @@ States: rotY: 269.987671 rotZ: -0.00012405579 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' @@ -2026,7 +2026,7 @@ Transform: rotY: 270.01 rotZ: 0.0 scaleX: 0.35 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.35 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Panel 463022.yaml b/unpacked/Custom_Tile Panel 463022.yaml index 6f8fe2936..e4c59a594 100644 --- a/unpacked/Custom_Tile Panel 463022.yaml +++ b/unpacked/Custom_Tile Panel 463022.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.495000154 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/273974515701259432/A09A20BE6300EAB285858E76A03BD781EE3845B5/ ImageURL: http://cloud-3.steamusercontent.com/ugc/273974515701259432/A09A20BE6300EAB285858E76A03BD781EE3845B5/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -39,12 +39,12 @@ Tooltip: false Transform: posX: 77.99 posY: 0.65 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 25.0 - scaleY: 1.0 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 25 + scaleY: 1 scaleZ: 2.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Phase Tracker Cache 16832f.yaml b/unpacked/Custom_Tile Phase Tracker Cache 16832f.yaml index bb42b7e22..6a03cd2bd 100644 --- a/unpacked/Custom_Tile Phase Tracker Cache 16832f.yaml +++ b/unpacked/Custom_Tile Phase Tracker Cache 16832f.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.0083 - r: 0.106229968 + r: 0.10623 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/982233321870235122/492996D07ABF6DDA4B605A3013C4892839DCF1F3/ ImageURL: http://cloud-3.steamusercontent.com/ugc/982233321870235122/492996D07ABF6DDA4B605A3013C4892839DCF1F3/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.15 posZ: -38.9 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Phase Tracker Cache 49922d.yaml b/unpacked/Custom_Tile Phase Tracker Cache 49922d.yaml index 75d76a29a..d9da548c3 100644 --- a/unpacked/Custom_Tile Phase Tracker Cache 49922d.yaml +++ b/unpacked/Custom_Tile Phase Tracker Cache 49922d.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.0083 - r: 0.106229968 + r: 0.10623 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/933819604050885611/845B5AA915F30492B5F34864698B9C3627FA5763/ ImageURL: http://cloud-3.steamusercontent.com/ugc/933819604050885611/845B5AA915F30492B5F34864698B9C3627FA5763/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.15 posZ: -39.99 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Phase Tracker Cache 557104.yaml b/unpacked/Custom_Tile Phase Tracker Cache 557104.yaml index 3f4443d39..b49af40ae 100644 --- a/unpacked/Custom_Tile Phase Tracker Cache 557104.yaml +++ b/unpacked/Custom_Tile Phase Tracker Cache 557104.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.0083 - r: 0.106229968 + r: 0.10623 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/933819604050849085/9E22AFD7B0157140FC177DBCCBCB1D61D6A0329F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/933819604050849085/9E22AFD7B0157140FC177DBCCBCB1D61D6A0329F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.15 posZ: -41.09 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Phase Tracker Cache 645841.yaml b/unpacked/Custom_Tile Phase Tracker Cache 645841.yaml index 4c46521de..5089962dd 100644 --- a/unpacked/Custom_Tile Phase Tracker Cache 645841.yaml +++ b/unpacked/Custom_Tile Phase Tracker Cache 645841.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.0083 - r: 0.106229968 + r: 0.10623 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/982233321870237261/C287CAED2423970F33E72D6C7415CBEC6794C533/ ImageURL: http://cloud-3.steamusercontent.com/ugc/982233321870237261/C287CAED2423970F33E72D6C7415CBEC6794C533/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.15 posZ: -37.81 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Phase Tracker d0c8fa.yaml b/unpacked/Custom_Tile Phase Tracker d0c8fa.yaml index 76641a24d..96754917c 100644 --- a/unpacked/Custom_Tile Phase Tracker d0c8fa.yaml +++ b/unpacked/Custom_Tile Phase Tracker d0c8fa.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 + b: 0 g: 0.0083 - r: 0.106229968 + r: 0.10623 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.2 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/933819604050849085/9E22AFD7B0157140FC177DBCCBCB1D61D6A0329F/ ImageURL: http://cloud-3.steamusercontent.com/ugc/933819604050849085/9E22AFD7B0157140FC177DBCCBCB1D61D6A0329F/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Use contextmenu option to enable broadcasting phase changes. Left-click: Next phase @@ -53,7 +53,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 1.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Player Cards 2d30ee.ttslua b/unpacked/Custom_Tile Player Cards 2d30ee.ttslua index 30be962f5..84f0b6e99 100644 --- a/unpacked/Custom_Tile Player Cards 2d30ee.ttslua +++ b/unpacked/Custom_Tile Player Cards 2d30ee.ttslua @@ -41,10 +41,262 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("playercards/SpawnBag", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/PlayerCardSpawner") + +-- Allows spawning of defined lists of cards which will be created from the template in the All +-- Player Cards bag. SpawnBag.spawn will create objects based on a table definition, while +-- SpawnBag.recall will clean them all up. Recall will be limited to a small area around the +-- spawned objects. Objects moved out of this area will not be cleaned up. +-- +-- SpawnSpec: Spawning requires a spawn specification with the following structure: +-- { +-- name: Name of this spawn content, used for internal tracking. Multiple specs can be spawned, +-- but each requires a separate name +-- cards: A list of card IDs to be spawned +-- globalPos: Where the spawned objects should be placed, in global coordinates. This should be +-- a valid Vector with x, y, and z defined, e.g. { x = 5, y = 1, z = 15 } +-- rotation: Rotation for the spawned objects. X=180 should be used for face down items. As with +-- globalPos, this should be a valid Vector with x, y, and z defined +-- spread: Optional Boolean. If present and true, cards will be spawned next to each other in a +-- spread moving to the right. globalPos will define the location of the first card, each +-- after that will be moved a predefined distance +-- spreadCols: Optional integer. If spread is true, specifies the maximum columns cards will be +-- laid out in before starting a new row. If spread is true but spreadCols is not set, all +-- cards will be in a single row (however long that may be) +-- } +-- See BondedBag.ttslua for an example +do + local allCardsBagApi = require("playercards/AllCardsBagApi") + + local SpawnBag = { } + local internal = { } + + -- To assist debugging, will draw a box around the recall zone when it's set up + local SHOW_RECALL_ZONE = false + + -- Distance to expand the recall zone around any added object. + local RECALL_BUFFER_X = 0.9 + local RECALL_BUFFER_Z = 0.5 + + -- In order to mimic the behavior of the previous memory buttons we use a temporary bag when + -- recalling objects. This bag is tiny and transparent, and will be placed at the same location as + -- this object. Once all placed cards are recalled bag to this bag, it will be destroyed + local RECALL_BAG = { + Name = "Bag", + Transform = { + scaleX = 0.01, + scaleY = 0.01, + scaleZ = 0.01, + }, + ColorDiffuse = { + r = 0, + g = 0, + b = 0, + a = 0, + }, + Locked = true, + Grid = true, + Snap = false, + Tooltip = false, + } + + -- Tracks what has been placed by this "bag" so they can be recalled + local placedSpecs = { } + local placedObjectGuids = { } + local recallZone = nil + + -- Loads a table of saved state, extracted during the parent object's onLoad + SpawnBag.loadFromSave = function(saveTable) + placedSpecs = saveTable.placed + placedObjectGuids = saveTable.placedObjects + recallZone = saveTable.recall + end + + -- Generates a table of save state that can be included in the parent object's onSave + SpawnBag.getStateForSave = function() + return { + placed = placedSpecs, + placedObjects = placedObjectGuids, + recall = recallZone, + } + end + + -- Places the given spawnSpec on the table. See SpawnBag.ttslua header for spawnSpec table data and + -- examples + SpawnBag.spawn = function(spawnSpec) + -- Limit to one placement at a time + if (placedSpecs[spawnSpec.name]) then + return + end + if (spawnSpec == nil) then + -- TODO: error here + return + end + local cardsToSpawn = { } + local cardList = spawnSpec.cards + for _, cardId in ipairs(cardList) do + local cardData = allCardsBagApi.getCardById(cardId) + if (cardData ~= nil) then + table.insert(cardsToSpawn, cardData) + else + -- TODO: error here + end + end + if (spawnSpec.spread) then + Spawner.spawnCardSpread(cardsToSpawn, spawnSpec.globalPos, spawnSpec.spreadCols or 9999, spawnSpec.rotation, false, internal.recordPlacedObject) + else + -- TTS decks come out in reverse order of the cards, reverse the list so the input order stays + -- This only applies for decks; spreads are spawned by us in the order given + if spawnSpec.rotation.z ~= 180 then + cardsToSpawn = internal.reverseList(cardsToSpawn) + end + Spawner.spawnCards(cardsToSpawn, spawnSpec.globalPos, spawnSpec.rotation, false, internal.recordPlacedObject) + end + placedSpecs[spawnSpec.name] = true + end + + -- Recalls all spawned objects to the bag, and clears the placedObjectGuids list + ---@param fast Boolean. If true, cards will be deleted directly without faking the bag recall. + SpawnBag.recall = function(fast) + if fast then + internal.deleteSpawned() + else + internal.recallSpawned() + end + + -- We've recalled everything we can, some cards may have been moved out of the + -- card area. Just reset at this point. + placedSpecs = { } + placedObjectGuids = { } + recallZone = nil + end + + -- Deleted all spawned cards. + internal.deleteSpawned = function() + for guid, _ in pairs(placedObjectGuids) do + local obj = getObjectFromGUID(guid) + if (obj ~= nil) then + if (internal.isInRecallZone(obj)) then + obj.destruct() + end + placedObjectGuids[guid] = nil + end + end + end + + -- Recalls spawned cards with a fake bag that replicates the memory bag recall style. + internal.recallSpawned = function() + local trash = spawnObjectData({data = RECALL_BAG, position = self.getPosition()}) + for guid, _ in pairs(placedObjectGuids) do + local obj = getObjectFromGUID(guid) + if (obj ~= nil) then + if (internal.isInRecallZone(obj)) then + trash.putObject(obj) + end + placedObjectGuids[guid] = nil + end + end + + trash.destruct() + end + + + -- Callback for when an object has been spawned. Tracks the object for later recall and updates the + -- recall zone. + internal.recordPlacedObject = function(spawned) + placedObjectGuids[spawned.getGUID()] = true + internal.expandRecallZone(spawned) + end + + -- Expands the current recall zone based on the position of the given object. The recall zone will + -- be maintained as the bounding box of the extreme object positions, plus a small amount of buffer + internal.expandRecallZone = function(spawnedCard) + local pos = spawnedCard.getPosition() + if (recallZone == nil) then + -- First card out of the bag, initialize surrounding that + recallZone = { } + recallZone.upperLeft = { x = pos.x + RECALL_BUFFER_X, z = pos.z + RECALL_BUFFER_Z } + recallZone.lowerRight = { x = pos.x - RECALL_BUFFER_X, z = pos.z - RECALL_BUFFER_Z } + return + else + if (pos.x > recallZone.upperLeft.x) then + recallZone.upperLeft.x = pos.x + RECALL_BUFFER_X + end + if (pos.x < recallZone.lowerRight.x) then + recallZone.lowerRight.x = pos.x - RECALL_BUFFER_X + end + if (pos.z > recallZone.upperLeft.z) then + recallZone.upperLeft.z = pos.z + RECALL_BUFFER_Z + end + if (pos.z < recallZone.lowerRight.z) then + recallZone.lowerRight.z = pos.z - RECALL_BUFFER_Z + end + end + if (SHOW_RECALL_ZONE) then + local y = 1.5 + local thick = 0.05 + Global.setVectorLines({ + { + points = { {recallZone.upperLeft.x,y,recallZone.upperLeft.z}, {recallZone.upperLeft.x,y,recallZone.lowerRight.z} }, + color = {1,0,0}, + thickness = thick, + rotation = {0,0,0}, + }, + { + points = { {recallZone.upperLeft.x,y,recallZone.lowerRight.z}, {recallZone.lowerRight.x,y,recallZone.lowerRight.z} }, + color = {1,0,0}, + thickness = thick, + rotation = {0,0,0}, + }, + { + points = { {recallZone.lowerRight.x,y,recallZone.lowerRight.z}, {recallZone.lowerRight.x,y,recallZone.upperLeft.z} }, + color = {1,0,0}, + thickness = thick, + rotation = {0,0,0}, + }, + { + points = { {recallZone.lowerRight.x,y,recallZone.upperLeft.z}, {recallZone.upperLeft.x,y,recallZone.upperLeft.z} }, + color = {1,0,0}, + thickness = thick, + rotation = {0,0,0}, + }, + }) + end + end + + -- Checks to see if the given object is in the current recall zone. If there isn't a recall zone, + -- will return true so that everything can be easily cleaned up. + internal.isInRecallZone = function(obj) + if (recallZone == nil) then + return true + end + local pos = obj.getPosition() + return (pos.x < recallZone.upperLeft.x and pos.x > recallZone.lowerRight.x + and pos.z < recallZone.upperLeft.z and pos.z > recallZone.lowerRight.z) + end + + internal.reverseList = function(list) + local reversed = { } + for i = 1, #list do + reversed[i] = list[#list - i + 1] + end + + return reversed + end + + return SpawnBag +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playercards/PlayerCardPanel") +end) __bundle_register("playercards/PlayerCardPanel", function(require, _LOADED, __bundle_register, __bundle_modules) require("playercards/PlayerCardPanelData") -local spawnBag = require("playercards/SpawnBag") + +local allCardsBagApi = require("playercards/AllCardsBagApi") local arkhamDb = require("arkhamdb/ArkhamDb") +local spawnBag = require("playercards/SpawnBag") -- Size and position information for the three rows of class buttons local CIRCLE_BUTTON_SIZE = 250 @@ -65,8 +317,6 @@ local CYCLE_COLUMN_COUNT = 3 local CYCLE_BUTTONS_X_OFFSET = 0.267 local CYCLE_BUTTONS_Z_OFFSET = 0.2665 -local ALL_CARDS_BAG_GUID = "15bb07" - local STARTER_DECK_MODE_SELECTED_COLOR = { 0.2, 0.2, 0.2, 0.8 } local TRANSPARENT = { 0, 0, 0, 0 } local STARTER_DECK_MODE_STARTERS = "starters" @@ -94,7 +344,7 @@ local START_POSITIONS = { randomWeakness = Vector(0, 2, 1.4), -- Because the card spread is handled by the SpawnBag, we don't know (programatically) where this -- should be placed. If more customizable cards are added it will need to be moved. - summonedServitor = Vector(CARD_WIDTH * -6.5, 2, 1.7), + summonedServitor = Vector(CARD_WIDTH * -7.5, 2, 1.7), } -- Shifts to move rows of cards, and groups of rows, as different groupings are laid out @@ -132,6 +382,7 @@ local CYCLE_LIST = { "The Innsmouth Conspiracy", "Edge of the Earth", "The Scarlet Keys", + "The Feast of Hemlock Vale", "Investigator Packs" } @@ -324,8 +575,11 @@ function createCycleButtons() colCount = 0 buttonPos.z = buttonPos.z + CYCLE_BUTTONS_Z_OFFSET * rowCount if rowCount == 3 then - -- Account for centered button on the final row + -- Account for two centered buttons on the final row + buttonPos.x = buttonPos.x + CYCLE_BUTTONS_X_OFFSET / 2 + --[[ Account for centered button on the final row buttonPos.x = buttonPos.x + CYCLE_BUTTONS_X_OFFSET + ]] end else buttonPos.x = buttonPos.x + CYCLE_BUTTONS_X_OFFSET @@ -490,8 +744,7 @@ function spawnInvestigators(groupName) local position = getInvestigatorRowStartPos(investigatorCount, row) for i, investigatorName in ipairs(INVESTIGATOR_GROUPS[groupName]) do - for _, spawnSpec in ipairs(buildInvestigatorSpawnSpec( - investigatorName, INVESTIGATORS[investigatorName], position, false)) do + for _, spawnSpec in ipairs(buildInvestigatorSpawnSpec(investigatorName, INVESTIGATORS[investigatorName], position)) do spawnBag.spawn(spawnSpec) end position:add(investigatorPositionShiftCol) @@ -623,19 +876,18 @@ end ---@param cardClass String. Class to place ("Guardian", "Seeker", etc) ---@param isUpgraded Boolean. If true, spawn the Level 1-5 cards. Otherwise, Level 0. function placeClassCards(cardClass, isUpgraded) - local allCardsBag = getObjectFromGUID(ALL_CARDS_BAG_GUID) - local indexReady = allCardsBag.call("isIndexReady") + local indexReady = allCardsBagApi.isIndexReady() if (not indexReady) then broadcastToAll("Still loading player cards, please try again in a few seconds", {0.9, 0.2, 0.2}) return end - local cardIdList = allCardsBag.call("getCardsByClassAndLevel", {class = cardClass, upgraded = isUpgraded}) + local cardIdList = allCardsBagApi.getCardsByClassAndLevel(cardClass, isUpgraded) local skillList = { } local eventList = { } local assetList = { } for _, cardId in ipairs(cardIdList) do - local cardMetadata = allCardsBag.call("getCardById", { id = cardId }).metadata + local cardMetadata = allCardsBagApi.getCardById(cardId).metadata if (cardMetadata.type == "Skill") then table.insert(skillList, cardId) elseif (cardMetadata.type == "Event") then @@ -684,13 +936,12 @@ end function spawnCycle(cycle) prepareToPlaceCards() spawnInvestigators(cycle) - local allCardsBag = getObjectFromGUID(ALL_CARDS_BAG_GUID) - local indexReady = allCardsBag.call("isIndexReady") + local indexReady = allCardsBagApi.isIndexReady() if (not indexReady) then broadcastToAll("Still loading player cards, please try again in a few seconds", {0.9, 0.2, 0.2}) return end - local cycleCardList = allCardsBag.call("getCardsByCycle", cycle) + local cycleCardList = allCardsBagApi.getCardsByCycle(cycle) local copiedList = { } for i, id in ipairs(cycleCardList) do copiedList[i] = id @@ -738,17 +989,16 @@ end -- Clears the current cards, and places all basic weaknesses on the table. function spawnWeaknesses() prepareToPlaceCards() - local allCardsBag = getObjectFromGUID(ALL_CARDS_BAG_GUID) - local indexReady = allCardsBag.call("isIndexReady") + local indexReady = allCardsBagApi.isIndexReady() if (not indexReady) then broadcastToAll("Still loading player cards, please try again in a few seconds", {0.9, 0.2, 0.2}) return end - local weaknessIdList = allCardsBag.call("getUniqueWeaknesses") + local weaknessIdList = allCardsBagApi.getUniqueWeaknesses() local basicWeaknessList = { } local otherWeaknessList = { } for i, id in ipairs(weaknessIdList) do - local cardMetadata = allCardsBag.call("getCardById", { id = id }).metadata + local cardMetadata = allCardsBagApi.getCardById(id).metadata if cardMetadata.basicWeaknessCount ~= nil and cardMetadata.basicWeaknessCount > 0 then table.insert(basicWeaknessList, id) elseif excludedNonBasicWeaknesses[id] == nil then @@ -786,8 +1036,7 @@ end function spawnRandomWeakness() prepareToPlaceCards() - local allCardsBag = getObjectFromGUID(ALL_CARDS_BAG_GUID) - local weaknessId = allCardsBag.call("getRandomWeaknessId") + local weaknessId = allCardsBagApi.getRandomWeaknessId() if (weaknessId == nil) then broadcastToAll("All basic weaknesses are in play!", {0.9, 0.2, 0.2}) return @@ -802,7 +1051,9 @@ end end) __bundle_register("arkhamdb/ArkhamDb", function(require, _LOADED, __bundle_register, __bundle_modules) do + local allCardsBagApi = require("playercards/AllCardsBagApi") local playAreaApi = require("core/PlayAreaApi") + local ArkhamDb = { } local internal = { } @@ -859,8 +1110,7 @@ do callback) -- Get a simple card to see if the bag indexes are complete. If not, abort -- the deck load. The called method will handle player notification. - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) - local checkCard = allCardsBag.call("getCardById", { id = "01001" }) + local checkCard = allCardsBagApi.getCardById("01001") if (checkCard ~= nil and checkCard.data == nil) then return end @@ -946,12 +1196,14 @@ do if loadInvestigators then loadAltInvestigator = internal.addInvestigatorCards(deck, slots) end - internal.maybeAddCustomizeUpgradeSheets(slots) + + internal.maybeModifyDeckFromDescription(slots, deck.description_md) internal.maybeAddSummonedServitor(slots) internal.maybeAddOnTheMend(slots, playerColor) internal.maybeAddRealityAcidReference(slots) local bondList = internal.extractBondedCards(slots) internal.checkTaboos(deck.taboo_id, slots, playerColor) + internal.maybeAddUpgradeSheets(slots) -- get upgrades for customizable cards local customizations = {} @@ -970,13 +1222,12 @@ do ---@param playerColor String Color of the player this deck is being loaded for. Used for broadcast --- if a weakness is added. internal.maybeDrawRandomWeakness = function(slots, playerColor) - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) local randomWeaknessAmount = slots[RANDOM_WEAKNESS_ID] or 0 slots[RANDOM_WEAKNESS_ID] = nil if randomWeaknessAmount ~= 0 then for i=1, randomWeaknessAmount do - local weaknessId = allCardsBag.call("getRandomWeaknessId") + local weaknessId = allCardsBagApi.getRandomWeaknessId() slots[weaknessId] = (slots[weaknessId] or 0) + 1 end internal.maybePrint("Added " .. randomWeaknessAmount .. " random basic weakness(es) to deck", playerColor) @@ -1000,7 +1251,7 @@ do local altArt = { front = "normal", back = "normal" } -- translating front ID - if altFrontId > 90000 and altFrontId < 90047 then + if altFrontId > 90000 and altFrontId < 90100 then altArt.front = "parallel" elseif altFrontId > 01500 and altFrontId < 01506 then altArt.front = "revised" @@ -1009,7 +1260,7 @@ do end -- translating back ID - if altBackId > 90000 and altBackId < 90047 then + if altBackId > 90000 and altBackId < 90100 then altArt.back = "parallel" elseif altBackId > 01500 and altBackId < 01506 then altArt.back = "revised" @@ -1041,11 +1292,10 @@ do -- Process the card list looking for the customizable cards, and add their upgrade sheets if needed ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number -- of those cards which will be spawned - internal.maybeAddCustomizeUpgradeSheets = function(slots) - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) + internal.maybeAddUpgradeSheets = function(slots) for cardId, _ in pairs(slots) do -- upgrade sheets for customizable cards - local upgradesheet = allCardsBag.call("getCardById", { id = cardId .. "-c" }) + local upgradesheet = allCardsBagApi.getCardById(cardId .. "-c") if upgradesheet ~= nil then slots[cardId .. "-c"] = 1 end @@ -1088,18 +1338,66 @@ do end end + -- Processes the deck description from ArkhamDB and modifies the slot list accordingly + ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number + ---@param description String The deck desription from ArkhamDB + internal.maybeModifyDeckFromDescription = function(slots, description) + -- check for import instructions + local pos = string.find(description, "++SCED import instructions++") + if not pos then return end + + -- remove everything before instructions (including newline) + local tempStr = string.sub(description, pos + 30) + + -- parse each line in instructions + for line in tempStr:gmatch("([^\n]+)") do + -- remove dashes at the start + line = line:gsub("%- ", "") + + -- remove spaces + line = line:gsub("%s", "") + + -- get instructor + local instructor = "" + for word in line:gmatch("%a+:") do + instructor = word + break + end + + if instructor == "" or (instructor ~= "add:" and instructor ~= "remove:") then return end + + -- remove instructor from line + line = line:gsub(instructor, "") + + -- evaluate instructions + local cardIds = {} + for str in line:gmatch("([^,]+)") do + if instructor == "add:" then + slots[str] = (slots[str] or 0) + 1 + elseif instructor == "remove:" then + if slots[str] == nil then break end + slots[str] = math.max(slots[str] - 1, 0) + end + end + end + end + -- Process the slot list and looks for any cards which are bonded to those in the deck. Adds those cards to the slot list. ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number of those cards which will be spawned internal.extractBondedCards = function(slots) - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) -- Create a list of bonded cards first so we don't modify slots while iterating local bondedCards = { } local bondedList = { } for cardId, cardCount in pairs(slots) do - local card = allCardsBag.call("getCardById", { id = cardId }) + local card = allCardsBagApi.getCardById(cardId) if (card ~= nil and card.metadata.bonded ~= nil) then for _, bond in ipairs(card.metadata.bonded) do - bondedCards[bond.id] = bond.count + -- add a bonded card for each copy of the parent card (except for Pendant of the Queen) + if bond.id == "06022" then + bondedCards[bond.id] = bond.count + else + bondedCards[bond.id] = bond.count * cardCount + end -- We need to know which cards are bonded to determine their position, remember them bondedList[bond.id] = true -- Also adding taboo versions of bonded cards to the list @@ -1120,15 +1418,14 @@ do ---@param slots Table The slot list for cards in this deck. Table key is the cardId, value is the number of those cards which will be spawned internal.checkTaboos = function(tabooId, slots, playerColor) if tabooId then - local allCardsBag = getObjectFromGUID(configuration.card_bag_guid) for cardId, _ in pairs(tabooList[tabooId].cards) do if slots[cardId] ~= nil then -- Make sure there's a taboo version of the card before we replace it -- SCED only maintains the most recent taboo cards. If a deck is using -- an older taboo list it's possible the card isn't a taboo any more - local tabooCard = allCardsBag.call("getCardById", { id = cardId .. "-t" }) + local tabooCard = allCardsBagApi.getCardById(cardId .. "-t") if tabooCard == nil then - local basicCard = allCardsBag.call("getCardById", { id = cardId }) + local basicCard = allCardsBagApi.getCardById(cardId) internal.maybePrint("Taboo version for " .. basicCard.data.Nickname .. " is not available. Using standard version", playerColor) else slots[cardId .. "-t"] = slots[cardId] @@ -1279,49 +1576,130 @@ do return ArkhamDb end end) +__bundle_register("playercards/AllCardsBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local AllCardsBagApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getAllCardsBag() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "AllCardsBag") + end + + -- Returns a specific card from the bag, based on ArkhamDB ID + ---@param id table String ID of the card to retrieve + ---@return table table + -- If the indexes are still being constructed, an empty table is + -- returned. Otherwise, a single table with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardById = function(id) + return getAllCardsBag().call("getCardById", {id = id}) + end + + -- Gets a random basic weakness from the bag. Once a given ID has been returned + -- it will be removed from the list and cannot be selected again until a reload + -- occurs or the indexes are rebuilt, which will refresh the list to include all + -- weaknesses. + ---@return id String ID of the selected weakness. + AllCardsBagApi.getRandomWeaknessId = function() + return getAllCardsBag().call("getRandomWeaknessId") + end + + AllCardsBagApi.isIndexReady = function() + return getAllCardsBag().call("isIndexReady") + end + + -- Called by Hotfix bags when they load. If we are still loading indexes, then + -- the all cards and hotfix bags are being loaded together, and we can ignore + -- this call as the hotfix will be included in the initial indexing. If it is + -- called once indexing is complete it means the hotfix bag has been added + -- later, and we should rebuild the index to integrate the hotfix bag. + AllCardsBagApi.rebuildIndexForHotfix = function() + return getAllCardsBag().call("rebuildIndexForHotfix") + end + + -- Searches the bag for cards which match the given name and returns a list. Note that this is + -- an O(n) search without index support. It may be slow. + ---@param name String or string fragment to search for names + ---@param exact Boolean Whether the name match should be exact + AllCardsBagApi.getCardsByName = function(name, exact) + return getAllCardsBag().call("getCardsByName", {name = name, exact = exact}) + end + + AllCardsBagApi.isBagPresent = function() + return getAllCardsBag() and true + end + + -- Returns a list of cards from the bag matching a class and level (0 or upgraded) + ---@param class String class to retrieve ("Guardian", "Seeker", etc) + ---@param upgraded Boolean true for upgraded cards (Level 1-5), false for Level 0 + ---@return: If the indexes are still being constructed, returns an empty table. + -- Otherwise, a list of tables, each with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardsByClassAndLevel = function(class, upgraded) + return getAllCardsBag().call("getCardsByClassAndLevel", {class = class, upgraded = upgraded}) + end + + AllCardsBagApi.getCardsByCycle = function(cycle) + return getAllCardsBag().call("getCardsByCycle", cycle) + end + + AllCardsBagApi.getUniqueWeaknesses = function() + return getAllCardsBag().call("getUniqueWeaknesses") + end + + return AllCardsBagApi +end +end) __bundle_register("playercards/PlayerCardPanelData", function(require, _LOADED, __bundle_register, __bundle_modules) BONDED_CARD_LIST = { - "05314", -- Soothing Melody - "06277", -- Wish Eater - "06019", -- Bloodlust - "06022", -- Pendant of the Queen - "05317", -- Blood-rite - "06113", -- Essence of the Dream - "06028", -- Stars Are Right - "06025", -- Guardian of the Crystallizer - "06283", -- Unbound Beast - "06032", -- Zeal - "06031", -- Hope - "06033", -- Augur - "06331", -- Dream Parasite - "06015a", -- Dream-Gate + "05314", -- Soothing Melody + "06277", -- Wish Eater + "06019", -- Bloodlust + "06022", -- Pendant of the Queen + "05317", -- Blood-rite + "06113", -- Essence of the Dream + "06028", -- Stars Are Right + "06025", -- Guardian of the Crystallizer + "06283", -- Unbound Beast + "06032", -- Zeal + "06031", -- Hope + "06033", -- Augur + "06331", -- Dream Parasite + "06015a", -- Dream-Gate + "10006", -- Aetheric Current (Yuggoth) + "10007", -- Aetheric Current (Yoth) + "10045" -- Uncanny Growth } UPGRADE_SHEET_LIST = { - "09040-c", -- Alchemical Distillation - "09023-c", -- Custom Modifications - "09059-c", -- Damning Testimony - "09041-c", -- Emperical Hypothesis - "09060-c", -- Friends in Low Places - "09101-c", -- Grizzled - "09061-c", -- Honed Instinct - "09021-c", -- Hunter's Armor - "09119-c", -- Hyperphysical Shotcaster - "09079-c", -- Living Ink - "09100-c", -- Makeshift Trap - "09099-c", -- Pocket Multi Tool - "09081-c", -- Power Word - "09022-c", -- Runic Axe - "09080-c", -- Summoned Servitor - "09042-c", -- Raven's Quill + "09040-c", -- Alchemical Distillation + "09023-c", -- Custom Modifications + "09059-c", -- Damning Testimony + "09041-c", -- Emperical Hypothesis + "09060-c", -- Friends in Low Places + "09101-c", -- Grizzled + "09061-c", -- Honed Instinct + "09021-c", -- Hunter's Armor + "09119-c", -- Hyperphysical Shotcaster + "09079-c", -- Living Ink + "09100-c", -- Makeshift Trap + "09099-c", -- Pocket Multi Tool + "09081-c", -- Power Word + "09081-t-c", -- Power Word (Taboo) + "09022-c", -- Runic Axe + "09022-t-c", -- Runic Axe (Taboo) + "09080-c", -- Summoned Servitor + "09042-c", -- Raven's Quill } EVOLVED_WEAKNESSES = { - "04039", - "04041", - "04042", - "53014", - "53015", + "04039", + "04041", + "04042", + "53014", + "53015", } ------------------ START INVESTIGATOR DATA DEFINITION ------------------ @@ -1336,7 +1714,8 @@ INVESTIGATOR_GROUPS = { "Nathaniel Cho", "Sister Mary", "Daniela Reyes", - "Carson Sinclair" + "Carson Sinclair", + "Wilson Richards" }, ["Seeker"] = { "Daisy Walker", @@ -1348,7 +1727,8 @@ INVESTIGATOR_GROUPS = { "Harvey Walters", "Amanda Sharpe", "Norman Withers", - "Vincent Lee" + "Vincent Lee", + "Kate Winthrop" }, ["Rogue"] = { "\"Skids\" O'Toole", @@ -1360,7 +1740,8 @@ INVESTIGATOR_GROUPS = { "Winifred Habbamock", "Trish Scarborough", "Monterey Jack", - "Kymani Jones" + "Kymani Jones", + "Alessandra Zorzi" }, ["Mystic"] = { "Agnes Baker", @@ -1374,7 +1755,8 @@ INVESTIGATOR_GROUPS = { "Dexter Drake", "Lily Chen", "Amina Zidane", - "Gloria Goldberg" + "Gloria Goldberg", + "Kōhaku Narukami" }, ["Survivor"] = { "Wendy Adams", @@ -1386,7 +1768,8 @@ INVESTIGATOR_GROUPS = { "Stella Clark", "Silas Marsh", "Bob Jenkins", - "Darrell Simmons" + "Darrell Simmons", + "Hank Samson" }, ["Neutral"] = { "Lola Hayes", @@ -1466,22 +1849,29 @@ INVESTIGATOR_GROUPS = { "Amina Zidane", "Darrell Simmons", "Charlie Kane" - } + }, + ["The Feast of Hemlock Vale"] = { + "Wilson Richards", + "Kate Winthrop", + "Alessandra Zorzi", + "Kōhaku Narukami", + "Hank Samson" + } } -INVESTIGATORS = { } ---Core-- +INVESTIGATORS = {} +-- Core Box INVESTIGATORS["Roland Banks"] = { - cards = { "01001", "01001-p", "01001-pf", "01001-pb" }, - minicards = { "01001-m" }, - signatures = { "01006", "01007", "90030", "90031", "90025", "90026", "90027", "90028", "90029", "98005", "98006" }, - starterDeck = "2624931" + cards = { "01001", "01001-p", "01001-pf", "01001-pb" }, + minicards = { "01001-m" }, + signatures = { "01006", "01007", "90030", "90031", "90025", "90026", "90027", "90028", "90029", "98005", "98006" }, + starterDeck = "2624931" } INVESTIGATORS["Daisy Walker"] = { - cards = { "01002", "01002-p", "01002-pf", "01002-pb" }, - minicards = { "01002-m" }, - signatures = { "01008", "01009", "90002", "90003" }, - starterDeck = "2624938" + cards = { "01002", "01002-p", "01002-pf", "01002-pb" }, + minicards = { "01002-m" }, + signatures = { "01008", "01009", "90002", "90003" }, + starterDeck = "2624938" } INVESTIGATORS["\"Skids\" O'Toole"] = { cards = { "01003", "01003-p", "01003-pf", "01003-pb" }, @@ -1496,16 +1886,16 @@ INVESTIGATORS["Agnes Baker"] = { starterDeck = "2624944" } INVESTIGATORS["Wendy Adams"] = { - cards = { "01005", "01005-p", "01005-pf", "01005-pb"}, + cards = { "01005", "01005-p", "01005-pf", "01005-pb" }, minicards = { "01005-m" }, signatures = { "01014", "01015", "01515", "90039", "90040", "90038" }, starterDeck = "2624949" } ---Dunwich-- +-- The Dunwich Legacy INVESTIGATORS["Zoey Samaras"] = { - cards = { "02001" }, + cards = { "02001", "02001-p", "02001-pf", "02001-pb" }, minicards = { "02001-m" }, - signatures = { "02006", "02007" }, + signatures = { "02006", "02007", "90060", "90061" }, starterDeck = "2624950" } INVESTIGATORS["Rex Murphy"] = { @@ -1521,9 +1911,9 @@ INVESTIGATORS["Jenny Barnes"] = { starterDeck = "2624961" } INVESTIGATORS["Jim Culver"] = { - cards = { "02004" }, + cards = { "02004", "02004-p", "02004-pf", "02004-pb" }, minicards = { "02004-m" }, - signatures = { "02012", "02013" }, + signatures = { "02012", "02013", "90050", "90051", "90052", "90053" }, starterDeck = "2624965" } INVESTIGATORS["\"Ashcan\" Pete"] = { @@ -1532,7 +1922,7 @@ INVESTIGATORS["\"Ashcan\" Pete"] = { signatures = { "02014", "02015", "90047", "90048" }, starterDeck = "2624969" } ---Carcosa-- +-- The Path to Carcosa INVESTIGATORS["Mark Harrigan"] = { cards = { "03001" }, minicards = { "03001-m" }, @@ -1569,7 +1959,7 @@ INVESTIGATORS["Lola Hayes"] = { signatures = { "03018", "03018", "03019", "03019", "03019-t", "03019-t" }, starterDeck = "2624990" } ---Forgotten-- +-- The Forgotten Age INVESTIGATORS["Leo Anderson"] = { cards = { "04001" }, minicards = { "04001-m" }, @@ -1600,7 +1990,7 @@ INVESTIGATORS["Calvin Wright"] = { signatures = { "04015", "04016" }, starterDeck = "2625007" } ---Circle-- +-- The Circle Undone INVESTIGATORS["Carolyn Fern"] = { cards = { "05001" }, minicards = { "05001-m" }, @@ -1637,7 +2027,7 @@ INVESTIGATORS["Marie Lambeau"] = { signatures = { "05018", "05019" }, starterDeck = "2626395" } ---Dream-- +-- The Dream-Eaters INVESTIGATORS["Tommy Muldoon"] = { cards = { "06001" }, minicards = { "06001-m" }, @@ -1668,7 +2058,7 @@ INVESTIGATORS["Patrice Hathaway"] = { signatures = { "06016", "06017" }, starterDeck = "2626461" } ---Starter-- +-- Starter Decks INVESTIGATORS["Nathaniel Cho"] = { cards = { "60101" }, minicards = { "60101-m" }, @@ -1699,7 +2089,7 @@ INVESTIGATORS["Stella Clark"] = { signatures = { "60502", "60502", "60502", "60503" }, starterDeck = "2643934" } ---Innsmouth-- +-- The Innsmouth Conspiracy INVESTIGATORS["Sister Mary"] = { cards = { "07001" }, minicards = { "07001-m" }, @@ -1713,7 +2103,7 @@ INVESTIGATORS["Amanda Sharpe"] = { starterDeck = "2626469" } INVESTIGATORS["Trish Scarborough"] = { - cards = { "07003" }, + cards = { "07003", "07003-t" }, minicards = { "07003-m" }, signatures = { "07010", "07011" }, starterDeck = "2626479" @@ -1730,11 +2120,11 @@ INVESTIGATORS["Silas Marsh"] = { signatures = { "07014", "07015", "07016", "98014", "98015" }, starterDeck = "2626685" } ---Edge-- +-- Edge of the Earth INVESTIGATORS["Daniela Reyes"] = { cards = { "08001" }, minicards = { "08001-m" }, - signatures = {"08002", "08003" }, + signatures = { "08002", "08003" }, starterDeck = "2634588" } INVESTIGATORS["Norman Withers"] = { @@ -1744,9 +2134,9 @@ INVESTIGATORS["Norman Withers"] = { starterDeck = "2634603" } INVESTIGATORS["Monterey Jack"] = { - cards = { "08007" }, + cards = { "08007", "08007-p", "08007-pf", "08007-pb" }, minicards = { "08007-m" }, - signatures = { "08008", "08009" }, + signatures = { "08008", "08009", "90063", "90064" }, starterDeck = "2634652" } INVESTIGATORS["Lily Chen"] = { @@ -1761,12 +2151,12 @@ INVESTIGATORS["Bob Jenkins"] = { signatures = { "08017", "08018" }, starterDeck = "2634643" } ---Scarlet-- +-- The Scarlet Keys INVESTIGATORS["Carson Sinclair"] = { cards = { "09001" }, minicards = { "09001-m" }, signatures = { "09002", "09002", "09003" }, - starterDeck = "2634667 " + starterDeck = "2634667" } INVESTIGATORS["Vincent Lee"] = { cards = { "09004" }, @@ -1798,14 +2188,45 @@ INVESTIGATORS["Charlie Kane"] = { signatures = { "09019", "09020" }, starterDeck = "2634706" } +-- The Feast of Hemlock Vale +INVESTIGATORS["Wilson Richards"] = { + cards = { "10001" }, + minicards = { "10001-m" }, + signatures = { "10002", "10003" }, + starterDeck = "2634667" --carson deck as placeholder +} +INVESTIGATORS["Kate Winthrop"] = { + cards = { "10004" }, + minicards = { "10004-m" }, + signatures = { "10005", "10006", "10007", "10008" }, + starterDeck = "2643928" --harvey deck as placeholder +} +INVESTIGATORS["Alessandra Zorzi"] = { + cards = { "10009" }, + minicards = { "10009-m" }, + signatures = { "10010", "10010", "10010", "10011" }, + starterDeck = "2643931" --winifred deck as placeholder +} +INVESTIGATORS["Kōhaku Narukami"] = { + cards = { "10012" }, + minicards = { "10012-m" }, + signatures = { "10013", "10014" }, + starterDeck = "2636199" --gloria deck as placeholder +} +INVESTIGATORS["Hank Samson"] = { + cards = { "10015", "10015-b1", "10015-b2" }, + minicards = { "10015-m" }, + signatures = { "10017", "10018"}, + starterDeck = "2643934" --stella deck as placeholder +} +-- PnP content INVESTIGATORS["Subject 5U-21"] = { cards = { "89001" }, minicards = { "89001-m" }, signatures = { "89002", "89003", "89003", "89003", "89004", "89004", "89004", "89005" }, starterDeck = "2624990" -- Lola's deck id until Suzi is on ArkhamDB } - ---Promo-- +-- Promo content INVESTIGATORS["Gloria Goldberg"] = { cards = { "98019" }, minicards = { "98019-m" }, @@ -1814,355 +2235,171 @@ INVESTIGATORS["Gloria Goldberg"] = { } ------------------ END INVESTIGATOR DATA DEFINITION ------------------ end) -__bundle_register("playercards/SpawnBag", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/PlayerCardSpawner") - --- Allows spawning of defined lists of cards which will be created from the template in the All --- Player Cards bag. SpawnBag.spawn will create objects based on a table definition, while --- SpawnBag.recall will clean them all up. Recall will be limited to a small area around the --- spawned objects. Objects moved out of this area will not be cleaned up. --- --- SpawnSpec: Spawning requires a spawn specification with the following structure: --- { --- name: Name of this spawn content, used for internal tracking. Multiple specs can be spawned, --- but each requires a separate name --- cards: A list of card IDs to be spawned --- globalPos: Where the spawned objects should be placed, in global coordinates. This should be --- a valid Vector with x, y, and z defined, e.g. { x = 5, y = 1, z = 15 } --- rotation: Rotation for the spawned objects. X=180 should be used for face down items. As with --- globalPos, this should be a valid Vector with x, y, and z defined --- spread: Optional Boolean. If present and true, cards will be spawned next to each other in a --- spread moving to the right. globalPos will define the location of the first card, each --- after that will be moved a predefined distance --- spreadCols: Optional integer. If spread is true, specifies the maximum columns cards will be --- laid out in before starting a new row. If spread is true but spreadCols is not set, all --- cards will be in a single row (however long that may be) --- } --- See BondedBag.ttslua for an example -do - local SpawnBag = { } - local internal = { } - - -- To assist debugging, will draw a box around the recall zone when it's set up - local SHOW_RECALL_ZONE = false - - local ALL_CARDS_GUID = "15bb07" - - -- Distance to expand the recall zone around any added object. - local RECALL_BUFFER_X = 0.9 - local RECALL_BUFFER_Z = 0.5 - - -- In order to mimic the behavior of the previous memory buttons we use a temporary bag when - -- recalling objects. This bag is tiny and transparent, and will be placed at the same location as - -- this object. Once all placed cards are recalled bag to this bag, it will be destroyed - local RECALL_BAG = { - Name = "Bag", - Transform = { - scaleX = 0.01, - scaleY = 0.01, - scaleZ = 0.01, - }, - ColorDiffuse = { - r = 0, - g = 0, - b = 0, - a = 0, - }, - Locked = true, - Grid = true, - Snap = false, - Tooltip = false, - } - - -- Tracks what has been placed by this "bag" so they can be recalled - local placedSpecs = { } - local placedObjectGuids = { } - local recallZone = nil - - -- Loads a table of saved state, extracted during the parent object's onLoad - SpawnBag.loadFromSave = function(saveTable) - placedSpecs = saveTable.placed - placedObjectGuids = saveTable.placedObjects - recallZone = saveTable.recall - end - - -- Generates a table of save state that can be included in the parent object's onSave - SpawnBag.getStateForSave = function() - return { - placed = placedSpecs, - placedObjects = placedObjectGuids, - recall = recallZone, - } - end - - -- Places the given spawnSpec on the table. See SpawnBag.ttslua header for spawnSpec table data and - -- examples - SpawnBag.spawn = function(spawnSpec) - -- Limit to one placement at a time - if (placedSpecs[spawnSpec.name]) then - return - end - if (spawnSpec == nil) then - -- TODO: error here - return - end - local cardsToSpawn = { } - local allCardsBag = getObjectFromGUID(ALL_CARDS_GUID) - local cardList = spawnSpec.cards - for _, cardId in ipairs(cardList) do - local cardData = allCardsBag.call("getCardById", { id = cardId }) - if (cardData ~= nil) then - table.insert(cardsToSpawn, cardData) - else - -- TODO: error here - end - end - if (spawnSpec.spread) then - Spawner.spawnCardSpread(cardsToSpawn, spawnSpec.globalPos, spawnSpec.spreadCols or 9999, spawnSpec.rotation, false, internal.recordPlacedObject) - else - -- TTS decks come out in reverse order of the cards, reverse the list so the input order stays - -- This only applies for decks; spreads are spawned by us in the order given - if spawnSpec.rotation.z != 180 then - cardsToSpawn = internal.reverseList(cardsToSpawn) - end - Spawner.spawnCards(cardsToSpawn, spawnSpec.globalPos, spawnSpec.rotation, false, internal.recordPlacedObject) - end - placedSpecs[spawnSpec.name] = true - end - - -- Recalls all spawned objects to the bag, and clears the placedObjectGuids list - ---@param fast Boolean. If true, cards will be deleted directly without faking the bag recall. - SpawnBag.recall = function(fast) - if fast then - internal.deleteSpawned() - else - internal.recallSpawned() - end - - -- We've recalled everything we can, some cards may have been moved out of the - -- card area. Just reset at this point. - placedSpecs = { } - placedObjectGuids = { } - recallZone = nil - end - - -- Deleted all spawned cards. - internal.deleteSpawned = function() - for guid, _ in pairs(placedObjectGuids) do - local obj = getObjectFromGUID(guid) - if (obj ~= nil) then - if (internal.isInRecallZone(obj)) then - obj.destruct() - end - placedObjectGuids[guid] = nil - end - end - end - - -- Recalls spawned cards with a fake bag that replicates the memory bag recall style. - internal.recallSpawned = function() - local trash = spawnObjectData({data = RECALL_BAG, position = self.getPosition()}) - for guid, _ in pairs(placedObjectGuids) do - local obj = getObjectFromGUID(guid) - if (obj ~= nil) then - if (internal.isInRecallZone(obj)) then - trash.putObject(obj) - end - placedObjectGuids[guid] = nil - end - end - - trash.destruct() - end - - - -- Callback for when an object has been spawned. Tracks the object for later recall and updates the - -- recall zone. - internal.recordPlacedObject = function(spawned) - placedObjectGuids[spawned.getGUID()] = true - internal.expandRecallZone(spawned) - end - - -- Expands the current recall zone based on the position of the given object. The recall zone will - -- be maintained as the bounding box of the extreme object positions, plus a small amount of buffer - internal.expandRecallZone = function(spawnedCard) - local pos = spawnedCard.getPosition() - if (recallZone == nil) then - -- First card out of the bag, initialize surrounding that - recallZone = { } - recallZone.upperLeft = { x = pos.x + RECALL_BUFFER_X, z = pos.z + RECALL_BUFFER_Z } - recallZone.lowerRight = { x = pos.x - RECALL_BUFFER_X, z = pos.z - RECALL_BUFFER_Z } - return - else - if (pos.x > recallZone.upperLeft.x) then - recallZone.upperLeft.x = pos.x + RECALL_BUFFER_X - end - if (pos.x < recallZone.lowerRight.x) then - recallZone.lowerRight.x = pos.x - RECALL_BUFFER_X - end - if (pos.z > recallZone.upperLeft.z) then - recallZone.upperLeft.z = pos.z + RECALL_BUFFER_Z - end - if (pos.z < recallZone.lowerRight.z) then - recallZone.lowerRight.z = pos.z - RECALL_BUFFER_Z - end - end - if (SHOW_RECALL_ZONE) then - local y = 1.5 - local thick = 0.05 - Global.setVectorLines({ - { - points = { {recallZone.upperLeft.x,y,recallZone.upperLeft.z}, {recallZone.upperLeft.x,y,recallZone.lowerRight.z} }, - color = {1,0,0}, - thickness = thick, - rotation = {0,0,0}, - }, - { - points = { {recallZone.upperLeft.x,y,recallZone.lowerRight.z}, {recallZone.lowerRight.x,y,recallZone.lowerRight.z} }, - color = {1,0,0}, - thickness = thick, - rotation = {0,0,0}, - }, - { - points = { {recallZone.lowerRight.x,y,recallZone.lowerRight.z}, {recallZone.lowerRight.x,y,recallZone.upperLeft.z} }, - color = {1,0,0}, - thickness = thick, - rotation = {0,0,0}, - }, - { - points = { {recallZone.lowerRight.x,y,recallZone.upperLeft.z}, {recallZone.upperLeft.x,y,recallZone.upperLeft.z} }, - color = {1,0,0}, - thickness = thick, - rotation = {0,0,0}, - }, - }) - end - end - - -- Checks to see if the given object is in the current recall zone. If there isn't a recall zone, - -- will return true so that everything can be easily cleaned up. - internal.isInRecallZone = function(obj) - if (recallZone == nil) then - return true - end - local pos = obj.getPosition() - return (pos.x < recallZone.upperLeft.x and pos.x > recallZone.lowerRight.x - and pos.z < recallZone.upperLeft.z and pos.z > recallZone.lowerRight.z) - end - - internal.reverseList = function(list) - local reversed = { } - for i = 1, #list do - reversed[i] = list[#list - i + 1] - end - - return reversed - end - - return SpawnBag -end -end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi end end) -__bundle_register("playercards/PlayerCardSpawner", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("playercards/PlayerCardSpawner", function(require, _LOADED, __bundle_register, __bundle_modules) -- Amount to shift for the next card (zShift) or next row of cards (xShift) -- Note that the table rotation is weird, and the X axis is vertical while the -- Z axis is horizontal @@ -2296,7 +2533,7 @@ end -- "CustomDeck" field is a list of all CustomDecks used by cards within the -- deck, keyed by the DeckID and referencing the custom deck table ---@param deck: TTS deck data structure to add to ----@param card: Data for the card to be inserted +---@param cardData: Data for the card to be inserted Spawner.addCardToDeck = function(deck, cardData) for customDeckId, customDeckData in pairs(cardData.CustomDeck) do if (deck.CustomDeck[customDeckId] == nil) then @@ -2405,7 +2642,4 @@ Spawner.cardComparator = function(card1, card2) end end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("playercards/PlayerCardPanel") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Tile Player Cards 2d30ee.yaml b/unpacked/Custom_Tile Player Cards 2d30ee.yaml index 6a73f42b0..c74caf728 100644 --- a/unpacked/Custom_Tile Player Cards 2d30ee.yaml +++ b/unpacked/Custom_Tile Player Cards 2d30ee.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 - ImageSecondaryURL: https://i.imgur.com/s5H1THb.jpg - ImageURL: https://i.imgur.com/s5H1THb.jpg - WidthScale: 0.0 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: http://cloud-3.steamusercontent.com/ugc/2021607169641075457/C12E95AE17A6C6043118449CB8012F8509828325/ + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: 60.0 + posX: 60 posY: 1.48 - posZ: 71.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 10.0 - scaleY: 1.0 - scaleZ: 10.0 + posZ: 71 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 10 + scaleY: 1 + scaleZ: 10 Value: 0 XmlUI: !include 'Custom_Tile Player Cards 2d30ee.xml' diff --git a/unpacked/Custom_Tile Playermat 1 White 8b081b.ttslua b/unpacked/Custom_Tile Playermat 1 White 8b081b.ttslua index bfe93e975..624201554 100644 --- a/unpacked/Custom_Tile Playermat 1 White 8b081b.ttslua +++ b/unpacked/Custom_Tile Playermat 1 White 8b081b.ttslua @@ -41,180 +41,265 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +end +end) +__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local NavigationOverlayApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getNOHandler() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "NavigationOverlayHandler") + end + + -- Copies the visibility for the Navigation overlay + ---@param startColor String Color of the player to copy from + ---@param targetColor String Color of the targeted player + NavigationOverlayApi.copyVisibility = function(startColor, targetColor) + getNOHandler().call("copyVisibility", { + startColor = startColor, + targetColor = targetColor + }) + end + + -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) + ---@param playerColor String Color of the player to update the visibility for + NavigationOverlayApi.cycleVisibility = function(playerColor) + getNOHandler().call("cycleVisibility", playerColor) + end + + -- loads the specified camera for a player + ---@param player TTSPlayerInstance Player whose camera should be moved + ---@param camera Variant If number: Index of the camera view to load | If string: Color of the playermat to swap to + NavigationOverlayApi.loadCamera = function(player, camera) + getNOHandler().call("loadCameraFromApi", { + player = player, + camera = camera + }) + end + + return NavigationOverlayApi +end +end) __bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi end end) -__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local TokenSpawnTracker = { } - - local SPAWN_TRACKER_GUID = "e3ffc9" - - TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) - end - - TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") - end - - TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") - end - - TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") - end - - return TokenSpawnTracker -end -end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) ---------------------------------------------------------- --- specific setup (different for each playmat) ---------------------------------------------------------- - -TRASHCAN_GUID = "147e80" -STAT_TRACKER_GUID = "e598c2" -RESOURCE_COUNTER_GUID = "4406f0" -CLUE_COUNTER_GUID = "d86b7c" -CLUE_CLICKER_GUID = "db85d6" - require("playermat/Playmat") end) __bundle_register("playermat/Playmat", function(require, _LOADED, __bundle_register, __bundle_modules) -local tokenManager = require("core/token/TokenManager") -local tokenChecker = require("core/token/TokenChecker") +local chaosBagApi = require("chaosbag/ChaosBagApi") +local deckLib = require("util/DeckLib") +local guidReferenceApi = require("core/GUIDReferenceApi") +local mythosAreaApi = require("core/MythosAreaApi") local navigationOverlayApi = require("core/NavigationOverlayApi") - --- set true to enable debug logging and show Physics.cast() -local DEBUG = false +local searchLib = require("util/SearchLib") +local tokenChecker = require("core/token/TokenChecker") +local tokenManager = require("core/token/TokenManager") -- we use this to turn off collision handling until onLoad() is complete local collisionEnabled = false --- position offsets relative to mat [x, y, z] -local DRAWN_ENCOUNTER_CARD_OFFSET = {1.365, 0.5, -0.625} -local DRAWN_CHAOS_TOKEN_OFFSET = {-1.55, 0.25, -0.58} - -- x-Values for discard buttons local DISCARD_BUTTON_OFFSETS = {-1.365, -0.91, -0.455, 0, 0.455, 0.91} local SEARCH_AROUND_SELF_X_BUFFER = 8 --- defined areas for the function "inArea()"" +-- defined areas for object searching local MAIN_PLAY_AREA = { upperLeft = { x = 1.98, - z = 0.736, + z = 0.736 }, lowerRight = { x = -0.79, - z = -0.39, + z = -0.39 } } local INVESTIGATOR_AREA = { @@ -224,7 +309,7 @@ local INVESTIGATOR_AREA = { }, lowerRight = { x = -1.258, - z = -0.0805, + z = -0.0805 } } local THREAT_AREA = { @@ -234,19 +319,45 @@ local THREAT_AREA = { }, lowerRight = { x = -1.13, - z = -0.92, + z = -0.92 + } +} +local DECK_DISCARD_AREA = { + upperLeft = { + x = -1.62, + z = 0.855 + }, + lowerRight = { + x = -2.02, + z = -0.245 + }, + center = { + x = -1.82, + y = 0.5, + z = 0.305 + }, + size = { + x = 0.4, + y = 3, + z = 1.1 } } -local DRAW_DECK_POSITION = { x = -1.82, y = 1, z = 0 } -local DISCARD_PILE_POSITION = { x = -1.82, y = 1.5, z = 0.61 } +-- local position of draw and discard pile +local DRAW_DECK_POSITION = { x = -1.82, y = 0.1, z = 0 } +local DISCARD_PILE_POSITION = { x = -1.82, y = 0.1, z = 0.61 } -local TRASHCAN -local STAT_TRACKER -local RESOURCE_COUNTER +-- global position of encounter discard pile +local ENCOUNTER_DISCARD_POSITION = { x = -3.85, y = 1.5, z = 10.38} -- global variable so it can be reset by the Clean Up Helper activeInvestigatorId = "00000" + +-- table of type-object reference pairs of all owned objects +local ownedObjects = {} +local matColor = self.getMemo() + +-- variable to track the status of the "Show Draw Button" option local isDrawButtonVisible = false -- global variable to report "Dream-Enhancing Serum" status @@ -254,27 +365,25 @@ isDES = false function onSave() return JSON.encode({ - zoneID = zoneID, playerColor = playerColor, activeInvestigatorId = activeInvestigatorId, isDrawButtonVisible = isDrawButtonVisible }) end -function onLoad(save_state) - self.interactable = DEBUG +function onLoad(saveState) + self.interactable = false - TRASHCAN = getObjectFromGUID(TRASHCAN_GUID) - STAT_TRACKER = getObjectFromGUID(STAT_TRACKER_GUID) - RESOURCE_COUNTER = getObjectFromGUID(RESOURCE_COUNTER_GUID) + -- get object references to owned objects + ownedObjects = guidReferenceApi.getObjectsByOwner(matColor) -- button creation for i = 1, 6 do - makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], {-3.85, 3, 10.38}, i) + makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], i) end self.createButton({ - click_function = "drawEncountercard", + click_function = "drawEncounterCard", function_owner = self, position = {-1.84, 0, -0.65}, rotation = {0, 80, 0}, @@ -303,19 +412,15 @@ function onLoad(save_state) }) -- save state loading - local state = JSON.decode(save_state) + local state = JSON.decode(saveState) if state ~= nil then - zoneID = state.zoneID playerColor = state.playerColor activeInvestigatorId = state.activeInvestigatorId isDrawButtonVisible = state.isDrawButtonVisible end showDrawButton(isDrawButtonVisible) - - if getObjectFromGUID(zoneID) == nil then spawnDeckZone() end collisionEnabled = true - math.randomseed(os.time()) end @@ -323,99 +428,86 @@ end -- utility functions --------------------------------------------------------- -function spawnDeckZone() - spawnObject({ - position = self.positionToWorld({-1.4, 0, 0.3 }), - scale = {3, 5, 8 }, - type = 'ScriptingTrigger', - callback = function (zone) zoneID = zone.getGUID() end, - callback_owner = self, - rotation = self.getRotation() - }) +-- searches an area and optionally filters the result +function searchArea(origin, size, filter) + return searchLib.inArea(origin, self.getRotation(), size, filter) end -function searchArea(origin, size) - return Physics.cast({ - origin = origin, - direction = {0, 1, 0}, - orientation = self.getRotation(), - type = 3, - size = size, - max_distance = 1, - debug = DEBUG - }) -end - --- Finds all objects on the playmat and associated set aside zone. -function searchAroundSelf() +-- finds all objects on the playmat and associated set aside zone. +function searchAroundSelf(filter) local bounds = self.getBoundsNormalized() -- Increase the width to cover the set aside zone bounds.size.x = bounds.size.x + SEARCH_AROUND_SELF_X_BUFFER + bounds.size.y = 1 -- Since the cast is centered on the position, shift left or right to keep the non-set aside edge -- of the cast at the edge of the playmat -- setAsideDirection accounts for the set aside zone being on the left or right, depending on the -- table position of the playmat local setAsideDirection = bounds.center.z > 0 and 1 or -1 local localCenter = self.positionToLocal(bounds.center) - localCenter.x = localCenter.x - + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x - - return searchArea(self.positionToWorld(localCenter), bounds.size) + localCenter.x = localCenter.x + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x + return searchArea(self.positionToWorld(localCenter), bounds.size, filter) end -function findCardsAroundSelf() - local cards = { } - for _, collision in ipairs(searchAroundSelf()) do - local obj = collision.hit_object - if obj.name == "Card" or obj.name == "CardCustom" then - table.insert(cards, obj) - end - end - - return cards +-- searches the area around the draw deck and discard pile +function searchDeckAndDiscardArea(filter) + local pos = self.positionToWorld(DECK_DISCARD_AREA.center) + local scale = self.getScale() + local size = { + x = DECK_DISCARD_AREA.size.x * scale.x, + y = DECK_DISCARD_AREA.size.y, + z = DECK_DISCARD_AREA.size.z * scale.z + } + return searchArea(pos, size, filter) end function doNotReady(card) return card.getVar("do_not_ready") or false end +-- rounds a number to the specified amount of decimal places +---@param num Number Initial value +---@param numDecimalPlaces Number Amount of decimal places +function round(num, numDecimalPlaces) + local mult = 10^(numDecimalPlaces or 0) + return math.floor(num * mult + 0.5) / mult +end + --------------------------------------------------------- -- Discard buttons --------------------------------------------------------- --- builds a function that discards things in searchPosition to discardPosition --- stuff on the card/deck will be put into the local trashcan -function makeDiscardHandlerFor(searchPosition, discardPosition) - return function () - for _, hitObj in ipairs(findObjectsAtPosition(searchPosition)) do - local obj = hitObj.hit_object - if obj.tag == "Deck" or obj.tag == "Card" then - if obj.hasTag("PlayerCard") then - obj.setPositionSmooth(self.positionToWorld(DISCARD_PILE_POSITION), false, true) - obj.setRotation(self.getRotation()) - else - obj.setPositionSmooth(discardPosition, false, true) - obj.setRotation({0, -90, 0}) - end - -- put chaos tokens back into bag (e.g. Unrelenting) - elseif tokenChecker.isChaosToken(obj) then - local chaosBag = Global.call("findChaosBag") - chaosBag.putObject(obj) - -- don't touch the table or this playmat itself - elseif obj.guid ~= "4ee1f2" and obj ~= self then - TRASHCAN.putObject(obj) +-- handles discarding for a list of objects +---@param objList Table List of objects to discard +function discardListOfObjects(objList) + for _, obj in ipairs(objList) do + if obj.type == "Card" or obj.type == "Deck" then + if obj.hasTag("PlayerCard") then + deckLib.placeOrMergeIntoDeck(obj, returnGlobalDiscardPosition(), self.getRotation()) + else + deckLib.placeOrMergeIntoDeck(obj, ENCOUNTER_DISCARD_POSITION, {x = 0, y = -90, z = 0}) end + -- put chaos tokens back into bag (e.g. Unrelenting) + elseif tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + -- don't touch locked objects (like the table etc.) + elseif not obj.getLock() then + ownedObjects.Trash.putObject(obj) end end end --- build a discard button to discard from searchPosition to discardPosition (number must be unique) -function makeDiscardButton(xValue, discardPosition, number) +-- build a discard button to discard from searchPosition (number must be unique) +function makeDiscardButton(xValue, number) local position = { xValue, 0.1, -0.94} local searchPosition = {-position[1], position[2], position[3] + 0.32} - local handler = makeDiscardHandlerFor(searchPosition, discardPosition) local handlerName = 'handler' .. number - self.setVar(handlerName, handler) + self.setVar(handlerName, function() + local cardSizeSearch = {2, 1, 3.2} + local globalSearchPosition = self.positionToWorld(searchPosition) + local searchResult = searchArea(globalSearchPosition, cardSizeSearch) + return discardListOfObjects(searchResult) + end) self.createButton({ label = "Discard", click_function = handlerName, @@ -428,18 +520,6 @@ function makeDiscardButton(xValue, discardPosition, number) }) end -function findObjectsAtPosition(localPos) - return Physics.cast({ - origin = self.positionToWorld(localPos), - direction = {0, 1, 0}, - orientation = {0, self.getRotation().y + 90, 0}, - type = 3, - size = {3.2, 1, 2}, - max_distance = 0, - debug = DEBUG - }) -end - --------------------------------------------------------- -- Upkeep button --------------------------------------------------------- @@ -450,7 +530,6 @@ function doUpkeepFromHotkey(color) end function doUpkeep(_, clickedByColor, isRightClick) - -- right-click allow color changing if isRightClick then changeColor(clickedByColor) return @@ -462,11 +541,10 @@ function doUpkeep(_, clickedByColor, isRightClick) -- unexhaust cards in play zone, flip action tokens and find forcedLearning local forcedLearning = false local rot = self.getRotation() - for _, v in ipairs(searchAroundSelf()) do - local obj = v.hit_object + for _, obj in ipairs(searchAroundSelf()) do if obj.getDescription() == "Action Token" and obj.is_face_down then obj.flip() - elseif obj.tag == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then + elseif obj.type == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then local cardMetadata = JSON.decode(obj.getGMNotes()) or {} if not doNotReady(obj) then local cardRotation = round(obj.getRotation().y, 0) - rot.y @@ -501,7 +579,7 @@ function doUpkeep(_, clickedByColor, isRightClick) if activeInvestigatorId ~= nil then local miniId = string.match(activeInvestigatorId, ".....") .. "-m" for _, obj in ipairs(getObjects()) do - if obj.tag == "Card" and obj.is_face_down then + if obj.type == "Card" and obj.is_face_down then local notes = JSON.decode(obj.getGMNotes()) if notes ~= nil and notes.type == "Minicard" and (notes.id == miniId or notes.id == "09080-m") then obj.flip() @@ -512,10 +590,10 @@ function doUpkeep(_, clickedByColor, isRightClick) -- gain a resource (or two if playing Jenny Barnes) if string.match(activeInvestigatorId, "%d%d%d%d%d") == "02003" then - gainResources(2) + updateCounter({type = "ResourceCounter", modifier = 2}) printToColor("Gaining 2 resources (Jenny)", messageColor) else - gainResources(1) + updateCounter({type = "ResourceCounter", modifier = 1}) end -- draw a card (with handling for Patrice and Forced Learning) @@ -541,13 +619,6 @@ function doUpkeep(_, clickedByColor, isRightClick) end end --- adds the specified amount of resources to the resource counter -function gainResources(amount) - local count = RESOURCE_COUNTER.getVar("val") - local add = tonumber(amount) or 0 - RESOURCE_COUNTER.call("updateVal", count + add) -end - -- function for "draw 1 button" (that can be added via option panel) function doDrawOne(_, color) -- send messages to player who clicked button if no seated player found @@ -557,83 +628,113 @@ end -- draw X cards (shuffle discards if necessary) function drawCardsWithReshuffle(numCards) - getDrawDiscardDecks() + local deckAreaObjects = getDeckAreaObjects() -- Norman Withers handling - if string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then - local harbinger = false - if topCard ~= nil and topCard.getName() == "The Harbinger" then harbinger = true - elseif drawDeck ~= nil and not drawDeck.is_face_down then - local cards = drawDeck.getObjects() - if cards[#cards].name == "The Harbinger" then harbinger = true end + local harbinger = false + if deckAreaObjects.topCard and deckAreaObjects.topCard.getName() == "The Harbinger" then + harbinger = true + elseif deckAreaObjects.draw and not deckAreaObjects.draw.is_face_down then + local cards = deckAreaObjects.draw.getObjects() + if cards[#cards].name == "The Harbinger" then + harbinger = true end + end - if harbinger then - printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) + if harbinger then + printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) + return + end + + local topCardDetected = false + if deckAreaObjects.topCard ~= nil then + deckAreaObjects.topCard.deal(1, playerColor) + topCardDetected = true + numCards = numCards - 1 + if numCards == 0 then + flipTopCardFromDeck() return end - - if topCard ~= nil then - topCard.deal(numCards, playerColor) - numCards = numCards - 1 - if numCards == 0 then return end - end end local deckSize = 1 - if drawDeck == nil then + if deckAreaObjects.draw == nil then deckSize = 0 - elseif drawDeck.tag == "Deck" then - deckSize = #drawDeck.getObjects() + elseif deckAreaObjects.draw.type == "Deck" then + deckSize = #deckAreaObjects.draw.getObjects() end if deckSize >= numCards then drawCards(numCards) - return + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + else + drawCards(deckSize) + if deckAreaObjects.discard ~= nil then + shuffleDiscardIntoDeck() + Wait.time(function() + drawCards(numCards - deckSize) + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + end, 1) + end + printToColor("Take 1 horror (drawing card from empty deck)", messageColor) end - - drawCards(deckSize) - if discardPile ~= nil then - shuffleDiscardIntoDeck() - Wait.time(|| drawCards(numCards - deckSize), 1) - end - printToColor("Take 1 horror (drawing card from empty deck)", messageColor) end --- get the draw deck and discard pile objects -function getDrawDiscardDecks() - drawDeck = nil - discardPile = nil - topCard = nil - - local zone = getObjectFromGUID(zoneID) - if zone == nil then return end - - for _, object in ipairs(zone.getObjects()) do - if object.tag == "Deck" or object.tag == "Card" then - if self.positionToLocal(object.getPosition()).z > 0.5 then - discardPile = object - -- Norman Withers handling - elseif string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" and object.tag == "Card" and not object.is_face_down then - topCard = object - else - drawDeck = object - end +-- get the draw deck and discard pile objects and returns the references +function getDeckAreaObjects() + local deckAreaObjects = {} + for _, object in ipairs(searchDeckAndDiscardArea("isCardOrDeck")) do + if self.positionToLocal(object.getPosition()).z > 0.5 then + deckAreaObjects.discard = object + -- Norman Withers handling + elseif object.type == "Card" and not object.is_face_down then + deckAreaObjects.topCard = object + else + deckAreaObjects.draw = object end end + return deckAreaObjects end function drawCards(numCards) - if drawDeck == nil then return end - drawDeck.deal(numCards, playerColor) + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.draw then + deckAreaObjects.draw.deal(numCards, playerColor) + end end function shuffleDiscardIntoDeck() - if not discardPile.is_face_down then discardPile.flip() end - discardPile.shuffle() - discardPile.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) - drawDeck = discardPile - discardPile = nil + local deckAreaObjects = getDeckAreaObjects() + if not deckAreaObjects.discard.is_face_down then + deckAreaObjects.discard.flip() + end + deckAreaObjects.discard.shuffle() + deckAreaObjects.discard.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) +end + +-- utility function for Norman Withers to flip the top card to the revealed side +function flipTopCardFromDeck() + Wait.time(function() + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.topCard then + return + elseif deckAreaObjects.draw then + if deckAreaObjects.draw.type == "Card" then + deckAreaObjects.draw.flip() + else + -- get bounds to know the height of the deck + local bounds = deckAreaObjects.draw.getBounds() + local pos = bounds.center + Vector(0, bounds.size.y / 2 + 0.2, 0) + deckAreaObjects.draw.takeObject({ position = pos, flip = true }) + end + end + end, 0.1) end -- discard a random non-hidden card from hand @@ -661,7 +762,7 @@ function doDiscardOne() -- get a random non-hidden card (from the "choices" table) local num = math.random(1, #choices) - hand[choices[num]].setPosition(returnGlobalDiscardPosition()) + deckLib.placeOrMergeIntoDeck(hand[choices[num]], returnGlobalDiscardPosition(), self.getRotation()) broadcastToAll(playerColor .. " randomly discarded card " .. choices[num] .. "/" .. #hand .. ".", "White") end end @@ -696,32 +797,8 @@ function changeColor(clickedByColor) -- show the option dialog for color selection to the player that triggered this Player[clickedByColor].showOptionsDialog("Select a new color:", colorList, _, function(color) - local HAND_ZONE_GUIDS = { - "a70eee", -- White - "5fe087", -- Orange - "0285cc", -- Green - "be2f17" -- Red - } - local index - local startPos = self.getPosition() - - -- get respective hand zone by position - if startPos.x < -42 then - if startPos.z > 0 then - index = 1 - else - index = 2 - end - else - if startPos.z > 0 then - index = 3 - else - index = 4 - end - end - -- update the color of the hand zone - local handZone = getObjectFromGUID(HAND_ZONE_GUIDS[index]) + local handZone = ownedObjects.HandZone handZone.setValue(color) -- if the seated player clicked this, reseat him to the new color @@ -745,7 +822,7 @@ end -- called when a checkbox is added or removed in-game (which should be rare), and is bounded by the -- number of customizable cards in play. function syncAllCustomizableCards() - for _, card in ipairs(findCardsAroundSelf()) do + for _, card in ipairs(searchAroundSelf("isCard")) do syncCustomizableMetadata(card) end end @@ -755,7 +832,7 @@ function syncCustomizableMetadata(card) if cardMetadata == nil or cardMetadata.customizations == nil then return end - for _, upgradeSheet in ipairs(findCardsAroundSelf()) do + for _, upgradeSheet in ipairs(searchAroundSelf("isCard")) do local upgradeSheetMetadata = JSON.decode(upgradeSheet.getGMNotes()) or { } if upgradeSheetMetadata.id == (cardMetadata.id .. "-c") then for i, customization in ipairs(cardMetadata.customizations) do @@ -785,22 +862,23 @@ function spawnTokensFor(object) tokenManager.spawnForCard(object, extraUses) end -function onCollisionEnter(collision_info) - local object = collision_info.collision_object - - -- detect if "Dream-Enhancing Serum" is placed - if object.getName() == "Dream-Enhancing Serum" then isDES = true end +function onCollisionEnter(collisionInfo) + local object = collisionInfo.collision_object -- only continue if loading is completed if not collisionEnabled then return end -- only continue for cards - if object.name ~= "Card" and object.name ~= "CardCustom" then return end + if object.type ~= "Card" then return end + + -- detect if "Dream-Enhancing Serum" is placed + if object.getName() == "Dream-Enhancing Serum" then isDES = true end maybeUpdateActiveInvestigator(object) syncCustomizableMetadata(object) - if isInDeckZone(object) then + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then tokenManager.resetTokensSpawned(object) removeTokensFromObject(object) elseif shouldSpawnTokens(object) then @@ -809,8 +887,8 @@ function onCollisionEnter(collision_info) end -- detect if "Dream-Enhancing Serum" is removed -function onCollisionExit(collision_info) - if collision_info.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end +function onCollisionExit(collisionInfo) + if collisionInfo.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end end -- checks if tokens should be spawned for the provided card @@ -846,46 +924,35 @@ function shouldSpawnTokens(card) end function onObjectEnterContainer(container, object) - Wait.frames(function() resetTokensIfInDeckZone(container, object) end, 1) -end + if object.type ~= "Card" then return end -function resetTokensIfInDeckZone(container, object) - if isInDeckZone(container) then + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then tokenManager.resetTokensSpawned(object) - removeTokensFromObject(container) + removeTokensFromObject(object) end end --- checks if an object is in this mats deckzone -function isInDeckZone(checkObject) - local deckZone = getObjectFromGUID(zoneID) - if deckZone == nil then - return false - end - - for _, obj in ipairs(deckZone.getObjects()) do - if obj == checkObject then - return true - end - end - - return false -end - -- removes tokens from the provided card/deck function removeTokensFromObject(object) - for _, v in ipairs(searchArea(object.getPosition(), { 3, 1, 4 })) do - local obj = v.hit_object + if object.hasTag("CardThatSeals") then + local func = object.getVar("resetSealedTokens") -- check if function exists (it won't for older custom content) + if func ~= nil then + object.call("resetSealedTokens") + end + end - if obj.getGUID() ~= "4ee1f2" and -- table + for _, obj in ipairs(searchLib.onObject(object)) do + if tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + elseif obj.getGUID() ~= "4ee1f2" and -- table obj ~= self and obj.type ~= "Deck" and obj.type ~= "Card" and obj.memo ~= nil and obj.getLock() == false and - obj.getDescription() ~= "Action Token" and - not tokenChecker.isChaosToken(obj) then - TRASHCAN.putObject(obj) + obj.getDescription() ~= "Action Token" then + ownedObjects.Trash.putObject(obj) end end end @@ -904,11 +971,16 @@ function maybeUpdateActiveInvestigator(card) if notes.id == activeInvestigatorId then return end class = notes.class activeInvestigatorId = notes.id - STAT_TRACKER.call("updateStats", {notes.willpowerIcons, notes.intellectIcons, notes.combatIcons, notes.agilityIcons}) + ownedObjects.InvestigatorSkillTracker.call("updateStats", { + notes.willpowerIcons, + notes.intellectIcons, + notes.combatIcons, + notes.agilityIcons + }) elseif activeInvestigatorId ~= "00000" then class = "Neutral" activeInvestigatorId = "00000" - STAT_TRACKER.call("updateStats", {1, 1, 1, 1}) + ownedObjects.InvestigatorSkillTracker.call("updateStats", {1, 1, 1, 1}) else return end @@ -926,7 +998,6 @@ function maybeUpdateActiveInvestigator(card) } for _, obj in ipairs(search) do - local obj = obj.hit_object if obj.getDescription() == "Action Token" and obj.getStateId() > 0 then if obj.getScale().x < 0.4 then smallToken = obj @@ -956,16 +1027,50 @@ function setObjectState(obj, stateId) if obj.getStateId() ~= stateId then obj.setState(stateId) end end +--------------------------------------------------------- +-- manipulation of owned objects +--------------------------------------------------------- + +-- updates the specific owned counter +---@param param Table Contains the information to update: +--- type: String Counter to target +--- newValue: Number Value to set the counter to +--- modifier: Number If newValue is not provided, the existing value will be adjusted by this modifier +function updateCounter(param) + local counter = ownedObjects[param.type] + if counter ~= nil then + counter.call("updateVal", param.newValue or (counter.getVar("val") + param.modifier)) + else + printToAll(param.type .. " for " .. matColor .. " could not be found.", "Yellow") + end +end + +-- returns the resource counter amount +---@param type String Counter to target +function getCounterValue(type) + return ownedObjects[type].getVar("val") +end + +-- set investigator skill tracker to "1, 1, 1, 1" +function resetSkillTracker() + local obj = ownedObjects.InvestigatorSkillTracker + if obj ~= nil then + obj.call("updateStats", { 1, 1, 1, 1 }) + else + printToAll("Skill tracker for " .. matColor .. " playmat could not be found.", "Yellow") + end +end + --------------------------------------------------------- -- calls to 'Global' / functions for calls from outside --------------------------------------------------------- function drawChaosTokenButton(_, _, isRightClick) - Global.call("drawChaosToken", {self, DRAWN_CHAOS_TOKEN_OFFSET, isRightClick}) + chaosBagApi.drawChaosToken(self, isRightClick) end -function drawEncountercard(_, _, isRightClick) - Global.call("drawEncountercard", playerColor) +function drawEncounterCard(_, _, isRightClick) + mythosAreaApi.drawEncounterCard(self, isRightClick) end function returnGlobalDiscardPosition() @@ -1001,34 +1106,28 @@ function showDrawButton(visible) end end --- Spawns / destroys a clickable clue counter for this playmat with the correct amount of clues ----@param showCounter Boolean Whether the clickable clue counter should be present +-- shows / hides a clickable clue counter for this playmat and sets the correct amount of clues +---@param showCounter Boolean Whether the clickable clue counter should be visible function clickableClues(showCounter) - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - local clickerPos = CLUE_CLICKER.getPosition() + local clickerPos = ownedObjects.ClickableClueCounter.getPosition() local clueCount = 0 + + -- move clue counters + local modY = showCounter and 0.525 or -0.525 + ownedObjects.ClickableClueCounter.setPosition(clickerPos + Vector(0, modY, 0)) if showCounter then -- current clue count - clueCount = CLUE_COUNTER.getVar("exposedValue") + clueCount = ownedObjects.ClueCounter.getVar("exposedValue") -- remove clues - CLUE_COUNTER.call("removeAllClues") + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) -- set value for clue clickers - CLUE_CLICKER.call("updateVal", clueCount) - - -- move clue counters up - clickerPos.y = 1.52 - CLUE_CLICKER.setPosition(clickerPos) + ownedObjects.ClickableClueCounter.call("updateVal", clueCount) else -- current clue count - clueCount = CLUE_CLICKER.getVar("val") - - -- move clue counters down - clickerPos.y = 1.3 - CLUE_CLICKER.setPosition(clickerPos) + clueCount = ownedObjects.ClickableClueCounter.getVar("val") -- spawn clues local pos = self.positionToWorld({x = -1.12, y = 0.05, z = 0.7}) @@ -1041,26 +1140,18 @@ end -- removes all clues (moving tokens to the trash and setting counters to 0) function removeClues() - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - - CLUE_COUNTER.call("removeAllClues") - CLUE_CLICKER.call("updateVal", 0) + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) + ownedObjects.ClickableClueCounter.call("updateVal", 0) end -- reports the clue count ---@param useClickableCounters Boolean Controls which type of counter is getting checked function getClueCount(useClickableCounters) - local count = 0 - if useClickableCounters then - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - count = tonumber(CLUE_CLICKER.getVar("val")) + return ownedObjects.ClickableClueCounter.getVar("val") else - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - count = tonumber(CLUE_COUNTER.getVar("exposedValue")) + return ownedObjects.ClueCounter.getVar("exposedValue") end - return count end -- Sets this playermat's snap points to limit snapping to matching card types or not. If matchTypes @@ -1101,10 +1192,10 @@ function setLimitSnapsByType(matchTypes) end -- Simple method to check if the given point is in a specified area. Local use only, ----@param point Vector. Point to check, only x and z values are relevant ----@param bounds Table. Defined area to see if the point is within. See MAIN_PLAY_AREA for sample +---@param point Vector Point to check, only x and z values are relevant +---@param bounds Table Defined area to see if the point is within. See MAIN_PLAY_AREA for sample -- bounds definition. ----@return Boolean. True if the point is in the area defined by bounds +---@return Boolean True if the point is in the area defined by bounds function inArea(point, bounds) return (point.x < bounds.upperLeft.x and point.x > bounds.lowerRight.x @@ -1119,81 +1210,14 @@ function updatePlayerCards(args) local playerCardData = customDataHelper.getTable("PLAYER_CARD_DATA") tokenManager.addPlayerCardData(playerCardData) end - --- utility function for rounding ----@param num Number Initial value ----@param numDecimalPlaces Number Amount of decimal places -function round(num, numDecimalPlaces) - local mult = 10^(numDecimalPlaces or 0) - return math.floor(num * mult + 0.5) / mult -end -end) -__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local NavigationOverlayApi = {} - local HANDLER_GUID = "797ede" - - -- Copies the visibility for the Navigation overlay - ---@param startColor String Color of the player to copy from - ---@param targetColor String Color of the targeted player - NavigationOverlayApi.copyVisibility = function(startColor, targetColor) - getObjectFromGUID(HANDLER_GUID).call("copyVisibility", { - startColor = startColor, - targetColor = targetColor - }) - end - - -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) - ---@param playerColor String Color of the player to update the visibility for - NavigationOverlayApi.cycleVisibility = function(playerColor) - getObjectFromGUID(HANDLER_GUID).call("cycleVisibility", playerColor) - end - - return NavigationOverlayApi -end -end) -__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local CHAOS_TOKEN_NAMES = { - ["Elder Sign"] = true, - ["+1"] = true, - ["0"] = true, - ["-1"] = true, - ["-2"] = true, - ["-3"] = true, - ["-4"] = true, - ["-5"] = true, - ["-6"] = true, - ["-7"] = true, - ["-8"] = true, - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, - ["Auto-fail"] = true, - ["Bless"] = true, - ["Curse"] = true, - ["Frost"] = true - } - - local TokenChecker = {} - - -- returns true if the passed object is a chaos token (by name) - TokenChecker.isChaosToken = function(obj) - if CHAOS_TOKEN_NAMES[obj.getName()] then - return true - else - return false - end - end - - return TokenChecker -end end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -1311,15 +1335,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -1334,7 +1353,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -1352,13 +1371,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -1392,16 +1413,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -1414,9 +1436,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -1496,7 +1520,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -1529,8 +1553,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -1542,7 +1566,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -1557,19 +1581,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -1592,22 +1614,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -1627,13 +1648,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -1669,7 +1689,6 @@ do local row = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x - 1 + 0.55 * row, pos.y, pos.z - 1.4 - 0.55 * column)) end - return cluePositions end @@ -1683,12 +1702,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -1720,22 +1737,298 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, - type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false - }) - end - return TokenManager end end) +__bundle_register("util/DeckLib", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local DeckLib = {} + local searchLib = require("util/SearchLib") + + -- places a card/deck at a position or merges into an existing deck + ---@param obj TTSObject Object to move + ---@param pos Table New position for the object + ---@param rot Table New rotation for the object (optional) + DeckLib.placeOrMergeIntoDeck = function(obj, pos, rot) + if obj == nil or pos == nil then return end + + -- search the new position for existing card/deck + local searchResult = searchLib.atPosition(pos, "isCardOrDeck") + + -- get new position + local newPos + local offset = 0.5 + if #searchResult == 1 then + local bounds = searchResult[1].getBounds() + newPos = Vector(pos):setAt("y", bounds.center.y + bounds.size.y / 2 + offset) + else + newPos = Vector(pos) + Vector(0, offset, 0) + end + + -- allow moving the objects smoothly out of the hand + obj.use_hands = false + + if rot then + obj.setRotationSmooth(rot, false, true) + end + obj.setPositionSmooth(newPos, false, true) + + -- continue if the card stops smooth moving + Wait.condition( + function() + obj.use_hands = true + -- this avoids a TTS bug that merges unrelated cards that are not resting + if #searchResult == 1 and searchResult[1] ~= obj then + -- call this with avoiding errors (physics is sometimes too fast so the object doesn't exist for the put) + pcall(function() searchResult[1].putObject(obj) end) + end + end, + function() return not obj.isSmoothMoving() end, 3) + end + + return DeckLib +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi +end +end) +__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end + + TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) + end + + TokenSpawnTracker.markTokensSpawned = function(cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetTokensSpawned = function(cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetAllAssetAndEvents = function() + return getSpawnTracker().call("resetAllAssetAndEvents") + end + + TokenSpawnTracker.resetAllLocations = function() + return getSpawnTracker().call("resetAllLocations") + end + + TokenSpawnTracker.resetAll = function() + return getSpawnTracker().call("resetAll") + end + + return TokenSpawnTracker +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end +end) +__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local CHAOS_TOKEN_NAMES = { + ["Elder Sign"] = true, + ["+1"] = true, + ["0"] = true, + ["-1"] = true, + ["-2"] = true, + ["-3"] = true, + ["-4"] = true, + ["-5"] = true, + ["-6"] = true, + ["-7"] = true, + ["-8"] = true, + ["Skull"] = true, + ["Cultist"] = true, + ["Tablet"] = true, + ["Elder Thing"] = true, + ["Auto-fail"] = true, + ["Bless"] = true, + ["Curse"] = true, + ["Frost"] = true + } + + local TokenChecker = {} + + -- returns true if the passed object is a chaos token (by name) + TokenChecker.isChaosToken = function(obj) + if CHAOS_TOKEN_NAMES[obj.getName()] then + return true + else + return false + end + end + + return TokenChecker +end +end) return __bundle_require("__root") diff --git a/unpacked/Custom_Tile Playermat 1 White 8b081b.yaml b/unpacked/Custom_Tile Playermat 1 White 8b081b.yaml index 1ff266df6..c07d22af0 100644 --- a/unpacked/Custom_Tile Playermat 1 White 8b081b.yaml +++ b/unpacked/Custom_Tile Playermat 1 White 8b081b.yaml @@ -1,10 +1,10 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedSnapPoints: - Position: - x: -1.0 + x: -1 y: 0.1 z: 0.12 Tags: @@ -16,7 +16,7 @@ AttachedSnapPoints: Tags: - ActionToken - Position: - x: -1.0 + x: -1 y: 0.1 z: -0.28 Tags: @@ -122,21 +122,21 @@ AttachedSnapPoints: y: 0.1 z: 0.61 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.82 y: 0.1 - z: 0.0 + z: 0 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.18 y: 0.1 - z: 0.0 + z: 0 Tags: - Investigator - Position: @@ -144,72 +144,72 @@ AttachedSnapPoints: y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.46 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: - x: 0.0 + x: 0 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.45 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.36 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2037357630681963618/E7271737B19CE0BFAAA382BEEEF497FE3E06ECC1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -222,22 +222,23 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true LuaScript: !include 'Custom_Tile Playermat 1 White 8b081b.ttslua' -LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"White","zoneID":"7af2cf"}' +LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"White"}' MeasureMovement: false +Memo: White Name: Custom_Tile Nickname: 'Playermat 1: White' Snap: true Sticky: true Tooltip: false Transform: - posX: -55.0 + posX: -55 posY: 1.45 posZ: 16.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 6.43 - scaleY: 1.0 + scaleY: 1 scaleZ: 6.43 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.ttslua b/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.ttslua index 99f5204e1..b7333778e 100644 --- a/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.ttslua +++ b/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.ttslua @@ -41,985 +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) ---------------------------------------------------------- --- specific setup (different for each playmat) ---------------------------------------------------------- - -TRASHCAN_GUID = "f7b6c8" -STAT_TRACKER_GUID = "b4a5f7" -RESOURCE_COUNTER_GUID = "816d84" -CLUE_COUNTER_GUID = "1769ed" -CLUE_CLICKER_GUID = "3f22e5" - -require("playermat/Playmat") -end) -__bundle_register("playermat/Playmat", function(require, _LOADED, __bundle_register, __bundle_modules) -local tokenManager = require("core/token/TokenManager") -local tokenChecker = require("core/token/TokenChecker") -local navigationOverlayApi = require("core/NavigationOverlayApi") - --- set true to enable debug logging and show Physics.cast() -local DEBUG = false - --- we use this to turn off collision handling until onLoad() is complete -local collisionEnabled = false - --- position offsets relative to mat [x, y, z] -local DRAWN_ENCOUNTER_CARD_OFFSET = {1.365, 0.5, -0.625} -local DRAWN_CHAOS_TOKEN_OFFSET = {-1.55, 0.25, -0.58} - --- x-Values for discard buttons -local DISCARD_BUTTON_OFFSETS = {-1.365, -0.91, -0.455, 0, 0.455, 0.91} - -local SEARCH_AROUND_SELF_X_BUFFER = 8 - --- defined areas for the function "inArea()"" -local MAIN_PLAY_AREA = { - upperLeft = { - x = 1.98, - z = 0.736, - }, - lowerRight = { - x = -0.79, - z = -0.39, - } -} -local INVESTIGATOR_AREA = { - upperLeft = { - x = -1.084, - z = 0.06517 - }, - lowerRight = { - x = -1.258, - z = -0.0805, - } -} -local THREAT_AREA = { - upperLeft = { - x = 1.53, - z = -0.34 - }, - lowerRight = { - x = -1.13, - z = -0.92, - } -} - -local DRAW_DECK_POSITION = { x = -1.82, y = 1, z = 0 } -local DISCARD_PILE_POSITION = { x = -1.82, y = 1.5, z = 0.61 } - -local TRASHCAN -local STAT_TRACKER -local RESOURCE_COUNTER - --- global variable so it can be reset by the Clean Up Helper -activeInvestigatorId = "00000" -local isDrawButtonVisible = false - --- global variable to report "Dream-Enhancing Serum" status -isDES = false - -function onSave() - return JSON.encode({ - zoneID = zoneID, - playerColor = playerColor, - activeInvestigatorId = activeInvestigatorId, - isDrawButtonVisible = isDrawButtonVisible - }) -end - -function onLoad(save_state) - self.interactable = DEBUG - - TRASHCAN = getObjectFromGUID(TRASHCAN_GUID) - STAT_TRACKER = getObjectFromGUID(STAT_TRACKER_GUID) - RESOURCE_COUNTER = getObjectFromGUID(RESOURCE_COUNTER_GUID) - - -- button creation - for i = 1, 6 do - makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], {-3.85, 3, 10.38}, i) - end - - self.createButton({ - click_function = "drawEncountercard", - function_owner = self, - position = {-1.84, 0, -0.65}, - rotation = {0, 80, 0}, - width = 265, - height = 190 - }) - - self.createButton({ - click_function = "drawChaosTokenButton", - function_owner = self, - position = {1.85, 0, -0.74}, - rotation = {0, -45, 0}, - width = 135, - height = 135 - }) - - self.createButton({ - label = "Upkeep", - click_function = "doUpkeep", - function_owner = self, - position = {1.84, 0.1, -0.44}, - scale = {0.12, 0.12, 0.12}, - width = 800, - height = 280, - font_size = 180 - }) - - -- save state loading - local state = JSON.decode(save_state) - if state ~= nil then - zoneID = state.zoneID - playerColor = state.playerColor - activeInvestigatorId = state.activeInvestigatorId - isDrawButtonVisible = state.isDrawButtonVisible - end - - showDrawButton(isDrawButtonVisible) - - if getObjectFromGUID(zoneID) == nil then spawnDeckZone() end - collisionEnabled = true - - math.randomseed(os.time()) -end - ---------------------------------------------------------- --- utility functions ---------------------------------------------------------- - -function spawnDeckZone() - spawnObject({ - position = self.positionToWorld({-1.4, 0, 0.3 }), - scale = {3, 5, 8 }, - type = 'ScriptingTrigger', - callback = function (zone) zoneID = zone.getGUID() end, - callback_owner = self, - rotation = self.getRotation() - }) -end - -function searchArea(origin, size) - return Physics.cast({ - origin = origin, - direction = {0, 1, 0}, - orientation = self.getRotation(), - type = 3, - size = size, - max_distance = 1, - debug = DEBUG - }) -end - --- Finds all objects on the playmat and associated set aside zone. -function searchAroundSelf() - local bounds = self.getBoundsNormalized() - -- Increase the width to cover the set aside zone - bounds.size.x = bounds.size.x + SEARCH_AROUND_SELF_X_BUFFER - -- Since the cast is centered on the position, shift left or right to keep the non-set aside edge - -- of the cast at the edge of the playmat - -- setAsideDirection accounts for the set aside zone being on the left or right, depending on the - -- table position of the playmat - local setAsideDirection = bounds.center.z > 0 and 1 or -1 - local localCenter = self.positionToLocal(bounds.center) - localCenter.x = localCenter.x - + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x - - return searchArea(self.positionToWorld(localCenter), bounds.size) -end - -function findCardsAroundSelf() - local cards = { } - for _, collision in ipairs(searchAroundSelf()) do - local obj = collision.hit_object - if obj.name == "Card" or obj.name == "CardCustom" then - table.insert(cards, obj) - end - end - - return cards -end - -function doNotReady(card) - return card.getVar("do_not_ready") or false -end - ---------------------------------------------------------- --- Discard buttons ---------------------------------------------------------- - --- builds a function that discards things in searchPosition to discardPosition --- stuff on the card/deck will be put into the local trashcan -function makeDiscardHandlerFor(searchPosition, discardPosition) - return function () - for _, hitObj in ipairs(findObjectsAtPosition(searchPosition)) do - local obj = hitObj.hit_object - if obj.tag == "Deck" or obj.tag == "Card" then - if obj.hasTag("PlayerCard") then - obj.setPositionSmooth(self.positionToWorld(DISCARD_PILE_POSITION), false, true) - obj.setRotation(self.getRotation()) - else - obj.setPositionSmooth(discardPosition, false, true) - obj.setRotation({0, -90, 0}) - end - -- put chaos tokens back into bag (e.g. Unrelenting) - elseif tokenChecker.isChaosToken(obj) then - local chaosBag = Global.call("findChaosBag") - chaosBag.putObject(obj) - -- don't touch the table or this playmat itself - elseif obj.guid ~= "4ee1f2" and obj ~= self then - TRASHCAN.putObject(obj) - end - end - end -end - --- build a discard button to discard from searchPosition to discardPosition (number must be unique) -function makeDiscardButton(xValue, discardPosition, number) - local position = { xValue, 0.1, -0.94} - local searchPosition = {-position[1], position[2], position[3] + 0.32} - local handler = makeDiscardHandlerFor(searchPosition, discardPosition) - local handlerName = 'handler' .. number - self.setVar(handlerName, handler) - self.createButton({ - label = "Discard", - click_function = handlerName, - function_owner = self, - position = {position[1], position[2], position[3] + 0.6}, - scale = {0.12, 0.12, 0.12}, - width = 900, - height = 350, - font_size = 220 - }) -end - -function findObjectsAtPosition(localPos) - return Physics.cast({ - origin = self.positionToWorld(localPos), - direction = {0, 1, 0}, - orientation = {0, self.getRotation().y + 90, 0}, - type = 3, - size = {3.2, 1, 2}, - max_distance = 0, - debug = DEBUG - }) -end - ---------------------------------------------------------- --- Upkeep button ---------------------------------------------------------- - --- calls the Upkeep function with correct parameter -function doUpkeepFromHotkey(color) - doUpkeep(_, color) -end - -function doUpkeep(_, clickedByColor, isRightClick) - -- right-click allow color changing - if isRightClick then - changeColor(clickedByColor) - return - end - - -- send messages to player who clicked button if no seated player found - messageColor = Player[playerColor].seated and playerColor or clickedByColor - - -- unexhaust cards in play zone, flip action tokens and find forcedLearning - local forcedLearning = false - local rot = self.getRotation() - for _, v in ipairs(searchAroundSelf()) do - local obj = v.hit_object - if obj.getDescription() == "Action Token" and obj.is_face_down then - obj.flip() - elseif obj.tag == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then - local cardMetadata = JSON.decode(obj.getGMNotes()) or {} - if not doNotReady(obj) then - local cardRotation = round(obj.getRotation().y, 0) - rot.y - local yRotDiff = 0 - - if cardRotation < 0 then - cardRotation = cardRotation + 360 - end - - -- rotate cards to the next multiple of 90° towards 0° - if cardRotation > 90 and cardRotation <= 180 then - yRotDiff = 90 - elseif cardRotation < 270 and cardRotation > 180 then - yRotDiff = 270 - end - - -- set correct rotation for face-down cards - rot.z = obj.is_face_down and 180 or 0 - obj.setRotation({rot.x, rot.y + yRotDiff, rot.z}) - end - if cardMetadata.id == "08031" then - forcedLearning = true - end - if cardMetadata.uses ~= nil then - tokenManager.maybeReplenishCard(obj, cardMetadata.uses, self) - end - end - end - - -- flip investigator mini-card and summoned servitor mini-card - -- (all characters allowed to account for custom IDs - e.g. 'Z0000' for TTS Zoop generated IDs) - if activeInvestigatorId ~= nil then - local miniId = string.match(activeInvestigatorId, ".....") .. "-m" - for _, obj in ipairs(getObjects()) do - if obj.tag == "Card" and obj.is_face_down then - local notes = JSON.decode(obj.getGMNotes()) - if notes ~= nil and notes.type == "Minicard" and (notes.id == miniId or notes.id == "09080-m") then - obj.flip() - end - end - end - end - - -- gain a resource (or two if playing Jenny Barnes) - if string.match(activeInvestigatorId, "%d%d%d%d%d") == "02003" then - gainResources(2) - printToColor("Gaining 2 resources (Jenny)", messageColor) - else - gainResources(1) - end - - -- draw a card (with handling for Patrice and Forced Learning) - if activeInvestigatorId == "06005" then - if forcedLearning then - printToColor("Wow, did you really take 'Versatile' to play Patrice with 'Forced Learning'? Choose which draw replacement effect takes priority and draw cards accordingly.", messageColor) - else - local handSize = #Player[playerColor].getHandObjects() - if handSize < 5 then - local cardsToDraw = 5 - handSize - printToColor("Drawing " .. cardsToDraw .. " cards (Patrice)", messageColor) - drawCardsWithReshuffle(cardsToDraw) - end - end - elseif forcedLearning then - printToColor("Drawing 2 cards, discard 1 (Forced Learning)", messageColor) - drawCardsWithReshuffle(2) - elseif activeInvestigatorId == "89001" then - printToColor("Drawing 2 cards (Subject 5U-21)", messageColor) - drawCardsWithReshuffle(2) - else - drawCardsWithReshuffle(1) - end -end - --- adds the specified amount of resources to the resource counter -function gainResources(amount) - local count = RESOURCE_COUNTER.getVar("val") - local add = tonumber(amount) or 0 - RESOURCE_COUNTER.call("updateVal", count + add) -end - --- function for "draw 1 button" (that can be added via option panel) -function doDrawOne(_, color) - -- send messages to player who clicked button if no seated player found - messageColor = Player[playerColor].seated and playerColor or color - drawCardsWithReshuffle(1) -end - --- draw X cards (shuffle discards if necessary) -function drawCardsWithReshuffle(numCards) - getDrawDiscardDecks() - - -- Norman Withers handling - if string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then - local harbinger = false - if topCard ~= nil and topCard.getName() == "The Harbinger" then harbinger = true - elseif drawDeck ~= nil and not drawDeck.is_face_down then - local cards = drawDeck.getObjects() - if cards[#cards].name == "The Harbinger" then harbinger = true end - end - - if harbinger then - printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) - return - end - - if topCard ~= nil then - topCard.deal(numCards, playerColor) - numCards = numCards - 1 - if numCards == 0 then return end - end - end - - local deckSize = 1 - if drawDeck == nil then - deckSize = 0 - elseif drawDeck.tag == "Deck" then - deckSize = #drawDeck.getObjects() - end - - if deckSize >= numCards then - drawCards(numCards) - return - end - - drawCards(deckSize) - if discardPile ~= nil then - shuffleDiscardIntoDeck() - Wait.time(|| drawCards(numCards - deckSize), 1) - end - printToColor("Take 1 horror (drawing card from empty deck)", messageColor) -end - --- get the draw deck and discard pile objects -function getDrawDiscardDecks() - drawDeck = nil - discardPile = nil - topCard = nil - - local zone = getObjectFromGUID(zoneID) - if zone == nil then return end - - for _, object in ipairs(zone.getObjects()) do - if object.tag == "Deck" or object.tag == "Card" then - if self.positionToLocal(object.getPosition()).z > 0.5 then - discardPile = object - -- Norman Withers handling - elseif string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" and object.tag == "Card" and not object.is_face_down then - topCard = object - else - drawDeck = object - end - end - end -end - -function drawCards(numCards) - if drawDeck == nil then return end - drawDeck.deal(numCards, playerColor) -end - -function shuffleDiscardIntoDeck() - if not discardPile.is_face_down then discardPile.flip() end - discardPile.shuffle() - discardPile.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) - drawDeck = discardPile - discardPile = nil -end - --- discard a random non-hidden card from hand -function doDiscardOne() - local hand = Player[playerColor].getHandObjects() - if #hand == 0 then - broadcastToAll("Cannot discard from empty hand!", "Red") - else - local choices = {} - for i = 1, #hand do - local notes = JSON.decode(hand[i].getGMNotes()) - if notes ~= nil then - if notes.hidden ~= true then - table.insert(choices, i) - end - else - table.insert(choices, i) - end - end - - if #choices == 0 then - broadcastToAll("Hidden cards can't be randomly discarded.", "Orange") - return - end - - -- get a random non-hidden card (from the "choices" table) - local num = math.random(1, #choices) - hand[choices[num]].setPosition(returnGlobalDiscardPosition()) - broadcastToAll(playerColor .. " randomly discarded card " .. choices[num] .. "/" .. #hand .. ".", "White") - end -end - ---------------------------------------------------------- --- color related functions ---------------------------------------------------------- - --- changes the player color -function changeColor(clickedByColor) - local colorList = { - "White", - "Brown", - "Red", - "Orange", - "Yellow", - "Green", - "Teal", - "Blue", - "Purple", - "Pink" - } - - -- remove existing colors from the list of choices - for _, existingColor in ipairs(Player.getAvailableColors()) do - for i, newColor in ipairs(colorList) do - if existingColor == newColor then - table.remove(colorList, i) - end - end - end - - -- show the option dialog for color selection to the player that triggered this - Player[clickedByColor].showOptionsDialog("Select a new color:", colorList, _, function(color) - local HAND_ZONE_GUIDS = { - "a70eee", -- White - "5fe087", -- Orange - "0285cc", -- Green - "be2f17" -- Red - } - local index - local startPos = self.getPosition() - - -- get respective hand zone by position - if startPos.x < -42 then - if startPos.z > 0 then - index = 1 - else - index = 2 - end - else - if startPos.z > 0 then - index = 3 - else - index = 4 - end - end - - -- update the color of the hand zone - local handZone = getObjectFromGUID(HAND_ZONE_GUIDS[index]) - handZone.setValue(color) - - -- if the seated player clicked this, reseat him to the new color - if clickedByColor == playerColor then - navigationOverlayApi.copyVisibility(playerColor, color) - Player[playerColor].changeColor(color) - end - - -- update the internal variable - playerColor = color - end) -end - ---------------------------------------------------------- --- playmat token spawning ---------------------------------------------------------- - --- Finds all customizable cards in this play area and updates their metadata based on the selections --- on the matching upgrade sheet. --- This method is theoretically O(n^2), and should be used sparingly. In practice it will only be --- called when a checkbox is added or removed in-game (which should be rare), and is bounded by the --- number of customizable cards in play. -function syncAllCustomizableCards() - for _, card in ipairs(findCardsAroundSelf()) do - syncCustomizableMetadata(card) - end -end - -function syncCustomizableMetadata(card) - local cardMetadata = JSON.decode(card.getGMNotes()) or { } - if cardMetadata == nil or cardMetadata.customizations == nil then - return - end - for _, upgradeSheet in ipairs(findCardsAroundSelf()) do - local upgradeSheetMetadata = JSON.decode(upgradeSheet.getGMNotes()) or { } - if upgradeSheetMetadata.id == (cardMetadata.id .. "-c") then - for i, customization in ipairs(cardMetadata.customizations) do - if customization.replaces ~= nil and customization.replaces.uses ~= nil then - -- Allowed use of call(), no APIs for individual cards - if upgradeSheet.call("isUpgradeActive", i) then - cardMetadata.uses = customization.replaces.uses - card.setGMNotes(JSON.encode(cardMetadata)) - else - -- TODO: Get the original metadata to restore it... maybe. This should only be - -- necessary in the very unlikely case that a user un-checks a previously-full upgrade - -- row while the card is in play. It will be much easier once the AllPlayerCardsApi is - -- in place, so defer until it is - end - end - end - end - end -end - -function spawnTokensFor(object) - local extraUses = { } - if activeInvestigatorId == "03004" then - extraUses["Charge"] = 1 - end - - tokenManager.spawnForCard(object, extraUses) -end - -function onCollisionEnter(collision_info) - local object = collision_info.collision_object - - -- detect if "Dream-Enhancing Serum" is placed - if object.getName() == "Dream-Enhancing Serum" then isDES = true end - - -- only continue if loading is completed - if not collisionEnabled then return end - - -- only continue for cards - if object.name ~= "Card" and object.name ~= "CardCustom" then return end - - maybeUpdateActiveInvestigator(object) - syncCustomizableMetadata(object) - - if isInDeckZone(object) then - tokenManager.resetTokensSpawned(object) - removeTokensFromObject(object) - elseif shouldSpawnTokens(object) then - spawnTokensFor(object) - end -end - --- detect if "Dream-Enhancing Serum" is removed -function onCollisionExit(collision_info) - if collision_info.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end -end - --- checks if tokens should be spawned for the provided card -function shouldSpawnTokens(card) - if card.is_face_down then - return false - end - - local localCardPos = self.positionToLocal(card.getPosition()) - local metadata = JSON.decode(card.getGMNotes()) - - -- If no metadata we don't know the type, so only spawn in the main area - if metadata == nil then - return inArea(localCardPos, MAIN_PLAY_AREA) - end - - -- Spawn tokens for assets and events on the main area - if inArea(localCardPos, MAIN_PLAY_AREA) - and (metadata.type == "Asset" - or metadata.type == "Event") then - return true - end - - -- Spawn tokens for all encounter types in the threat area - if inArea(localCardPos, THREAT_AREA) - and (metadata.type == "Treachery" - or metadata.type == "Enemy" - or metadata.weakness) then - return true - end - - return false -end - -function onObjectEnterContainer(container, object) - Wait.frames(function() resetTokensIfInDeckZone(container, object) end, 1) -end - -function resetTokensIfInDeckZone(container, object) - if isInDeckZone(container) then - tokenManager.resetTokensSpawned(object) - removeTokensFromObject(container) - end -end - --- checks if an object is in this mats deckzone -function isInDeckZone(checkObject) - local deckZone = getObjectFromGUID(zoneID) - if deckZone == nil then - return false - end - - for _, obj in ipairs(deckZone.getObjects()) do - if obj == checkObject then - return true - end - end - - return false -end - --- removes tokens from the provided card/deck -function removeTokensFromObject(object) - for _, v in ipairs(searchArea(object.getPosition(), { 3, 1, 4 })) do - local obj = v.hit_object - - if obj.getGUID() ~= "4ee1f2" and -- table - obj ~= self and - obj.type ~= "Deck" and - obj.type ~= "Card" and - obj.memo ~= nil and - obj.getLock() == false and - obj.getDescription() ~= "Action Token" and - not tokenChecker.isChaosToken(obj) then - TRASHCAN.putObject(obj) - end - end -end - ---------------------------------------------------------- --- investigator ID grabbing and skill tracker ---------------------------------------------------------- - -function maybeUpdateActiveInvestigator(card) - if not inArea(self.positionToLocal(card.getPosition()), INVESTIGATOR_AREA) then return end - - local notes = JSON.decode(card.getGMNotes()) - local class - - if notes ~= nil and notes.type == "Investigator" and notes.id ~= nil then - if notes.id == activeInvestigatorId then return end - class = notes.class - activeInvestigatorId = notes.id - STAT_TRACKER.call("updateStats", {notes.willpowerIcons, notes.intellectIcons, notes.combatIcons, notes.agilityIcons}) - elseif activeInvestigatorId ~= "00000" then - class = "Neutral" - activeInvestigatorId = "00000" - STAT_TRACKER.call("updateStats", {1, 1, 1, 1}) - else - return - end - - -- change state of action tokens - local search = searchArea(self.positionToWorld({-1.25, 0.05, -1.11}), {4, 1, 1}) - local smallToken = nil - local STATE_TABLE = { - ["Guardian"] = 1, - ["Seeker"] = 2, - ["Rogue"] = 3, - ["Mystic"] = 4, - ["Survivor"] = 5, - ["Neutral"] = 6 - } - - for _, obj in ipairs(search) do - local obj = obj.hit_object - if obj.getDescription() == "Action Token" and obj.getStateId() > 0 then - if obj.getScale().x < 0.4 then - smallToken = obj - else - setObjectState(obj, STATE_TABLE[class]) - end - end - end - - -- update the small token with special action for certain investigators - local SPECIAL_ACTIONS = { - ["04002"] = 8, -- Ursula Downs - ["01002"] = 9, -- Daisy Walker - ["01502"] = 9, -- Daisy Walker - ["01002-pb"] = 9, -- Daisy Walker - ["06003"] = 10, -- Tony Morgan - ["04003"] = 11, -- Finn Edwards - ["08016"] = 14 -- Bob Jenkins - } - - if smallToken ~= nil then - setObjectState(smallToken, SPECIAL_ACTIONS[activeInvestigatorId] or STATE_TABLE[class]) - end -end - -function setObjectState(obj, stateId) - if obj.getStateId() ~= stateId then obj.setState(stateId) end -end - ---------------------------------------------------------- --- calls to 'Global' / functions for calls from outside ---------------------------------------------------------- - -function drawChaosTokenButton(_, _, isRightClick) - Global.call("drawChaosToken", {self, DRAWN_CHAOS_TOKEN_OFFSET, isRightClick}) -end - -function drawEncountercard(object, player, isRightClick) - Global.call("drawEncountercard", playerColor) -end - -function returnGlobalDiscardPosition() - return self.positionToWorld(DISCARD_PILE_POSITION) -end - --- Sets this playermat's draw 1 button to visible ----@param visible Boolean. Whether the draw 1 button should be visible -function showDrawButton(visible) - isDrawButtonVisible = visible - - -- create the "Draw 1" button - if isDrawButtonVisible then - self.createButton({ - label = "Draw 1", - click_function = "doDrawOne", - function_owner = self, - position = { 1.84, 0.1, -0.36 }, - scale = { 0.12, 0.12, 0.12 }, - width = 800, - height = 280, - font_size = 180 - }) - - -- remove the "Draw 1" button - else - local buttons = self.getButtons() - for i = 1, #buttons do - if buttons[i].label == "Draw 1" then - self.removeButton(buttons[i].index) - end - end - end -end - --- Spawns / destroys a clickable clue counter for this playmat with the correct amount of clues ----@param showCounter Boolean Whether the clickable clue counter should be present -function clickableClues(showCounter) - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - local clickerPos = CLUE_CLICKER.getPosition() - local clueCount = 0 - - if showCounter then - -- current clue count - clueCount = CLUE_COUNTER.getVar("exposedValue") - - -- remove clues - CLUE_COUNTER.call("removeAllClues") - - -- set value for clue clickers - CLUE_CLICKER.call("updateVal", clueCount) - - -- move clue counters up - clickerPos.y = 1.52 - CLUE_CLICKER.setPosition(clickerPos) - else - -- current clue count - clueCount = CLUE_CLICKER.getVar("val") - - -- move clue counters down - clickerPos.y = 1.3 - CLUE_CLICKER.setPosition(clickerPos) - - -- spawn clues - local pos = self.positionToWorld({x = -1.12, y = 0.05, z = 0.7}) - for i = 1, clueCount do - pos.y = pos.y + 0.045 * i - tokenManager.spawnToken(pos, "clue", self.getRotation()) - end - end -end - --- removes all clues (moving tokens to the trash and setting counters to 0) -function removeClues() - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - - CLUE_COUNTER.call("removeAllClues") - CLUE_CLICKER.call("updateVal", 0) -end - --- reports the clue count ----@param useClickableCounters Boolean Controls which type of counter is getting checked -function getClueCount(useClickableCounters) - local count = 0 - - if useClickableCounters then - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - count = tonumber(CLUE_CLICKER.getVar("val")) - else - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - count = tonumber(CLUE_COUNTER.getVar("exposedValue")) - end - return count -end - --- Sets this playermat'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 matchTypes Boolean. Whether snap points should only snap for the matching card types. -function setLimitSnapsByType(matchTypes) - local snaps = self.getSnapPoints() - for i, snap in ipairs(snaps) do - local snapPos = snap.position - if inArea(snapPos, MAIN_PLAY_AREA) then - local snapTags = snaps[i].tags - if matchTypes then - if snapTags == nil then - snaps[i].tags = { "Asset" } - else - table.insert(snaps[i].tags, "Asset") - end - else - snaps[i].tags = nil - end - end - if inArea(snapPos, INVESTIGATOR_AREA) then - local snapTags = snaps[i].tags - if matchTypes then - if snapTags == nil then - snaps[i].tags = { "Investigator" } - else - table.insert(snaps[i].tags, "Investigator") - end - else - snaps[i].tags = nil - end - end - end - self.setSnapPoints(snaps) -end - --- Simple method to check if the given point is in a specified area. Local use only, ----@param point Vector. Point to check, only x and z values are relevant ----@param bounds Table. Defined area to see if the point is within. See MAIN_PLAY_AREA for sample --- bounds definition. ----@return Boolean. True if the point is in the area defined by bounds -function inArea(point, bounds) - return (point.x < bounds.upperLeft.x - and point.x > bounds.lowerRight.x - and point.z < bounds.upperLeft.z - and point.z > bounds.lowerRight.z) -end - --- called by custom data helpers to add player card data ----@param args table Contains only one entry, the GUID of the custom data helper -function updatePlayerCards(args) - local customDataHelper = getObjectFromGUID(args[1]) - local playerCardData = customDataHelper.getTable("PLAYER_CARD_DATA") - tokenManager.addPlayerCardData(playerCardData) -end - --- utility function for rounding ----@param num Number Initial value ----@param numDecimalPlaces Number Amount of decimal places -function round(num, numDecimalPlaces) - local mult = 10^(numDecimalPlaces or 0) - return math.floor(num * mult + 0.5) / mult -end -end) -__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local NavigationOverlayApi = {} - local HANDLER_GUID = "797ede" - - -- Copies the visibility for the Navigation overlay - ---@param startColor String Color of the player to copy from - ---@param targetColor String Color of the targeted player - NavigationOverlayApi.copyVisibility = function(startColor, targetColor) - getObjectFromGUID(HANDLER_GUID).call("copyVisibility", { - startColor = startColor, - targetColor = targetColor - }) - end - - -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) - ---@param playerColor String Color of the player to update the visibility for - NavigationOverlayApi.cycleVisibility = function(playerColor) - getObjectFromGUID(HANDLER_GUID).call("cycleVisibility", playerColor) - end - - return NavigationOverlayApi -end -end) __bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) do local CHAOS_TOKEN_NAMES = { @@ -1060,8 +81,11 @@ end end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -1179,15 +203,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -1202,7 +221,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -1220,13 +239,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -1260,16 +281,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -1282,9 +304,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -1364,7 +388,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -1397,8 +421,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -1410,7 +434,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -1425,19 +449,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -1460,22 +482,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -1495,13 +516,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -1537,7 +557,6 @@ do local row = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x - 1 + 0.55 * row, pos.y, pos.z - 1.4 - 0.55 * column)) end - return cluePositions end @@ -1551,12 +570,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -1588,154 +605,1430 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, - type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false - }) - end - return TokenManager end end) -__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("util/DeckLib", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local DeckLib = {} + local searchLib = require("util/SearchLib") - local PLAY_AREA_GUID = "721ba2" + -- places a card/deck at a position or merges into an existing deck + ---@param obj TTSObject Object to move + ---@param pos Table New position for the object + ---@param rot Table New rotation for the object (optional) + DeckLib.placeOrMergeIntoDeck = function(obj, pos, rot) + if obj == nil or pos == nil then return end - local IMAGE_SWAPPER = "b7b45b" + -- search the new position for existing card/deck + local searchResult = searchLib.atPosition(pos, "isCardOrDeck") - -- Returns the current value of the investigator counter from the playmat - ---@return Integer. Number of investigators currently set on the counter - PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + -- get new position + local newPos + local offset = 0.5 + if #searchResult == 1 then + local bounds = searchResult[1].getBounds() + newPos = Vector(pos):setAt("y", bounds.center.y + bounds.size.y / 2 + offset) + else + newPos = Vector(pos) + Vector(0, offset, 0) + end + + -- allow moving the objects smoothly out of the hand + obj.use_hands = false + + if rot then + obj.setRotationSmooth(rot, false, true) + end + obj.setPositionSmooth(newPos, false, true) + + -- continue if the card stops smooth moving + Wait.condition( + function() + obj.use_hands = true + -- this avoids a TTS bug that merges unrelated cards that are not resting + if #searchResult == 1 and searchResult[1] ~= obj then + -- call this with avoiding errors (physics is sometimes too fast so the object doesn't exist for the put) + pcall(function() searchResult[1].putObject(obj) end) + end + end, + function() return not obj.isSmoothMoving() end, 3) end - -- Updates the current value of the investigator counter from the playmat - ---@param count Number of investigators to set on the counter - PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + return DeckLib +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(v.hit_object) then + table.insert(objList, v.hit_object) + end + end + return objList end - -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted - PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + -- searches the specified area + SearchLib.inArea = function(pos, rot, size, filter) + return returnSearchResult(pos, rot, size, filter) end - PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + -- 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 - PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + -- searches the specified position (a single point) + SearchLib.atPosition = function(pos, filter) + size = { 0.1, 2, 0.1 } + return returnSearchResult(pos, _, size, filter) end - PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + -- 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 - -- Reset the play area's tracking of which cards have had tokens spawned. - PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return SearchLib +end +end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playermat/Playmat") +end) +__bundle_register("playermat/Playmat", function(require, _LOADED, __bundle_register, __bundle_modules) +local chaosBagApi = require("chaosbag/ChaosBagApi") +local deckLib = require("util/DeckLib") +local guidReferenceApi = require("core/GUIDReferenceApi") +local mythosAreaApi = require("core/MythosAreaApi") +local navigationOverlayApi = require("core/NavigationOverlayApi") +local searchLib = require("util/SearchLib") +local tokenChecker = require("core/token/TokenChecker") +local tokenManager = require("core/token/TokenManager") + +-- we use this to turn off collision handling until onLoad() is complete +local collisionEnabled = false + +-- x-Values for discard buttons +local DISCARD_BUTTON_OFFSETS = {-1.365, -0.91, -0.455, 0, 0.455, 0.91} + +local SEARCH_AROUND_SELF_X_BUFFER = 8 + +-- defined areas for object searching +local MAIN_PLAY_AREA = { + upperLeft = { + x = 1.98, + z = 0.736 + }, + lowerRight = { + x = -0.79, + z = -0.39 + } +} +local INVESTIGATOR_AREA = { + upperLeft = { + x = -1.084, + z = 0.06517 + }, + lowerRight = { + x = -1.258, + z = -0.0805 + } +} +local THREAT_AREA = { + upperLeft = { + x = 1.53, + z = -0.34 + }, + lowerRight = { + x = -1.13, + z = -0.92 + } +} +local DECK_DISCARD_AREA = { + upperLeft = { + x = -1.62, + z = 0.855 + }, + lowerRight = { + x = -2.02, + z = -0.245 + }, + center = { + x = -1.82, + y = 0.5, + z = 0.305 + }, + size = { + x = 0.4, + y = 3, + z = 1.1 + } +} + +-- local position of draw and discard pile +local DRAW_DECK_POSITION = { x = -1.82, y = 0.1, z = 0 } +local DISCARD_PILE_POSITION = { x = -1.82, y = 0.1, z = 0.61 } + +-- global position of encounter discard pile +local ENCOUNTER_DISCARD_POSITION = { x = -3.85, y = 1.5, z = 10.38} + +-- global variable so it can be reset by the Clean Up Helper +activeInvestigatorId = "00000" + +-- table of type-object reference pairs of all owned objects +local ownedObjects = {} +local matColor = self.getMemo() + +-- variable to track the status of the "Show Draw Button" option +local isDrawButtonVisible = false + +-- global variable to report "Dream-Enhancing Serum" status +isDES = false + +function onSave() + return JSON.encode({ + playerColor = playerColor, + activeInvestigatorId = activeInvestigatorId, + isDrawButtonVisible = isDrawButtonVisible + }) +end + +function onLoad(saveState) + self.interactable = false + + -- get object references to owned objects + ownedObjects = guidReferenceApi.getObjectsByOwner(matColor) + + -- button creation + for i = 1, 6 do + makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], i) end - -- Event to be called when the current scenario has changed. - ---@param scenarioName Name of the new scenario - PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + self.createButton({ + click_function = "drawEncounterCard", + function_owner = self, + position = {-1.84, 0, -0.65}, + rotation = {0, 80, 0}, + width = 265, + height = 190 + }) + + self.createButton({ + click_function = "drawChaosTokenButton", + function_owner = self, + position = {1.85, 0, -0.74}, + rotation = {0, -45, 0}, + width = 135, + height = 135 + }) + + self.createButton({ + label = "Upkeep", + click_function = "doUpkeep", + function_owner = self, + position = {1.84, 0.1, -0.44}, + scale = {0.12, 0.12, 0.12}, + width = 800, + height = 280, + font_size = 180 + }) + + -- save state loading + local state = JSON.decode(saveState) + if state ~= nil then + playerColor = state.playerColor + activeInvestigatorId = state.activeInvestigatorId + isDrawButtonVisible = state.isDrawButtonVisible end - -- Sets this playmat's snap points to limit snapping to locations or not. - -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. - PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + showDrawButton(isDrawButtonVisible) + collisionEnabled = true + math.randomseed(os.time()) +end + +--------------------------------------------------------- +-- utility functions +--------------------------------------------------------- + +-- searches an area and optionally filters the result +function searchArea(origin, size, filter) + return searchLib.inArea(origin, self.getRotation(), size, filter) +end + +-- finds all objects on the playmat and associated set aside zone. +function searchAroundSelf(filter) + local bounds = self.getBoundsNormalized() + -- Increase the width to cover the set aside zone + bounds.size.x = bounds.size.x + SEARCH_AROUND_SELF_X_BUFFER + bounds.size.y = 1 + -- Since the cast is centered on the position, shift left or right to keep the non-set aside edge + -- of the cast at the edge of the playmat + -- setAsideDirection accounts for the set aside zone being on the left or right, depending on the + -- table position of the playmat + local setAsideDirection = bounds.center.z > 0 and 1 or -1 + local localCenter = self.positionToLocal(bounds.center) + localCenter.x = localCenter.x + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x + return searchArea(self.positionToWorld(localCenter), bounds.size, filter) +end + +-- searches the area around the draw deck and discard pile +function searchDeckAndDiscardArea(filter) + local pos = self.positionToWorld(DECK_DISCARD_AREA.center) + local scale = self.getScale() + local size = { + x = DECK_DISCARD_AREA.size.x * scale.x, + y = DECK_DISCARD_AREA.size.y, + z = DECK_DISCARD_AREA.size.z * scale.z + } + return searchArea(pos, size, filter) +end + +function doNotReady(card) + return card.getVar("do_not_ready") or false +end + +-- rounds a number to the specified amount of decimal places +---@param num Number Initial value +---@param numDecimalPlaces Number Amount of decimal places +function round(num, numDecimalPlaces) + local mult = 10^(numDecimalPlaces or 0) + return math.floor(num * mult + 0.5) / mult +end + +--------------------------------------------------------- +-- Discard buttons +--------------------------------------------------------- + +-- handles discarding for a list of objects +---@param objList Table List of objects to discard +function discardListOfObjects(objList) + for _, obj in ipairs(objList) do + if obj.type == "Card" or obj.type == "Deck" then + if obj.hasTag("PlayerCard") then + deckLib.placeOrMergeIntoDeck(obj, returnGlobalDiscardPosition(), self.getRotation()) + else + deckLib.placeOrMergeIntoDeck(obj, ENCOUNTER_DISCARD_POSITION, {x = 0, y = -90, z = 0}) + end + -- put chaos tokens back into bag (e.g. Unrelenting) + elseif tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + -- don't touch locked objects (like the table etc.) + elseif not obj.getLock() then + ownedObjects.Trash.putObject(obj) + end + end +end + +-- build a discard button to discard from searchPosition (number must be unique) +function makeDiscardButton(xValue, number) + local position = { xValue, 0.1, -0.94} + local searchPosition = {-position[1], position[2], position[3] + 0.32} + local handlerName = 'handler' .. number + self.setVar(handlerName, function() + local cardSizeSearch = {2, 1, 3.2} + local globalSearchPosition = self.positionToWorld(searchPosition) + local searchResult = searchArea(globalSearchPosition, cardSizeSearch) + return discardListOfObjects(searchResult) + end) + self.createButton({ + label = "Discard", + click_function = handlerName, + function_owner = self, + position = {position[1], position[2], position[3] + 0.6}, + scale = {0.12, 0.12, 0.12}, + width = 900, + height = 350, + font_size = 220 + }) +end + +--------------------------------------------------------- +-- Upkeep button +--------------------------------------------------------- + +-- calls the Upkeep function with correct parameter +function doUpkeepFromHotkey(color) + doUpkeep(_, color) +end + +function doUpkeep(_, clickedByColor, isRightClick) + if isRightClick then + changeColor(clickedByColor) + return end - -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged - -- cards before they're destroyed by entering the container - PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + -- send messages to player who clicked button if no seated player found + messageColor = Player[playerColor].seated and playerColor or clickedByColor + + -- unexhaust cards in play zone, flip action tokens and find forcedLearning + local forcedLearning = false + local rot = self.getRotation() + for _, obj in ipairs(searchAroundSelf()) do + if obj.getDescription() == "Action Token" and obj.is_face_down then + obj.flip() + elseif obj.type == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then + local cardMetadata = JSON.decode(obj.getGMNotes()) or {} + if not doNotReady(obj) then + local cardRotation = round(obj.getRotation().y, 0) - rot.y + local yRotDiff = 0 + + if cardRotation < 0 then + cardRotation = cardRotation + 360 + end + + -- rotate cards to the next multiple of 90° towards 0° + if cardRotation > 90 and cardRotation <= 180 then + yRotDiff = 90 + elseif cardRotation < 270 and cardRotation > 180 then + yRotDiff = 270 + end + + -- set correct rotation for face-down cards + rot.z = obj.is_face_down and 180 or 0 + obj.setRotation({rot.x, rot.y + yRotDiff, rot.z}) + end + if cardMetadata.id == "08031" then + forcedLearning = true + end + if cardMetadata.uses ~= nil then + tokenManager.maybeReplenishCard(obj, cardMetadata.uses, self) + end + end end - -- counts the VP on locations in the play area - PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + -- flip investigator mini-card and summoned servitor mini-card + -- (all characters allowed to account for custom IDs - e.g. 'Z0000' for TTS Zoop generated IDs) + if activeInvestigatorId ~= nil then + local miniId = string.match(activeInvestigatorId, ".....") .. "-m" + for _, obj in ipairs(getObjects()) do + if obj.type == "Card" and obj.is_face_down then + local notes = JSON.decode(obj.getGMNotes()) + if notes ~= nil and notes.type == "Minicard" and (notes.id == miniId or notes.id == "09080-m") then + obj.flip() + end + end + end end - -- highlights all locations in the play area without metadata - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + -- gain a resource (or two if playing Jenny Barnes) + if string.match(activeInvestigatorId, "%d%d%d%d%d") == "02003" then + updateCounter({type = "ResourceCounter", modifier = 2}) + printToColor("Gaining 2 resources (Jenny)", messageColor) + else + updateCounter({type = "ResourceCounter", modifier = 1}) end + + -- draw a card (with handling for Patrice and Forced Learning) + if activeInvestigatorId == "06005" then + if forcedLearning then + printToColor("Wow, did you really take 'Versatile' to play Patrice with 'Forced Learning'? Choose which draw replacement effect takes priority and draw cards accordingly.", messageColor) + else + local handSize = #Player[playerColor].getHandObjects() + if handSize < 5 then + local cardsToDraw = 5 - handSize + printToColor("Drawing " .. cardsToDraw .. " cards (Patrice)", messageColor) + drawCardsWithReshuffle(cardsToDraw) + end + end + elseif forcedLearning then + printToColor("Drawing 2 cards, discard 1 (Forced Learning)", messageColor) + drawCardsWithReshuffle(2) + elseif activeInvestigatorId == "89001" then + printToColor("Drawing 2 cards (Subject 5U-21)", messageColor) + drawCardsWithReshuffle(2) + else + drawCardsWithReshuffle(1) + end +end + +-- function for "draw 1 button" (that can be added via option panel) +function doDrawOne(_, color) + -- send messages to player who clicked button if no seated player found + messageColor = Player[playerColor].seated and playerColor or color + drawCardsWithReshuffle(1) +end + +-- draw X cards (shuffle discards if necessary) +function drawCardsWithReshuffle(numCards) + local deckAreaObjects = getDeckAreaObjects() + + -- Norman Withers handling + local harbinger = false + if deckAreaObjects.topCard and deckAreaObjects.topCard.getName() == "The Harbinger" then + harbinger = true + elseif deckAreaObjects.draw and not deckAreaObjects.draw.is_face_down then + local cards = deckAreaObjects.draw.getObjects() + if cards[#cards].name == "The Harbinger" then + harbinger = true + end + end + + if harbinger then + printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) + return + end + + local topCardDetected = false + if deckAreaObjects.topCard ~= nil then + deckAreaObjects.topCard.deal(1, playerColor) + topCardDetected = true + numCards = numCards - 1 + if numCards == 0 then + flipTopCardFromDeck() + return + end + end + + local deckSize = 1 + if deckAreaObjects.draw == nil then + deckSize = 0 + elseif deckAreaObjects.draw.type == "Deck" then + deckSize = #deckAreaObjects.draw.getObjects() + end + + if deckSize >= numCards then + drawCards(numCards) + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + else + drawCards(deckSize) + if deckAreaObjects.discard ~= nil then + shuffleDiscardIntoDeck() + Wait.time(function() + drawCards(numCards - deckSize) + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + end, 1) + end + printToColor("Take 1 horror (drawing card from empty deck)", messageColor) + end +end + +-- get the draw deck and discard pile objects and returns the references +function getDeckAreaObjects() + local deckAreaObjects = {} + for _, object in ipairs(searchDeckAndDiscardArea("isCardOrDeck")) do + if self.positionToLocal(object.getPosition()).z > 0.5 then + deckAreaObjects.discard = object + -- Norman Withers handling + elseif object.type == "Card" and not object.is_face_down then + deckAreaObjects.topCard = object + else + deckAreaObjects.draw = object + end + end + return deckAreaObjects +end + +function drawCards(numCards) + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.draw then + deckAreaObjects.draw.deal(numCards, playerColor) + end +end + +function shuffleDiscardIntoDeck() + local deckAreaObjects = getDeckAreaObjects() + if not deckAreaObjects.discard.is_face_down then + deckAreaObjects.discard.flip() + end + deckAreaObjects.discard.shuffle() + deckAreaObjects.discard.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) +end + +-- utility function for Norman Withers to flip the top card to the revealed side +function flipTopCardFromDeck() + Wait.time(function() + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.topCard then + return + elseif deckAreaObjects.draw then + if deckAreaObjects.draw.type == "Card" then + deckAreaObjects.draw.flip() + else + -- get bounds to know the height of the deck + local bounds = deckAreaObjects.draw.getBounds() + local pos = bounds.center + Vector(0, bounds.size.y / 2 + 0.2, 0) + deckAreaObjects.draw.takeObject({ position = pos, flip = true }) + end + end + end, 0.1) +end + +-- discard a random non-hidden card from hand +function doDiscardOne() + local hand = Player[playerColor].getHandObjects() + if #hand == 0 then + broadcastToAll("Cannot discard from empty hand!", "Red") + else + local choices = {} + for i = 1, #hand do + local notes = JSON.decode(hand[i].getGMNotes()) + if notes ~= nil then + if notes.hidden ~= true then + table.insert(choices, i) + end + else + table.insert(choices, i) + end + end + + if #choices == 0 then + broadcastToAll("Hidden cards can't be randomly discarded.", "Orange") + return + end + + -- get a random non-hidden card (from the "choices" table) + local num = math.random(1, #choices) + deckLib.placeOrMergeIntoDeck(hand[choices[num]], returnGlobalDiscardPosition(), self.getRotation()) + broadcastToAll(playerColor .. " randomly discarded card " .. choices[num] .. "/" .. #hand .. ".", "White") + end +end + +--------------------------------------------------------- +-- color related functions +--------------------------------------------------------- + +-- changes the player color +function changeColor(clickedByColor) + local colorList = { + "White", + "Brown", + "Red", + "Orange", + "Yellow", + "Green", + "Teal", + "Blue", + "Purple", + "Pink" + } + + -- remove existing colors from the list of choices + for _, existingColor in ipairs(Player.getAvailableColors()) do + for i, newColor in ipairs(colorList) do + if existingColor == newColor then + table.remove(colorList, i) + end + end + end + + -- show the option dialog for color selection to the player that triggered this + Player[clickedByColor].showOptionsDialog("Select a new color:", colorList, _, function(color) + -- update the color of the hand zone + local handZone = ownedObjects.HandZone + handZone.setValue(color) + + -- if the seated player clicked this, reseat him to the new color + if clickedByColor == playerColor then + navigationOverlayApi.copyVisibility(playerColor, color) + Player[playerColor].changeColor(color) + end + + -- update the internal variable + playerColor = color + end) +end + +--------------------------------------------------------- +-- playmat token spawning +--------------------------------------------------------- + +-- Finds all customizable cards in this play area and updates their metadata based on the selections +-- on the matching upgrade sheet. +-- This method is theoretically O(n^2), and should be used sparingly. In practice it will only be +-- called when a checkbox is added or removed in-game (which should be rare), and is bounded by the +-- number of customizable cards in play. +function syncAllCustomizableCards() + for _, card in ipairs(searchAroundSelf("isCard")) do + syncCustomizableMetadata(card) + end +end + +function syncCustomizableMetadata(card) + local cardMetadata = JSON.decode(card.getGMNotes()) or { } + if cardMetadata == nil or cardMetadata.customizations == nil then + return + end + for _, upgradeSheet in ipairs(searchAroundSelf("isCard")) do + local upgradeSheetMetadata = JSON.decode(upgradeSheet.getGMNotes()) or { } + if upgradeSheetMetadata.id == (cardMetadata.id .. "-c") then + for i, customization in ipairs(cardMetadata.customizations) do + if customization.replaces ~= nil and customization.replaces.uses ~= nil then + -- Allowed use of call(), no APIs for individual cards + if upgradeSheet.call("isUpgradeActive", i) then + cardMetadata.uses = customization.replaces.uses + card.setGMNotes(JSON.encode(cardMetadata)) + else + -- TODO: Get the original metadata to restore it... maybe. This should only be + -- necessary in the very unlikely case that a user un-checks a previously-full upgrade + -- row while the card is in play. It will be much easier once the AllPlayerCardsApi is + -- in place, so defer until it is + end + end + end + end + end +end + +function spawnTokensFor(object) + local extraUses = { } + if activeInvestigatorId == "03004" then + extraUses["Charge"] = 1 + end + + tokenManager.spawnForCard(object, extraUses) +end + +function onCollisionEnter(collisionInfo) + local object = collisionInfo.collision_object + + -- only continue if loading is completed + if not collisionEnabled then return end + + -- only continue for cards + if object.type ~= "Card" then return end + + -- detect if "Dream-Enhancing Serum" is placed + if object.getName() == "Dream-Enhancing Serum" then isDES = true end + + maybeUpdateActiveInvestigator(object) + syncCustomizableMetadata(object) + + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then + tokenManager.resetTokensSpawned(object) + removeTokensFromObject(object) + elseif shouldSpawnTokens(object) then + spawnTokensFor(object) + end +end + +-- detect if "Dream-Enhancing Serum" is removed +function onCollisionExit(collisionInfo) + if collisionInfo.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end +end + +-- checks if tokens should be spawned for the provided card +function shouldSpawnTokens(card) + if card.is_face_down then + return false + end + + local localCardPos = self.positionToLocal(card.getPosition()) + local metadata = JSON.decode(card.getGMNotes()) + + -- If no metadata we don't know the type, so only spawn in the main area + if metadata == nil then + return inArea(localCardPos, MAIN_PLAY_AREA) + end + + -- Spawn tokens for assets and events on the main area + if inArea(localCardPos, MAIN_PLAY_AREA) + and (metadata.type == "Asset" + or metadata.type == "Event") then + return true + end + + -- Spawn tokens for all encounter types in the threat area + if inArea(localCardPos, THREAT_AREA) + and (metadata.type == "Treachery" + or metadata.type == "Enemy" + or metadata.weakness) then + return true + end + + return false +end + +function onObjectEnterContainer(container, object) + if object.type ~= "Card" then return end + + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then + tokenManager.resetTokensSpawned(object) + removeTokensFromObject(object) + end +end + +-- removes tokens from the provided card/deck +function removeTokensFromObject(object) + if object.hasTag("CardThatSeals") then + local func = object.getVar("resetSealedTokens") -- check if function exists (it won't for older custom content) + if func ~= nil then + object.call("resetSealedTokens") + end + end + + for _, obj in ipairs(searchLib.onObject(object)) do + if tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + elseif obj.getGUID() ~= "4ee1f2" and -- table + obj ~= self and + obj.type ~= "Deck" and + obj.type ~= "Card" and + obj.memo ~= nil and + obj.getLock() == false and + obj.getDescription() ~= "Action Token" then + ownedObjects.Trash.putObject(obj) + end + end +end + +--------------------------------------------------------- +-- investigator ID grabbing and skill tracker +--------------------------------------------------------- + +function maybeUpdateActiveInvestigator(card) + if not inArea(self.positionToLocal(card.getPosition()), INVESTIGATOR_AREA) then return end + + local notes = JSON.decode(card.getGMNotes()) + local class + + if notes ~= nil and notes.type == "Investigator" and notes.id ~= nil then + if notes.id == activeInvestigatorId then return end + class = notes.class + activeInvestigatorId = notes.id + ownedObjects.InvestigatorSkillTracker.call("updateStats", { + notes.willpowerIcons, + notes.intellectIcons, + notes.combatIcons, + notes.agilityIcons + }) + elseif activeInvestigatorId ~= "00000" then + class = "Neutral" + activeInvestigatorId = "00000" + ownedObjects.InvestigatorSkillTracker.call("updateStats", {1, 1, 1, 1}) + else + return + end + + -- change state of action tokens + local search = searchArea(self.positionToWorld({-1.1, 0.05, -0.27}), {4, 1, 1}) + local smallToken = nil + local STATE_TABLE = { + ["Guardian"] = 1, + ["Seeker"] = 2, + ["Rogue"] = 3, + ["Mystic"] = 4, + ["Survivor"] = 5, + ["Neutral"] = 6 + } + + for _, obj in ipairs(search) do + if obj.getDescription() == "Action Token" and obj.getStateId() > 0 then + if obj.getScale().x < 0.4 then + smallToken = obj + else + setObjectState(obj, STATE_TABLE[class]) + end + end + end + + -- update the small token with special action for certain investigators + local SPECIAL_ACTIONS = { + ["04002"] = 8, -- Ursula Downs + ["01002"] = 9, -- Daisy Walker + ["01502"] = 9, -- Daisy Walker + ["01002-pb"] = 9, -- Daisy Walker + ["06003"] = 10, -- Tony Morgan + ["04003"] = 11, -- Finn Edwards + ["08016"] = 14 -- Bob Jenkins + } + + if smallToken ~= nil then + setObjectState(smallToken, SPECIAL_ACTIONS[activeInvestigatorId] or STATE_TABLE[class]) + end +end + +function setObjectState(obj, stateId) + if obj.getStateId() ~= stateId then obj.setState(stateId) end +end + +--------------------------------------------------------- +-- manipulation of owned objects +--------------------------------------------------------- + +-- updates the specific owned counter +---@param param Table Contains the information to update: +--- type: String Counter to target +--- newValue: Number Value to set the counter to +--- modifier: Number If newValue is not provided, the existing value will be adjusted by this modifier +function updateCounter(param) + local counter = ownedObjects[param.type] + if counter ~= nil then + counter.call("updateVal", param.newValue or (counter.getVar("val") + param.modifier)) + else + printToAll(param.type .. " for " .. matColor .. " could not be found.", "Yellow") + end +end + +-- returns the resource counter amount +---@param type String Counter to target +function getCounterValue(type) + return ownedObjects[type].getVar("val") +end + +-- set investigator skill tracker to "1, 1, 1, 1" +function resetSkillTracker() + local obj = ownedObjects.InvestigatorSkillTracker + if obj ~= nil then + obj.call("updateStats", { 1, 1, 1, 1 }) + else + printToAll("Skill tracker for " .. matColor .. " playmat could not be found.", "Yellow") + end +end + +--------------------------------------------------------- +-- calls to 'Global' / functions for calls from outside +--------------------------------------------------------- + +function drawChaosTokenButton(_, _, isRightClick) + chaosBagApi.drawChaosToken(self, isRightClick) +end + +function drawEncounterCard(_, _, isRightClick) + mythosAreaApi.drawEncounterCard(self, isRightClick) +end + +function returnGlobalDiscardPosition() + return self.positionToWorld(DISCARD_PILE_POSITION) +end + +-- Sets this playermat's draw 1 button to visible +---@param visible Boolean. Whether the draw 1 button should be visible +function showDrawButton(visible) + isDrawButtonVisible = visible + + -- create the "Draw 1" button + if isDrawButtonVisible then + self.createButton({ + label = "Draw 1", + click_function = "doDrawOne", + function_owner = self, + position = { 1.84, 0.1, -0.36 }, + scale = { 0.12, 0.12, 0.12 }, + width = 800, + height = 280, + font_size = 180 + }) + + -- remove the "Draw 1" button + else + local buttons = self.getButtons() + for i = 1, #buttons do + if buttons[i].label == "Draw 1" then + self.removeButton(buttons[i].index) + end + end + end +end + +-- shows / hides a clickable clue counter for this playmat and sets the correct amount of clues +---@param showCounter Boolean Whether the clickable clue counter should be visible +function clickableClues(showCounter) + local clickerPos = ownedObjects.ClickableClueCounter.getPosition() + local clueCount = 0 - -- highlights all locations in the play area with VP - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + -- move clue counters + local modY = showCounter and 0.525 or -0.525 + ownedObjects.ClickableClueCounter.setPosition(clickerPos + Vector(0, modY, 0)) + + if showCounter then + -- current clue count + clueCount = ownedObjects.ClueCounter.getVar("exposedValue") + + -- remove clues + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) + + -- set value for clue clickers + ownedObjects.ClickableClueCounter.call("updateVal", clueCount) + else + -- current clue count + clueCount = ownedObjects.ClickableClueCounter.getVar("val") + + -- spawn clues + local pos = self.positionToWorld({x = -1.12, y = 0.05, z = 0.7}) + for i = 1, clueCount do + pos.y = pos.y + 0.045 * i + tokenManager.spawnToken(pos, "clue", self.getRotation()) + end + end +end + +-- removes all clues (moving tokens to the trash and setting counters to 0) +function removeClues() + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) + ownedObjects.ClickableClueCounter.call("updateVal", 0) +end + +-- reports the clue count +---@param useClickableCounters Boolean Controls which type of counter is getting checked +function getClueCount(useClickableCounters) + if useClickableCounters then + return ownedObjects.ClickableClueCounter.getVar("val") + else + return ownedObjects.ClueCounter.getVar("exposedValue") + end +end + +-- Sets this playermat'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 matchTypes Boolean. Whether snap points should only snap for the matching card types. +function setLimitSnapsByType(matchTypes) + local snaps = self.getSnapPoints() + for i, snap in ipairs(snaps) do + local snapPos = snap.position + if inArea(snapPos, MAIN_PLAY_AREA) then + local snapTags = snaps[i].tags + if matchTypes then + if snapTags == nil then + snaps[i].tags = { "Asset" } + else + table.insert(snaps[i].tags, "Asset") + end + else + snaps[i].tags = nil + end + end + if inArea(snapPos, INVESTIGATOR_AREA) then + local snapTags = snaps[i].tags + if matchTypes then + if snapTags == nil then + snaps[i].tags = { "Investigator" } + else + table.insert(snaps[i].tags, "Investigator") + end + else + snaps[i].tags = nil + end + end + end + self.setSnapPoints(snaps) +end + +-- Simple method to check if the given point is in a specified area. Local use only, +---@param point Vector Point to check, only x and z values are relevant +---@param bounds Table Defined area to see if the point is within. See MAIN_PLAY_AREA for sample +-- bounds definition. +---@return Boolean True if the point is in the area defined by bounds +function inArea(point, bounds) + return (point.x < bounds.upperLeft.x + and point.x > bounds.lowerRight.x + and point.z < bounds.upperLeft.z + and point.z > bounds.lowerRight.z) +end + +-- called by custom data helpers to add player card data +---@param args table Contains only one entry, the GUID of the custom data helper +function updatePlayerCards(args) + local customDataHelper = getObjectFromGUID(args[1]) + local playerCardData = customDataHelper.getTable("PLAYER_CARD_DATA") + tokenManager.addPlayerCardData(playerCardData) +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) end - -- Checks if an object is in the play area (returns true or false) - PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents end - PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") end - PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") end - return PlayAreaApi + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end +end) +__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local NavigationOverlayApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getNOHandler() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "NavigationOverlayHandler") + end + + -- Copies the visibility for the Navigation overlay + ---@param startColor String Color of the player to copy from + ---@param targetColor String Color of the targeted player + NavigationOverlayApi.copyVisibility = function(startColor, targetColor) + getNOHandler().call("copyVisibility", { + startColor = startColor, + targetColor = targetColor + }) + end + + -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) + ---@param playerColor String Color of the player to update the visibility for + NavigationOverlayApi.cycleVisibility = function(playerColor) + getNOHandler().call("cycleVisibility", playerColor) + end + + -- loads the specified camera for a player + ---@param player TTSPlayerInstance Player whose camera should be moved + ---@param camera Variant If number: Index of the camera view to load | If string: Color of the playermat to swap to + NavigationOverlayApi.loadCamera = function(player, camera) + getNOHandler().call("loadCameraFromApi", { + player = player, + camera = camera + }) + end + + return NavigationOverlayApi end end) __bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenSpawnTracker = { } + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local SPAWN_TRACKER_GUID = "e3ffc9" + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) end TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) end TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) end TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") + return getSpawnTracker().call("resetAllAssetAndEvents") end TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") + return getSpawnTracker().call("resetAllLocations") end TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") + return getSpawnTracker().call("resetAll") end return TokenSpawnTracker end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end + + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi +end +end) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +end +end) return __bundle_require("__root") diff --git a/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.yaml b/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.yaml index 5c2eadfe0..89be9c75e 100644 --- a/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.yaml +++ b/unpacked/Custom_Tile Playermat 2 Orange bd0ff4.yaml @@ -1,10 +1,10 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedSnapPoints: - Position: - x: -1.0 + x: -1 y: 0.1 z: 0.12 Tags: @@ -16,7 +16,7 @@ AttachedSnapPoints: Tags: - ActionToken - Position: - x: -1.0 + x: -1 y: 0.1 z: -0.28 Tags: @@ -122,21 +122,21 @@ AttachedSnapPoints: y: 0.1 z: 0.61 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.82 y: 0.1 - z: 0.0 + z: 0 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.18 y: 0.1 - z: 0.0 + z: 0 Tags: - Investigator - Position: @@ -144,72 +144,72 @@ AttachedSnapPoints: y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.46 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: - x: 0.0 + x: 0 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.45 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.36 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2037357630681963618/E7271737B19CE0BFAAA382BEEEF497FE3E06ECC1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -222,22 +222,23 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true LuaScript: !include 'Custom_Tile Playermat 2 Orange bd0ff4.ttslua' -LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"Orange","zoneID":"b047f8"}' +LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"Orange"}' MeasureMovement: false +Memo: Orange Name: Custom_Tile Nickname: 'Playermat 2: Orange' Snap: true Sticky: true Tooltip: false Transform: - posX: -55.0 + posX: -55 posY: 1.45 posZ: -16.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 6.43 - scaleY: 1.0 + scaleY: 1 scaleZ: 6.43 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Playermat 3 Green 383d8b.ttslua b/unpacked/Custom_Tile Playermat 3 Green 383d8b.ttslua index d866f29b4..ee3ec5198 100644 --- a/unpacked/Custom_Tile Playermat 3 Green 383d8b.ttslua +++ b/unpacked/Custom_Tile Playermat 3 Green 383d8b.ttslua @@ -41,6 +41,1313 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local NavigationOverlayApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getNOHandler() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "NavigationOverlayHandler") + end + + -- Copies the visibility for the Navigation overlay + ---@param startColor String Color of the player to copy from + ---@param targetColor String Color of the targeted player + NavigationOverlayApi.copyVisibility = function(startColor, targetColor) + getNOHandler().call("copyVisibility", { + startColor = startColor, + targetColor = targetColor + }) + end + + -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) + ---@param playerColor String Color of the player to update the visibility for + NavigationOverlayApi.cycleVisibility = function(playerColor) + getNOHandler().call("cycleVisibility", playerColor) + end + + -- loads the specified camera for a player + ---@param player TTSPlayerInstance Player whose camera should be moved + ---@param camera Variant If number: Index of the camera view to load | If string: Color of the playermat to swap to + NavigationOverlayApi.loadCamera = function(player, camera) + getNOHandler().call("loadCameraFromApi", { + player = player, + camera = camera + }) + end + + return NavigationOverlayApi +end +end) +__bundle_register("util/DeckLib", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local DeckLib = {} + local searchLib = require("util/SearchLib") + + -- places a card/deck at a position or merges into an existing deck + ---@param obj TTSObject Object to move + ---@param pos Table New position for the object + ---@param rot Table New rotation for the object (optional) + DeckLib.placeOrMergeIntoDeck = function(obj, pos, rot) + if obj == nil or pos == nil then return end + + -- search the new position for existing card/deck + local searchResult = searchLib.atPosition(pos, "isCardOrDeck") + + -- get new position + local newPos + local offset = 0.5 + if #searchResult == 1 then + local bounds = searchResult[1].getBounds() + newPos = Vector(pos):setAt("y", bounds.center.y + bounds.size.y / 2 + offset) + else + newPos = Vector(pos) + Vector(0, offset, 0) + end + + -- allow moving the objects smoothly out of the hand + obj.use_hands = false + + if rot then + obj.setRotationSmooth(rot, false, true) + end + obj.setPositionSmooth(newPos, false, true) + + -- continue if the card stops smooth moving + Wait.condition( + function() + obj.use_hands = true + -- this avoids a TTS bug that merges unrelated cards that are not resting + if #searchResult == 1 and searchResult[1] ~= obj then + -- call this with avoiding errors (physics is sometimes too fast so the object doesn't exist for the put) + pcall(function() searchResult[1].putObject(obj) end) + end + end, + function() return not obj.isSmoothMoving() end, 3) + end + + return DeckLib +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +end +end) +__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end + + TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) + end + + TokenSpawnTracker.markTokensSpawned = function(cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetTokensSpawned = function(cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) + end + + TokenSpawnTracker.resetAllAssetAndEvents = function() + return getSpawnTracker().call("resetAllAssetAndEvents") + end + + TokenSpawnTracker.resetAllLocations = function() + return getSpawnTracker().call("resetAllLocations") + end + + TokenSpawnTracker.resetAll = function() + return getSpawnTracker().call("resetAll") + end + + return TokenSpawnTracker +end +end) +__bundle_register("playermat/Playmat", function(require, _LOADED, __bundle_register, __bundle_modules) +local chaosBagApi = require("chaosbag/ChaosBagApi") +local deckLib = require("util/DeckLib") +local guidReferenceApi = require("core/GUIDReferenceApi") +local mythosAreaApi = require("core/MythosAreaApi") +local navigationOverlayApi = require("core/NavigationOverlayApi") +local searchLib = require("util/SearchLib") +local tokenChecker = require("core/token/TokenChecker") +local tokenManager = require("core/token/TokenManager") + +-- we use this to turn off collision handling until onLoad() is complete +local collisionEnabled = false + +-- x-Values for discard buttons +local DISCARD_BUTTON_OFFSETS = {-1.365, -0.91, -0.455, 0, 0.455, 0.91} + +local SEARCH_AROUND_SELF_X_BUFFER = 8 + +-- defined areas for object searching +local MAIN_PLAY_AREA = { + upperLeft = { + x = 1.98, + z = 0.736 + }, + lowerRight = { + x = -0.79, + z = -0.39 + } +} +local INVESTIGATOR_AREA = { + upperLeft = { + x = -1.084, + z = 0.06517 + }, + lowerRight = { + x = -1.258, + z = -0.0805 + } +} +local THREAT_AREA = { + upperLeft = { + x = 1.53, + z = -0.34 + }, + lowerRight = { + x = -1.13, + z = -0.92 + } +} +local DECK_DISCARD_AREA = { + upperLeft = { + x = -1.62, + z = 0.855 + }, + lowerRight = { + x = -2.02, + z = -0.245 + }, + center = { + x = -1.82, + y = 0.5, + z = 0.305 + }, + size = { + x = 0.4, + y = 3, + z = 1.1 + } +} + +-- local position of draw and discard pile +local DRAW_DECK_POSITION = { x = -1.82, y = 0.1, z = 0 } +local DISCARD_PILE_POSITION = { x = -1.82, y = 0.1, z = 0.61 } + +-- global position of encounter discard pile +local ENCOUNTER_DISCARD_POSITION = { x = -3.85, y = 1.5, z = 10.38} + +-- global variable so it can be reset by the Clean Up Helper +activeInvestigatorId = "00000" + +-- table of type-object reference pairs of all owned objects +local ownedObjects = {} +local matColor = self.getMemo() + +-- variable to track the status of the "Show Draw Button" option +local isDrawButtonVisible = false + +-- global variable to report "Dream-Enhancing Serum" status +isDES = false + +function onSave() + return JSON.encode({ + playerColor = playerColor, + activeInvestigatorId = activeInvestigatorId, + isDrawButtonVisible = isDrawButtonVisible + }) +end + +function onLoad(saveState) + self.interactable = false + + -- get object references to owned objects + ownedObjects = guidReferenceApi.getObjectsByOwner(matColor) + + -- button creation + for i = 1, 6 do + makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], i) + end + + self.createButton({ + click_function = "drawEncounterCard", + function_owner = self, + position = {-1.84, 0, -0.65}, + rotation = {0, 80, 0}, + width = 265, + height = 190 + }) + + self.createButton({ + click_function = "drawChaosTokenButton", + function_owner = self, + position = {1.85, 0, -0.74}, + rotation = {0, -45, 0}, + width = 135, + height = 135 + }) + + self.createButton({ + label = "Upkeep", + click_function = "doUpkeep", + function_owner = self, + position = {1.84, 0.1, -0.44}, + scale = {0.12, 0.12, 0.12}, + width = 800, + height = 280, + font_size = 180 + }) + + -- save state loading + local state = JSON.decode(saveState) + if state ~= nil then + playerColor = state.playerColor + activeInvestigatorId = state.activeInvestigatorId + isDrawButtonVisible = state.isDrawButtonVisible + end + + showDrawButton(isDrawButtonVisible) + collisionEnabled = true + math.randomseed(os.time()) +end + +--------------------------------------------------------- +-- utility functions +--------------------------------------------------------- + +-- searches an area and optionally filters the result +function searchArea(origin, size, filter) + return searchLib.inArea(origin, self.getRotation(), size, filter) +end + +-- finds all objects on the playmat and associated set aside zone. +function searchAroundSelf(filter) + local bounds = self.getBoundsNormalized() + -- Increase the width to cover the set aside zone + bounds.size.x = bounds.size.x + SEARCH_AROUND_SELF_X_BUFFER + bounds.size.y = 1 + -- Since the cast is centered on the position, shift left or right to keep the non-set aside edge + -- of the cast at the edge of the playmat + -- setAsideDirection accounts for the set aside zone being on the left or right, depending on the + -- table position of the playmat + local setAsideDirection = bounds.center.z > 0 and 1 or -1 + local localCenter = self.positionToLocal(bounds.center) + localCenter.x = localCenter.x + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x + return searchArea(self.positionToWorld(localCenter), bounds.size, filter) +end + +-- searches the area around the draw deck and discard pile +function searchDeckAndDiscardArea(filter) + local pos = self.positionToWorld(DECK_DISCARD_AREA.center) + local scale = self.getScale() + local size = { + x = DECK_DISCARD_AREA.size.x * scale.x, + y = DECK_DISCARD_AREA.size.y, + z = DECK_DISCARD_AREA.size.z * scale.z + } + return searchArea(pos, size, filter) +end + +function doNotReady(card) + return card.getVar("do_not_ready") or false +end + +-- rounds a number to the specified amount of decimal places +---@param num Number Initial value +---@param numDecimalPlaces Number Amount of decimal places +function round(num, numDecimalPlaces) + local mult = 10^(numDecimalPlaces or 0) + return math.floor(num * mult + 0.5) / mult +end + +--------------------------------------------------------- +-- Discard buttons +--------------------------------------------------------- + +-- handles discarding for a list of objects +---@param objList Table List of objects to discard +function discardListOfObjects(objList) + for _, obj in ipairs(objList) do + if obj.type == "Card" or obj.type == "Deck" then + if obj.hasTag("PlayerCard") then + deckLib.placeOrMergeIntoDeck(obj, returnGlobalDiscardPosition(), self.getRotation()) + else + deckLib.placeOrMergeIntoDeck(obj, ENCOUNTER_DISCARD_POSITION, {x = 0, y = -90, z = 0}) + end + -- put chaos tokens back into bag (e.g. Unrelenting) + elseif tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + -- don't touch locked objects (like the table etc.) + elseif not obj.getLock() then + ownedObjects.Trash.putObject(obj) + end + end +end + +-- build a discard button to discard from searchPosition (number must be unique) +function makeDiscardButton(xValue, number) + local position = { xValue, 0.1, -0.94} + local searchPosition = {-position[1], position[2], position[3] + 0.32} + local handlerName = 'handler' .. number + self.setVar(handlerName, function() + local cardSizeSearch = {2, 1, 3.2} + local globalSearchPosition = self.positionToWorld(searchPosition) + local searchResult = searchArea(globalSearchPosition, cardSizeSearch) + return discardListOfObjects(searchResult) + end) + self.createButton({ + label = "Discard", + click_function = handlerName, + function_owner = self, + position = {position[1], position[2], position[3] + 0.6}, + scale = {0.12, 0.12, 0.12}, + width = 900, + height = 350, + font_size = 220 + }) +end + +--------------------------------------------------------- +-- Upkeep button +--------------------------------------------------------- + +-- calls the Upkeep function with correct parameter +function doUpkeepFromHotkey(color) + doUpkeep(_, color) +end + +function doUpkeep(_, clickedByColor, isRightClick) + if isRightClick then + changeColor(clickedByColor) + return + end + + -- send messages to player who clicked button if no seated player found + messageColor = Player[playerColor].seated and playerColor or clickedByColor + + -- unexhaust cards in play zone, flip action tokens and find forcedLearning + local forcedLearning = false + local rot = self.getRotation() + for _, obj in ipairs(searchAroundSelf()) do + if obj.getDescription() == "Action Token" and obj.is_face_down then + obj.flip() + elseif obj.type == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then + local cardMetadata = JSON.decode(obj.getGMNotes()) or {} + if not doNotReady(obj) then + local cardRotation = round(obj.getRotation().y, 0) - rot.y + local yRotDiff = 0 + + if cardRotation < 0 then + cardRotation = cardRotation + 360 + end + + -- rotate cards to the next multiple of 90° towards 0° + if cardRotation > 90 and cardRotation <= 180 then + yRotDiff = 90 + elseif cardRotation < 270 and cardRotation > 180 then + yRotDiff = 270 + end + + -- set correct rotation for face-down cards + rot.z = obj.is_face_down and 180 or 0 + obj.setRotation({rot.x, rot.y + yRotDiff, rot.z}) + end + if cardMetadata.id == "08031" then + forcedLearning = true + end + if cardMetadata.uses ~= nil then + tokenManager.maybeReplenishCard(obj, cardMetadata.uses, self) + end + end + end + + -- flip investigator mini-card and summoned servitor mini-card + -- (all characters allowed to account for custom IDs - e.g. 'Z0000' for TTS Zoop generated IDs) + if activeInvestigatorId ~= nil then + local miniId = string.match(activeInvestigatorId, ".....") .. "-m" + for _, obj in ipairs(getObjects()) do + if obj.type == "Card" and obj.is_face_down then + local notes = JSON.decode(obj.getGMNotes()) + if notes ~= nil and notes.type == "Minicard" and (notes.id == miniId or notes.id == "09080-m") then + obj.flip() + end + end + end + end + + -- gain a resource (or two if playing Jenny Barnes) + if string.match(activeInvestigatorId, "%d%d%d%d%d") == "02003" then + updateCounter({type = "ResourceCounter", modifier = 2}) + printToColor("Gaining 2 resources (Jenny)", messageColor) + else + updateCounter({type = "ResourceCounter", modifier = 1}) + end + + -- draw a card (with handling for Patrice and Forced Learning) + if activeInvestigatorId == "06005" then + if forcedLearning then + printToColor("Wow, did you really take 'Versatile' to play Patrice with 'Forced Learning'? Choose which draw replacement effect takes priority and draw cards accordingly.", messageColor) + else + local handSize = #Player[playerColor].getHandObjects() + if handSize < 5 then + local cardsToDraw = 5 - handSize + printToColor("Drawing " .. cardsToDraw .. " cards (Patrice)", messageColor) + drawCardsWithReshuffle(cardsToDraw) + end + end + elseif forcedLearning then + printToColor("Drawing 2 cards, discard 1 (Forced Learning)", messageColor) + drawCardsWithReshuffle(2) + elseif activeInvestigatorId == "89001" then + printToColor("Drawing 2 cards (Subject 5U-21)", messageColor) + drawCardsWithReshuffle(2) + else + drawCardsWithReshuffle(1) + end +end + +-- function for "draw 1 button" (that can be added via option panel) +function doDrawOne(_, color) + -- send messages to player who clicked button if no seated player found + messageColor = Player[playerColor].seated and playerColor or color + drawCardsWithReshuffle(1) +end + +-- draw X cards (shuffle discards if necessary) +function drawCardsWithReshuffle(numCards) + local deckAreaObjects = getDeckAreaObjects() + + -- Norman Withers handling + local harbinger = false + if deckAreaObjects.topCard and deckAreaObjects.topCard.getName() == "The Harbinger" then + harbinger = true + elseif deckAreaObjects.draw and not deckAreaObjects.draw.is_face_down then + local cards = deckAreaObjects.draw.getObjects() + if cards[#cards].name == "The Harbinger" then + harbinger = true + end + end + + if harbinger then + printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) + return + end + + local topCardDetected = false + if deckAreaObjects.topCard ~= nil then + deckAreaObjects.topCard.deal(1, playerColor) + topCardDetected = true + numCards = numCards - 1 + if numCards == 0 then + flipTopCardFromDeck() + return + end + end + + local deckSize = 1 + if deckAreaObjects.draw == nil then + deckSize = 0 + elseif deckAreaObjects.draw.type == "Deck" then + deckSize = #deckAreaObjects.draw.getObjects() + end + + if deckSize >= numCards then + drawCards(numCards) + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + else + drawCards(deckSize) + if deckAreaObjects.discard ~= nil then + shuffleDiscardIntoDeck() + Wait.time(function() + drawCards(numCards - deckSize) + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + end, 1) + end + printToColor("Take 1 horror (drawing card from empty deck)", messageColor) + end +end + +-- get the draw deck and discard pile objects and returns the references +function getDeckAreaObjects() + local deckAreaObjects = {} + for _, object in ipairs(searchDeckAndDiscardArea("isCardOrDeck")) do + if self.positionToLocal(object.getPosition()).z > 0.5 then + deckAreaObjects.discard = object + -- Norman Withers handling + elseif object.type == "Card" and not object.is_face_down then + deckAreaObjects.topCard = object + else + deckAreaObjects.draw = object + end + end + return deckAreaObjects +end + +function drawCards(numCards) + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.draw then + deckAreaObjects.draw.deal(numCards, playerColor) + end +end + +function shuffleDiscardIntoDeck() + local deckAreaObjects = getDeckAreaObjects() + if not deckAreaObjects.discard.is_face_down then + deckAreaObjects.discard.flip() + end + deckAreaObjects.discard.shuffle() + deckAreaObjects.discard.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) +end + +-- utility function for Norman Withers to flip the top card to the revealed side +function flipTopCardFromDeck() + Wait.time(function() + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.topCard then + return + elseif deckAreaObjects.draw then + if deckAreaObjects.draw.type == "Card" then + deckAreaObjects.draw.flip() + else + -- get bounds to know the height of the deck + local bounds = deckAreaObjects.draw.getBounds() + local pos = bounds.center + Vector(0, bounds.size.y / 2 + 0.2, 0) + deckAreaObjects.draw.takeObject({ position = pos, flip = true }) + end + end + end, 0.1) +end + +-- discard a random non-hidden card from hand +function doDiscardOne() + local hand = Player[playerColor].getHandObjects() + if #hand == 0 then + broadcastToAll("Cannot discard from empty hand!", "Red") + else + local choices = {} + for i = 1, #hand do + local notes = JSON.decode(hand[i].getGMNotes()) + if notes ~= nil then + if notes.hidden ~= true then + table.insert(choices, i) + end + else + table.insert(choices, i) + end + end + + if #choices == 0 then + broadcastToAll("Hidden cards can't be randomly discarded.", "Orange") + return + end + + -- get a random non-hidden card (from the "choices" table) + local num = math.random(1, #choices) + deckLib.placeOrMergeIntoDeck(hand[choices[num]], returnGlobalDiscardPosition(), self.getRotation()) + broadcastToAll(playerColor .. " randomly discarded card " .. choices[num] .. "/" .. #hand .. ".", "White") + end +end + +--------------------------------------------------------- +-- color related functions +--------------------------------------------------------- + +-- changes the player color +function changeColor(clickedByColor) + local colorList = { + "White", + "Brown", + "Red", + "Orange", + "Yellow", + "Green", + "Teal", + "Blue", + "Purple", + "Pink" + } + + -- remove existing colors from the list of choices + for _, existingColor in ipairs(Player.getAvailableColors()) do + for i, newColor in ipairs(colorList) do + if existingColor == newColor then + table.remove(colorList, i) + end + end + end + + -- show the option dialog for color selection to the player that triggered this + Player[clickedByColor].showOptionsDialog("Select a new color:", colorList, _, function(color) + -- update the color of the hand zone + local handZone = ownedObjects.HandZone + handZone.setValue(color) + + -- if the seated player clicked this, reseat him to the new color + if clickedByColor == playerColor then + navigationOverlayApi.copyVisibility(playerColor, color) + Player[playerColor].changeColor(color) + end + + -- update the internal variable + playerColor = color + end) +end + +--------------------------------------------------------- +-- playmat token spawning +--------------------------------------------------------- + +-- Finds all customizable cards in this play area and updates their metadata based on the selections +-- on the matching upgrade sheet. +-- This method is theoretically O(n^2), and should be used sparingly. In practice it will only be +-- called when a checkbox is added or removed in-game (which should be rare), and is bounded by the +-- number of customizable cards in play. +function syncAllCustomizableCards() + for _, card in ipairs(searchAroundSelf("isCard")) do + syncCustomizableMetadata(card) + end +end + +function syncCustomizableMetadata(card) + local cardMetadata = JSON.decode(card.getGMNotes()) or { } + if cardMetadata == nil or cardMetadata.customizations == nil then + return + end + for _, upgradeSheet in ipairs(searchAroundSelf("isCard")) do + local upgradeSheetMetadata = JSON.decode(upgradeSheet.getGMNotes()) or { } + if upgradeSheetMetadata.id == (cardMetadata.id .. "-c") then + for i, customization in ipairs(cardMetadata.customizations) do + if customization.replaces ~= nil and customization.replaces.uses ~= nil then + -- Allowed use of call(), no APIs for individual cards + if upgradeSheet.call("isUpgradeActive", i) then + cardMetadata.uses = customization.replaces.uses + card.setGMNotes(JSON.encode(cardMetadata)) + else + -- TODO: Get the original metadata to restore it... maybe. This should only be + -- necessary in the very unlikely case that a user un-checks a previously-full upgrade + -- row while the card is in play. It will be much easier once the AllPlayerCardsApi is + -- in place, so defer until it is + end + end + end + end + end +end + +function spawnTokensFor(object) + local extraUses = { } + if activeInvestigatorId == "03004" then + extraUses["Charge"] = 1 + end + + tokenManager.spawnForCard(object, extraUses) +end + +function onCollisionEnter(collisionInfo) + local object = collisionInfo.collision_object + + -- only continue if loading is completed + if not collisionEnabled then return end + + -- only continue for cards + if object.type ~= "Card" then return end + + -- detect if "Dream-Enhancing Serum" is placed + if object.getName() == "Dream-Enhancing Serum" then isDES = true end + + maybeUpdateActiveInvestigator(object) + syncCustomizableMetadata(object) + + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then + tokenManager.resetTokensSpawned(object) + removeTokensFromObject(object) + elseif shouldSpawnTokens(object) then + spawnTokensFor(object) + end +end + +-- detect if "Dream-Enhancing Serum" is removed +function onCollisionExit(collisionInfo) + if collisionInfo.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end +end + +-- checks if tokens should be spawned for the provided card +function shouldSpawnTokens(card) + if card.is_face_down then + return false + end + + local localCardPos = self.positionToLocal(card.getPosition()) + local metadata = JSON.decode(card.getGMNotes()) + + -- If no metadata we don't know the type, so only spawn in the main area + if metadata == nil then + return inArea(localCardPos, MAIN_PLAY_AREA) + end + + -- Spawn tokens for assets and events on the main area + if inArea(localCardPos, MAIN_PLAY_AREA) + and (metadata.type == "Asset" + or metadata.type == "Event") then + return true + end + + -- Spawn tokens for all encounter types in the threat area + if inArea(localCardPos, THREAT_AREA) + and (metadata.type == "Treachery" + or metadata.type == "Enemy" + or metadata.weakness) then + return true + end + + return false +end + +function onObjectEnterContainer(container, object) + if object.type ~= "Card" then return end + + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then + tokenManager.resetTokensSpawned(object) + removeTokensFromObject(object) + end +end + +-- removes tokens from the provided card/deck +function removeTokensFromObject(object) + if object.hasTag("CardThatSeals") then + local func = object.getVar("resetSealedTokens") -- check if function exists (it won't for older custom content) + if func ~= nil then + object.call("resetSealedTokens") + end + end + + for _, obj in ipairs(searchLib.onObject(object)) do + if tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + elseif obj.getGUID() ~= "4ee1f2" and -- table + obj ~= self and + obj.type ~= "Deck" and + obj.type ~= "Card" and + obj.memo ~= nil and + obj.getLock() == false and + obj.getDescription() ~= "Action Token" then + ownedObjects.Trash.putObject(obj) + end + end +end + +--------------------------------------------------------- +-- investigator ID grabbing and skill tracker +--------------------------------------------------------- + +function maybeUpdateActiveInvestigator(card) + if not inArea(self.positionToLocal(card.getPosition()), INVESTIGATOR_AREA) then return end + + local notes = JSON.decode(card.getGMNotes()) + local class + + if notes ~= nil and notes.type == "Investigator" and notes.id ~= nil then + if notes.id == activeInvestigatorId then return end + class = notes.class + activeInvestigatorId = notes.id + ownedObjects.InvestigatorSkillTracker.call("updateStats", { + notes.willpowerIcons, + notes.intellectIcons, + notes.combatIcons, + notes.agilityIcons + }) + elseif activeInvestigatorId ~= "00000" then + class = "Neutral" + activeInvestigatorId = "00000" + ownedObjects.InvestigatorSkillTracker.call("updateStats", {1, 1, 1, 1}) + else + return + end + + -- change state of action tokens + local search = searchArea(self.positionToWorld({-1.1, 0.05, -0.27}), {4, 1, 1}) + local smallToken = nil + local STATE_TABLE = { + ["Guardian"] = 1, + ["Seeker"] = 2, + ["Rogue"] = 3, + ["Mystic"] = 4, + ["Survivor"] = 5, + ["Neutral"] = 6 + } + + for _, obj in ipairs(search) do + if obj.getDescription() == "Action Token" and obj.getStateId() > 0 then + if obj.getScale().x < 0.4 then + smallToken = obj + else + setObjectState(obj, STATE_TABLE[class]) + end + end + end + + -- update the small token with special action for certain investigators + local SPECIAL_ACTIONS = { + ["04002"] = 8, -- Ursula Downs + ["01002"] = 9, -- Daisy Walker + ["01502"] = 9, -- Daisy Walker + ["01002-pb"] = 9, -- Daisy Walker + ["06003"] = 10, -- Tony Morgan + ["04003"] = 11, -- Finn Edwards + ["08016"] = 14 -- Bob Jenkins + } + + if smallToken ~= nil then + setObjectState(smallToken, SPECIAL_ACTIONS[activeInvestigatorId] or STATE_TABLE[class]) + end +end + +function setObjectState(obj, stateId) + if obj.getStateId() ~= stateId then obj.setState(stateId) end +end + +--------------------------------------------------------- +-- manipulation of owned objects +--------------------------------------------------------- + +-- updates the specific owned counter +---@param param Table Contains the information to update: +--- type: String Counter to target +--- newValue: Number Value to set the counter to +--- modifier: Number If newValue is not provided, the existing value will be adjusted by this modifier +function updateCounter(param) + local counter = ownedObjects[param.type] + if counter ~= nil then + counter.call("updateVal", param.newValue or (counter.getVar("val") + param.modifier)) + else + printToAll(param.type .. " for " .. matColor .. " could not be found.", "Yellow") + end +end + +-- returns the resource counter amount +---@param type String Counter to target +function getCounterValue(type) + return ownedObjects[type].getVar("val") +end + +-- set investigator skill tracker to "1, 1, 1, 1" +function resetSkillTracker() + local obj = ownedObjects.InvestigatorSkillTracker + if obj ~= nil then + obj.call("updateStats", { 1, 1, 1, 1 }) + else + printToAll("Skill tracker for " .. matColor .. " playmat could not be found.", "Yellow") + end +end + +--------------------------------------------------------- +-- calls to 'Global' / functions for calls from outside +--------------------------------------------------------- + +function drawChaosTokenButton(_, _, isRightClick) + chaosBagApi.drawChaosToken(self, isRightClick) +end + +function drawEncounterCard(_, _, isRightClick) + mythosAreaApi.drawEncounterCard(self, isRightClick) +end + +function returnGlobalDiscardPosition() + return self.positionToWorld(DISCARD_PILE_POSITION) +end + +-- Sets this playermat's draw 1 button to visible +---@param visible Boolean. Whether the draw 1 button should be visible +function showDrawButton(visible) + isDrawButtonVisible = visible + + -- create the "Draw 1" button + if isDrawButtonVisible then + self.createButton({ + label = "Draw 1", + click_function = "doDrawOne", + function_owner = self, + position = { 1.84, 0.1, -0.36 }, + scale = { 0.12, 0.12, 0.12 }, + width = 800, + height = 280, + font_size = 180 + }) + + -- remove the "Draw 1" button + else + local buttons = self.getButtons() + for i = 1, #buttons do + if buttons[i].label == "Draw 1" then + self.removeButton(buttons[i].index) + end + end + end +end + +-- shows / hides a clickable clue counter for this playmat and sets the correct amount of clues +---@param showCounter Boolean Whether the clickable clue counter should be visible +function clickableClues(showCounter) + local clickerPos = ownedObjects.ClickableClueCounter.getPosition() + local clueCount = 0 + + -- move clue counters + local modY = showCounter and 0.525 or -0.525 + ownedObjects.ClickableClueCounter.setPosition(clickerPos + Vector(0, modY, 0)) + + if showCounter then + -- current clue count + clueCount = ownedObjects.ClueCounter.getVar("exposedValue") + + -- remove clues + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) + + -- set value for clue clickers + ownedObjects.ClickableClueCounter.call("updateVal", clueCount) + else + -- current clue count + clueCount = ownedObjects.ClickableClueCounter.getVar("val") + + -- spawn clues + local pos = self.positionToWorld({x = -1.12, y = 0.05, z = 0.7}) + for i = 1, clueCount do + pos.y = pos.y + 0.045 * i + tokenManager.spawnToken(pos, "clue", self.getRotation()) + end + end +end + +-- removes all clues (moving tokens to the trash and setting counters to 0) +function removeClues() + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) + ownedObjects.ClickableClueCounter.call("updateVal", 0) +end + +-- reports the clue count +---@param useClickableCounters Boolean Controls which type of counter is getting checked +function getClueCount(useClickableCounters) + if useClickableCounters then + return ownedObjects.ClickableClueCounter.getVar("val") + else + return ownedObjects.ClueCounter.getVar("exposedValue") + end +end + +-- Sets this playermat'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 matchTypes Boolean. Whether snap points should only snap for the matching card types. +function setLimitSnapsByType(matchTypes) + local snaps = self.getSnapPoints() + for i, snap in ipairs(snaps) do + local snapPos = snap.position + if inArea(snapPos, MAIN_PLAY_AREA) then + local snapTags = snaps[i].tags + if matchTypes then + if snapTags == nil then + snaps[i].tags = { "Asset" } + else + table.insert(snaps[i].tags, "Asset") + end + else + snaps[i].tags = nil + end + end + if inArea(snapPos, INVESTIGATOR_AREA) then + local snapTags = snaps[i].tags + if matchTypes then + if snapTags == nil then + snaps[i].tags = { "Investigator" } + else + table.insert(snaps[i].tags, "Investigator") + end + else + snaps[i].tags = nil + end + end + end + self.setSnapPoints(snaps) +end + +-- Simple method to check if the given point is in a specified area. Local use only, +---@param point Vector Point to check, only x and z values are relevant +---@param bounds Table Defined area to see if the point is within. See MAIN_PLAY_AREA for sample +-- bounds definition. +---@return Boolean True if the point is in the area defined by bounds +function inArea(point, bounds) + return (point.x < bounds.upperLeft.x + and point.x > bounds.lowerRight.x + and point.z < bounds.upperLeft.z + and point.z > bounds.lowerRight.z) +end + +-- called by custom data helpers to add player card data +---@param args table Contains only one entry, the GUID of the custom data helper +function updatePlayerCards(args) + local customDataHelper = getObjectFromGUID(args[1]) + local playerCardData = customDataHelper.getTable("PLAYER_CARD_DATA") + tokenManager.addPlayerCardData(playerCardData) +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end +end) __bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) do local CHAOS_TOKEN_NAMES = { @@ -81,8 +1388,11 @@ end end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -200,15 +1510,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -223,7 +1528,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -241,13 +1546,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -281,16 +1588,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -303,9 +1611,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -385,7 +1695,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -418,8 +1728,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -431,7 +1741,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -446,19 +1756,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -481,22 +1789,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -516,13 +1823,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -558,7 +1864,6 @@ do local row = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x - 1 + 0.55 * row, pos.y, pos.z - 1.4 - 0.55 * column)) end - return cluePositions end @@ -572,12 +1877,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -609,1133 +1912,123 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, - type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false - }) - end - return TokenManager end end) -__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("util/SearchLib", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + 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 PLAY_AREA_GUID = "721ba2" + -- performs the actual search and returns a filtered list of object references + ---@param pos Table Global position + ---@param rot Table 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) + if filter then filter = 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 + }) - local IMAGE_SWAPPER = "b7b45b" - - -- Returns the current value of the investigator counter from the playmat - ---@return Integer. Number of investigators currently set on the counter - PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + -- filtering the result + local objList = {} + for _, v in ipairs(searchResult) do + if not filter or filter(v.hit_object) then + table.insert(objList, v.hit_object) + end + end + return objList end - -- Updates the current value of the investigator counter from the playmat - ---@param count Number of investigators to set on the counter - PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + -- searches the specified area + SearchLib.inArea = function(pos, rot, size, filter) + return returnSearchResult(pos, rot, size, filter) end - -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted - PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + -- 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 - PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + -- searches the specified position (a single point) + SearchLib.atPosition = function(pos, filter) + size = { 0.1, 2, 0.1 } + return returnSearchResult(pos, _, size, filter) end - PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + -- 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 - PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) - end - - -- Reset the play area's tracking of which cards have had tokens spawned. - PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") - end - - -- Event to be called when the current scenario has changed. - ---@param scenarioName Name of the new scenario - PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) - end - - -- Sets this playmat's snap points to limit snapping to locations or not. - -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. - PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) - end - - -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged - -- cards before they're destroyed by entering the container - PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) - end - - -- counts the VP on locations in the play area - PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") - end - - -- highlights all locations in the play area without metadata - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) - end - - -- highlights all locations in the play area with VP - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) - end - - -- Checks if an object is in the play area (returns true or false) - PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) - end - - PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image - end - - PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) - end - - return PlayAreaApi + return SearchLib end end) -__bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenSpawnTracker = { } + local OptionPanelApi = {} - local SPAWN_TRACKER_GUID = "e3ffc9" - - TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) end - TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") end - TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) - end - - TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") - end - - TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") - end - - TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") - end - - return TokenSpawnTracker + return OptionPanelApi end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) ---------------------------------------------------------- --- specific setup (different for each playmat) ---------------------------------------------------------- - -TRASHCAN_GUID = "5f896a" -STAT_TRACKER_GUID = "af7ed7" -RESOURCE_COUNTER_GUID = "cd15ac" -CLUE_COUNTER_GUID = "032300" -CLUE_CLICKER_GUID = "891403" - require("playermat/Playmat") end) -__bundle_register("playermat/Playmat", function(require, _LOADED, __bundle_register, __bundle_modules) -local tokenManager = require("core/token/TokenManager") -local tokenChecker = require("core/token/TokenChecker") -local navigationOverlayApi = require("core/NavigationOverlayApi") - --- set true to enable debug logging and show Physics.cast() -local DEBUG = false - --- we use this to turn off collision handling until onLoad() is complete -local collisionEnabled = false - --- position offsets relative to mat [x, y, z] -local DRAWN_ENCOUNTER_CARD_OFFSET = {1.365, 0.5, -0.625} -local DRAWN_CHAOS_TOKEN_OFFSET = {-1.55, 0.25, -0.58} - --- x-Values for discard buttons -local DISCARD_BUTTON_OFFSETS = {-1.365, -0.91, -0.455, 0, 0.455, 0.91} - -local SEARCH_AROUND_SELF_X_BUFFER = 8 - --- defined areas for the function "inArea()"" -local MAIN_PLAY_AREA = { - upperLeft = { - x = 1.98, - z = 0.736, - }, - lowerRight = { - x = -0.79, - z = -0.39, - } -} -local INVESTIGATOR_AREA = { - upperLeft = { - x = -1.084, - z = 0.06517 - }, - lowerRight = { - x = -1.258, - z = -0.0805, - } -} -local THREAT_AREA = { - upperLeft = { - x = 1.53, - z = -0.34 - }, - lowerRight = { - x = -1.13, - z = -0.92, - } -} - -local DRAW_DECK_POSITION = { x = -1.82, y = 1, z = 0 } -local DISCARD_PILE_POSITION = { x = -1.82, y = 1.5, z = 0.61 } - -local TRASHCAN -local STAT_TRACKER -local RESOURCE_COUNTER - --- global variable so it can be reset by the Clean Up Helper -activeInvestigatorId = "00000" -local isDrawButtonVisible = false - --- global variable to report "Dream-Enhancing Serum" status -isDES = false - -function onSave() - return JSON.encode({ - zoneID = zoneID, - playerColor = playerColor, - activeInvestigatorId = activeInvestigatorId, - isDrawButtonVisible = isDrawButtonVisible - }) -end - -function onLoad(save_state) - self.interactable = DEBUG - - TRASHCAN = getObjectFromGUID(TRASHCAN_GUID) - STAT_TRACKER = getObjectFromGUID(STAT_TRACKER_GUID) - RESOURCE_COUNTER = getObjectFromGUID(RESOURCE_COUNTER_GUID) - - -- button creation - for i = 1, 6 do - makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], {-3.85, 3, 10.38}, i) - end - - self.createButton({ - click_function = "drawEncountercard", - function_owner = self, - position = {-1.84, 0, -0.65}, - rotation = {0, 80, 0}, - width = 265, - height = 190 - }) - - self.createButton({ - click_function = "drawChaosTokenButton", - function_owner = self, - position = {1.85, 0, -0.74}, - rotation = {0, -45, 0}, - width = 135, - height = 135 - }) - - self.createButton({ - label = "Upkeep", - click_function = "doUpkeep", - function_owner = self, - position = {1.84, 0.1, -0.44}, - scale = {0.12, 0.12, 0.12}, - width = 800, - height = 280, - font_size = 180 - }) - - -- save state loading - local state = JSON.decode(save_state) - if state ~= nil then - zoneID = state.zoneID - playerColor = state.playerColor - activeInvestigatorId = state.activeInvestigatorId - isDrawButtonVisible = state.isDrawButtonVisible - end - - showDrawButton(isDrawButtonVisible) - - if getObjectFromGUID(zoneID) == nil then spawnDeckZone() end - collisionEnabled = true - - math.randomseed(os.time()) -end - ---------------------------------------------------------- --- utility functions ---------------------------------------------------------- - -function spawnDeckZone() - spawnObject({ - position = self.positionToWorld({-1.4, 0, 0.3 }), - scale = {3, 5, 8 }, - type = 'ScriptingTrigger', - callback = function (zone) zoneID = zone.getGUID() end, - callback_owner = self, - rotation = self.getRotation() - }) -end - -function searchArea(origin, size) - return Physics.cast({ - origin = origin, - direction = {0, 1, 0}, - orientation = self.getRotation(), - type = 3, - size = size, - max_distance = 1, - debug = DEBUG - }) -end - --- Finds all objects on the playmat and associated set aside zone. -function searchAroundSelf() - local bounds = self.getBoundsNormalized() - -- Increase the width to cover the set aside zone - bounds.size.x = bounds.size.x + SEARCH_AROUND_SELF_X_BUFFER - -- Since the cast is centered on the position, shift left or right to keep the non-set aside edge - -- of the cast at the edge of the playmat - -- setAsideDirection accounts for the set aside zone being on the left or right, depending on the - -- table position of the playmat - local setAsideDirection = bounds.center.z > 0 and 1 or -1 - local localCenter = self.positionToLocal(bounds.center) - localCenter.x = localCenter.x - + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x - - return searchArea(self.positionToWorld(localCenter), bounds.size) -end - -function findCardsAroundSelf() - local cards = { } - for _, collision in ipairs(searchAroundSelf()) do - local obj = collision.hit_object - if obj.name == "Card" or obj.name == "CardCustom" then - table.insert(cards, obj) - end - end - - return cards -end - -function doNotReady(card) - return card.getVar("do_not_ready") or false -end - ---------------------------------------------------------- --- Discard buttons ---------------------------------------------------------- - --- builds a function that discards things in searchPosition to discardPosition --- stuff on the card/deck will be put into the local trashcan -function makeDiscardHandlerFor(searchPosition, discardPosition) - return function () - for _, hitObj in ipairs(findObjectsAtPosition(searchPosition)) do - local obj = hitObj.hit_object - if obj.tag == "Deck" or obj.tag == "Card" then - if obj.hasTag("PlayerCard") then - obj.setPositionSmooth(self.positionToWorld(DISCARD_PILE_POSITION), false, true) - obj.setRotation(self.getRotation()) - else - obj.setPositionSmooth(discardPosition, false, true) - obj.setRotation({0, -90, 0}) - end - -- put chaos tokens back into bag (e.g. Unrelenting) - elseif tokenChecker.isChaosToken(obj) then - local chaosBag = Global.call("findChaosBag") - chaosBag.putObject(obj) - -- don't touch the table or this playmat itself - elseif obj.guid ~= "4ee1f2" and obj ~= self then - TRASHCAN.putObject(obj) - end - end - end -end - --- build a discard button to discard from searchPosition to discardPosition (number must be unique) -function makeDiscardButton(xValue, discardPosition, number) - local position = { xValue, 0.1, -0.94} - local searchPosition = {-position[1], position[2], position[3] + 0.32} - local handler = makeDiscardHandlerFor(searchPosition, discardPosition) - local handlerName = 'handler' .. number - self.setVar(handlerName, handler) - self.createButton({ - label = "Discard", - click_function = handlerName, - function_owner = self, - position = {position[1], position[2], position[3] + 0.6}, - scale = {0.12, 0.12, 0.12}, - width = 900, - height = 350, - font_size = 220 - }) -end - -function findObjectsAtPosition(localPos) - return Physics.cast({ - origin = self.positionToWorld(localPos), - direction = {0, 1, 0}, - orientation = {0, self.getRotation().y + 90, 0}, - type = 3, - size = {3.2, 1, 2}, - max_distance = 0, - debug = DEBUG - }) -end - ---------------------------------------------------------- --- Upkeep button ---------------------------------------------------------- - --- calls the Upkeep function with correct parameter -function doUpkeepFromHotkey(color) - doUpkeep(_, color) -end - -function doUpkeep(_, clickedByColor, isRightClick) - -- right-click allow color changing - if isRightClick then - changeColor(clickedByColor) - return - end - - -- send messages to player who clicked button if no seated player found - messageColor = Player[playerColor].seated and playerColor or clickedByColor - - -- unexhaust cards in play zone, flip action tokens and find forcedLearning - local forcedLearning = false - local rot = self.getRotation() - for _, v in ipairs(searchAroundSelf()) do - local obj = v.hit_object - if obj.getDescription() == "Action Token" and obj.is_face_down then - obj.flip() - elseif obj.tag == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then - local cardMetadata = JSON.decode(obj.getGMNotes()) or {} - if not doNotReady(obj) then - local cardRotation = round(obj.getRotation().y, 0) - rot.y - local yRotDiff = 0 - - if cardRotation < 0 then - cardRotation = cardRotation + 360 - end - - -- rotate cards to the next multiple of 90° towards 0° - if cardRotation > 90 and cardRotation <= 180 then - yRotDiff = 90 - elseif cardRotation < 270 and cardRotation > 180 then - yRotDiff = 270 - end - - -- set correct rotation for face-down cards - rot.z = obj.is_face_down and 180 or 0 - obj.setRotation({rot.x, rot.y + yRotDiff, rot.z}) - end - if cardMetadata.id == "08031" then - forcedLearning = true - end - if cardMetadata.uses ~= nil then - tokenManager.maybeReplenishCard(obj, cardMetadata.uses, self) - end - end - end - - -- flip investigator mini-card and summoned servitor mini-card - -- (all characters allowed to account for custom IDs - e.g. 'Z0000' for TTS Zoop generated IDs) - if activeInvestigatorId ~= nil then - local miniId = string.match(activeInvestigatorId, ".....") .. "-m" - for _, obj in ipairs(getObjects()) do - if obj.tag == "Card" and obj.is_face_down then - local notes = JSON.decode(obj.getGMNotes()) - if notes ~= nil and notes.type == "Minicard" and (notes.id == miniId or notes.id == "09080-m") then - obj.flip() - end - end - end - end - - -- gain a resource (or two if playing Jenny Barnes) - if string.match(activeInvestigatorId, "%d%d%d%d%d") == "02003" then - gainResources(2) - printToColor("Gaining 2 resources (Jenny)", messageColor) - else - gainResources(1) - end - - -- draw a card (with handling for Patrice and Forced Learning) - if activeInvestigatorId == "06005" then - if forcedLearning then - printToColor("Wow, did you really take 'Versatile' to play Patrice with 'Forced Learning'? Choose which draw replacement effect takes priority and draw cards accordingly.", messageColor) - else - local handSize = #Player[playerColor].getHandObjects() - if handSize < 5 then - local cardsToDraw = 5 - handSize - printToColor("Drawing " .. cardsToDraw .. " cards (Patrice)", messageColor) - drawCardsWithReshuffle(cardsToDraw) - end - end - elseif forcedLearning then - printToColor("Drawing 2 cards, discard 1 (Forced Learning)", messageColor) - drawCardsWithReshuffle(2) - elseif activeInvestigatorId == "89001" then - printToColor("Drawing 2 cards (Subject 5U-21)", messageColor) - drawCardsWithReshuffle(2) - else - drawCardsWithReshuffle(1) - end -end - --- adds the specified amount of resources to the resource counter -function gainResources(amount) - local count = RESOURCE_COUNTER.getVar("val") - local add = tonumber(amount) or 0 - RESOURCE_COUNTER.call("updateVal", count + add) -end - --- function for "draw 1 button" (that can be added via option panel) -function doDrawOne(_, color) - -- send messages to player who clicked button if no seated player found - messageColor = Player[playerColor].seated and playerColor or color - drawCardsWithReshuffle(1) -end - --- draw X cards (shuffle discards if necessary) -function drawCardsWithReshuffle(numCards) - getDrawDiscardDecks() - - -- Norman Withers handling - if string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then - local harbinger = false - if topCard ~= nil and topCard.getName() == "The Harbinger" then harbinger = true - elseif drawDeck ~= nil and not drawDeck.is_face_down then - local cards = drawDeck.getObjects() - if cards[#cards].name == "The Harbinger" then harbinger = true end - end - - if harbinger then - printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) - return - end - - if topCard ~= nil then - topCard.deal(numCards, playerColor) - numCards = numCards - 1 - if numCards == 0 then return end - end - end - - local deckSize = 1 - if drawDeck == nil then - deckSize = 0 - elseif drawDeck.tag == "Deck" then - deckSize = #drawDeck.getObjects() - end - - if deckSize >= numCards then - drawCards(numCards) - return - end - - drawCards(deckSize) - if discardPile ~= nil then - shuffleDiscardIntoDeck() - Wait.time(|| drawCards(numCards - deckSize), 1) - end - printToColor("Take 1 horror (drawing card from empty deck)", messageColor) -end - --- get the draw deck and discard pile objects -function getDrawDiscardDecks() - drawDeck = nil - discardPile = nil - topCard = nil - - local zone = getObjectFromGUID(zoneID) - if zone == nil then return end - - for _, object in ipairs(zone.getObjects()) do - if object.tag == "Deck" or object.tag == "Card" then - if self.positionToLocal(object.getPosition()).z > 0.5 then - discardPile = object - -- Norman Withers handling - elseif string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" and object.tag == "Card" and not object.is_face_down then - topCard = object - else - drawDeck = object - end - end - end -end - -function drawCards(numCards) - if drawDeck == nil then return end - drawDeck.deal(numCards, playerColor) -end - -function shuffleDiscardIntoDeck() - if not discardPile.is_face_down then discardPile.flip() end - discardPile.shuffle() - discardPile.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) - drawDeck = discardPile - discardPile = nil -end - --- discard a random non-hidden card from hand -function doDiscardOne() - local hand = Player[playerColor].getHandObjects() - if #hand == 0 then - broadcastToAll("Cannot discard from empty hand!", "Red") - else - local choices = {} - for i = 1, #hand do - local notes = JSON.decode(hand[i].getGMNotes()) - if notes ~= nil then - if notes.hidden ~= true then - table.insert(choices, i) - end - else - table.insert(choices, i) - end - end - - if #choices == 0 then - broadcastToAll("Hidden cards can't be randomly discarded.", "Orange") - return - end - - -- get a random non-hidden card (from the "choices" table) - local num = math.random(1, #choices) - hand[choices[num]].setPosition(returnGlobalDiscardPosition()) - broadcastToAll(playerColor .. " randomly discarded card " .. choices[num] .. "/" .. #hand .. ".", "White") - end -end - ---------------------------------------------------------- --- color related functions ---------------------------------------------------------- - --- changes the player color -function changeColor(clickedByColor) - local colorList = { - "White", - "Brown", - "Red", - "Orange", - "Yellow", - "Green", - "Teal", - "Blue", - "Purple", - "Pink" - } - - -- remove existing colors from the list of choices - for _, existingColor in ipairs(Player.getAvailableColors()) do - for i, newColor in ipairs(colorList) do - if existingColor == newColor then - table.remove(colorList, i) - end - end - end - - -- show the option dialog for color selection to the player that triggered this - Player[clickedByColor].showOptionsDialog("Select a new color:", colorList, _, function(color) - local HAND_ZONE_GUIDS = { - "a70eee", -- White - "5fe087", -- Orange - "0285cc", -- Green - "be2f17" -- Red - } - local index - local startPos = self.getPosition() - - -- get respective hand zone by position - if startPos.x < -42 then - if startPos.z > 0 then - index = 1 - else - index = 2 - end - else - if startPos.z > 0 then - index = 3 - else - index = 4 - end - end - - -- update the color of the hand zone - local handZone = getObjectFromGUID(HAND_ZONE_GUIDS[index]) - handZone.setValue(color) - - -- if the seated player clicked this, reseat him to the new color - if clickedByColor == playerColor then - navigationOverlayApi.copyVisibility(playerColor, color) - Player[playerColor].changeColor(color) - end - - -- update the internal variable - playerColor = color - end) -end - ---------------------------------------------------------- --- playmat token spawning ---------------------------------------------------------- - --- Finds all customizable cards in this play area and updates their metadata based on the selections --- on the matching upgrade sheet. --- This method is theoretically O(n^2), and should be used sparingly. In practice it will only be --- called when a checkbox is added or removed in-game (which should be rare), and is bounded by the --- number of customizable cards in play. -function syncAllCustomizableCards() - for _, card in ipairs(findCardsAroundSelf()) do - syncCustomizableMetadata(card) - end -end - -function syncCustomizableMetadata(card) - local cardMetadata = JSON.decode(card.getGMNotes()) or { } - if cardMetadata == nil or cardMetadata.customizations == nil then - return - end - for _, upgradeSheet in ipairs(findCardsAroundSelf()) do - local upgradeSheetMetadata = JSON.decode(upgradeSheet.getGMNotes()) or { } - if upgradeSheetMetadata.id == (cardMetadata.id .. "-c") then - for i, customization in ipairs(cardMetadata.customizations) do - if customization.replaces ~= nil and customization.replaces.uses ~= nil then - -- Allowed use of call(), no APIs for individual cards - if upgradeSheet.call("isUpgradeActive", i) then - cardMetadata.uses = customization.replaces.uses - card.setGMNotes(JSON.encode(cardMetadata)) - else - -- TODO: Get the original metadata to restore it... maybe. This should only be - -- necessary in the very unlikely case that a user un-checks a previously-full upgrade - -- row while the card is in play. It will be much easier once the AllPlayerCardsApi is - -- in place, so defer until it is - end - end - end - end - end -end - -function spawnTokensFor(object) - local extraUses = { } - if activeInvestigatorId == "03004" then - extraUses["Charge"] = 1 - end - - tokenManager.spawnForCard(object, extraUses) -end - -function onCollisionEnter(collision_info) - local object = collision_info.collision_object - - -- detect if "Dream-Enhancing Serum" is placed - if object.getName() == "Dream-Enhancing Serum" then isDES = true end - - -- only continue if loading is completed - if not collisionEnabled then return end - - -- only continue for cards - if object.name ~= "Card" and object.name ~= "CardCustom" then return end - - maybeUpdateActiveInvestigator(object) - syncCustomizableMetadata(object) - - if isInDeckZone(object) then - tokenManager.resetTokensSpawned(object) - removeTokensFromObject(object) - elseif shouldSpawnTokens(object) then - spawnTokensFor(object) - end -end - --- detect if "Dream-Enhancing Serum" is removed -function onCollisionExit(collision_info) - if collision_info.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end -end - --- checks if tokens should be spawned for the provided card -function shouldSpawnTokens(card) - if card.is_face_down then - return false - end - - local localCardPos = self.positionToLocal(card.getPosition()) - local metadata = JSON.decode(card.getGMNotes()) - - -- If no metadata we don't know the type, so only spawn in the main area - if metadata == nil then - return inArea(localCardPos, MAIN_PLAY_AREA) - end - - -- Spawn tokens for assets and events on the main area - if inArea(localCardPos, MAIN_PLAY_AREA) - and (metadata.type == "Asset" - or metadata.type == "Event") then - return true - end - - -- Spawn tokens for all encounter types in the threat area - if inArea(localCardPos, THREAT_AREA) - and (metadata.type == "Treachery" - or metadata.type == "Enemy" - or metadata.weakness) then - return true - end - - return false -end - -function onObjectEnterContainer(container, object) - Wait.frames(function() resetTokensIfInDeckZone(container, object) end, 1) -end - -function resetTokensIfInDeckZone(container, object) - if isInDeckZone(container) then - tokenManager.resetTokensSpawned(object) - removeTokensFromObject(container) - end -end - --- checks if an object is in this mats deckzone -function isInDeckZone(checkObject) - local deckZone = getObjectFromGUID(zoneID) - if deckZone == nil then - return false - end - - for _, obj in ipairs(deckZone.getObjects()) do - if obj == checkObject then - return true - end - end - - return false -end - --- removes tokens from the provided card/deck -function removeTokensFromObject(object) - for _, v in ipairs(searchArea(object.getPosition(), { 3, 1, 4 })) do - local obj = v.hit_object - - if obj.getGUID() ~= "4ee1f2" and -- table - obj ~= self and - obj.type ~= "Deck" and - obj.type ~= "Card" and - obj.memo ~= nil and - obj.getLock() == false and - obj.getDescription() ~= "Action Token" and - not tokenChecker.isChaosToken(obj) then - TRASHCAN.putObject(obj) - end - end -end - ---------------------------------------------------------- --- investigator ID grabbing and skill tracker ---------------------------------------------------------- - -function maybeUpdateActiveInvestigator(card) - if not inArea(self.positionToLocal(card.getPosition()), INVESTIGATOR_AREA) then return end - - local notes = JSON.decode(card.getGMNotes()) - local class - - if notes ~= nil and notes.type == "Investigator" and notes.id ~= nil then - if notes.id == activeInvestigatorId then return end - class = notes.class - activeInvestigatorId = notes.id - STAT_TRACKER.call("updateStats", {notes.willpowerIcons, notes.intellectIcons, notes.combatIcons, notes.agilityIcons}) - elseif activeInvestigatorId ~= "00000" then - class = "Neutral" - activeInvestigatorId = "00000" - STAT_TRACKER.call("updateStats", {1, 1, 1, 1}) - else - return - end - - -- change state of action tokens - local search = searchArea(self.positionToWorld({-1.25, 0.05, -1.11}), {4, 1, 1}) - local smallToken = nil - local STATE_TABLE = { - ["Guardian"] = 1, - ["Seeker"] = 2, - ["Rogue"] = 3, - ["Mystic"] = 4, - ["Survivor"] = 5, - ["Neutral"] = 6 - } - - for _, obj in ipairs(search) do - local obj = obj.hit_object - if obj.getDescription() == "Action Token" and obj.getStateId() > 0 then - if obj.getScale().x < 0.4 then - smallToken = obj - else - setObjectState(obj, STATE_TABLE[class]) - end - end - end - - -- update the small token with special action for certain investigators - local SPECIAL_ACTIONS = { - ["04002"] = 8, -- Ursula Downs - ["01002"] = 9, -- Daisy Walker - ["01502"] = 9, -- Daisy Walker - ["01002-pb"] = 9, -- Daisy Walker - ["06003"] = 10, -- Tony Morgan - ["04003"] = 11, -- Finn Edwards - ["08016"] = 14 -- Bob Jenkins - } - - if smallToken ~= nil then - setObjectState(smallToken, SPECIAL_ACTIONS[activeInvestigatorId] or STATE_TABLE[class]) - end -end - -function setObjectState(obj, stateId) - if obj.getStateId() ~= stateId then obj.setState(stateId) end -end - ---------------------------------------------------------- --- calls to 'Global' / functions for calls from outside ---------------------------------------------------------- - -function drawChaosTokenButton(_, _, isRightClick) - Global.call("drawChaosToken", {self, DRAWN_CHAOS_TOKEN_OFFSET, isRightClick}) -end - -function drawEncountercard(object, player, isRightClick) - Global.call("drawEncountercard", playerColor) -end - -function returnGlobalDiscardPosition() - return self.positionToWorld(DISCARD_PILE_POSITION) -end - --- Sets this playermat's draw 1 button to visible ----@param visible Boolean. Whether the draw 1 button should be visible -function showDrawButton(visible) - isDrawButtonVisible = visible - - -- create the "Draw 1" button - if isDrawButtonVisible then - self.createButton({ - label = "Draw 1", - click_function = "doDrawOne", - function_owner = self, - position = { 1.84, 0.1, -0.36 }, - scale = { 0.12, 0.12, 0.12 }, - width = 800, - height = 280, - font_size = 180 - }) - - -- remove the "Draw 1" button - else - local buttons = self.getButtons() - for i = 1, #buttons do - if buttons[i].label == "Draw 1" then - self.removeButton(buttons[i].index) - end - end - end -end - --- Spawns / destroys a clickable clue counter for this playmat with the correct amount of clues ----@param showCounter Boolean Whether the clickable clue counter should be present -function clickableClues(showCounter) - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - local clickerPos = CLUE_CLICKER.getPosition() - local clueCount = 0 - - if showCounter then - -- current clue count - clueCount = CLUE_COUNTER.getVar("exposedValue") - - -- remove clues - CLUE_COUNTER.call("removeAllClues") - - -- set value for clue clickers - CLUE_CLICKER.call("updateVal", clueCount) - - -- move clue counters up - clickerPos.y = 1.52 - CLUE_CLICKER.setPosition(clickerPos) - else - -- current clue count - clueCount = CLUE_CLICKER.getVar("val") - - -- move clue counters down - clickerPos.y = 1.3 - CLUE_CLICKER.setPosition(clickerPos) - - -- spawn clues - local pos = self.positionToWorld({x = -1.12, y = 0.05, z = 0.7}) - for i = 1, clueCount do - pos.y = pos.y + 0.045 * i - tokenManager.spawnToken(pos, "clue", self.getRotation()) - end - end -end - --- removes all clues (moving tokens to the trash and setting counters to 0) -function removeClues() - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - - CLUE_COUNTER.call("removeAllClues") - CLUE_CLICKER.call("updateVal", 0) -end - --- reports the clue count ----@param useClickableCounters Boolean Controls which type of counter is getting checked -function getClueCount(useClickableCounters) - local count = 0 - - if useClickableCounters then - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - count = tonumber(CLUE_CLICKER.getVar("val")) - else - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - count = tonumber(CLUE_COUNTER.getVar("exposedValue")) - end - return count -end - --- Sets this playermat'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 matchTypes Boolean. Whether snap points should only snap for the matching card types. -function setLimitSnapsByType(matchTypes) - local snaps = self.getSnapPoints() - for i, snap in ipairs(snaps) do - local snapPos = snap.position - if inArea(snapPos, MAIN_PLAY_AREA) then - local snapTags = snaps[i].tags - if matchTypes then - if snapTags == nil then - snaps[i].tags = { "Asset" } - else - table.insert(snaps[i].tags, "Asset") - end - else - snaps[i].tags = nil - end - end - if inArea(snapPos, INVESTIGATOR_AREA) then - local snapTags = snaps[i].tags - if matchTypes then - if snapTags == nil then - snaps[i].tags = { "Investigator" } - else - table.insert(snaps[i].tags, "Investigator") - end - else - snaps[i].tags = nil - end - end - end - self.setSnapPoints(snaps) -end - --- Simple method to check if the given point is in a specified area. Local use only, ----@param point Vector. Point to check, only x and z values are relevant ----@param bounds Table. Defined area to see if the point is within. See MAIN_PLAY_AREA for sample --- bounds definition. ----@return Boolean. True if the point is in the area defined by bounds -function inArea(point, bounds) - return (point.x < bounds.upperLeft.x - and point.x > bounds.lowerRight.x - and point.z < bounds.upperLeft.z - and point.z > bounds.lowerRight.z) -end - --- called by custom data helpers to add player card data ----@param args table Contains only one entry, the GUID of the custom data helper -function updatePlayerCards(args) - local customDataHelper = getObjectFromGUID(args[1]) - local playerCardData = customDataHelper.getTable("PLAYER_CARD_DATA") - tokenManager.addPlayerCardData(playerCardData) -end - --- utility function for rounding ----@param num Number Initial value ----@param numDecimalPlaces Number Amount of decimal places -function round(num, numDecimalPlaces) - local mult = 10^(numDecimalPlaces or 0) - return math.floor(num * mult + 0.5) / mult -end -end) -__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local NavigationOverlayApi = {} - local HANDLER_GUID = "797ede" + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - -- Copies the visibility for the Navigation overlay - ---@param startColor String Color of the player to copy from - ---@param targetColor String Color of the targeted player - NavigationOverlayApi.copyVisibility = function(startColor, targetColor) - getObjectFromGUID(HANDLER_GUID).call("copyVisibility", { - startColor = startColor, - targetColor = targetColor - }) + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") end - -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) - ---@param playerColor String Color of the player to update the visibility for - NavigationOverlayApi.cycleVisibility = function(playerColor) - getObjectFromGUID(HANDLER_GUID).call("cycleVisibility", playerColor) + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") end - return NavigationOverlayApi + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) + end + + return MythosAreaApi end end) return __bundle_require("__root") diff --git a/unpacked/Custom_Tile Playermat 3 Green 383d8b.yaml b/unpacked/Custom_Tile Playermat 3 Green 383d8b.yaml index b54048608..93aeebd67 100644 --- a/unpacked/Custom_Tile Playermat 3 Green 383d8b.yaml +++ b/unpacked/Custom_Tile Playermat 3 Green 383d8b.yaml @@ -1,10 +1,10 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedSnapPoints: - Position: - x: -1.0 + x: -1 y: 0.1 z: 0.12 Tags: @@ -16,7 +16,7 @@ AttachedSnapPoints: Tags: - ActionToken - Position: - x: -1.0 + x: -1 y: 0.1 z: -0.28 Tags: @@ -122,21 +122,21 @@ AttachedSnapPoints: y: 0.1 z: 0.61 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.82 y: 0.1 - z: 0.0 + z: 0 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.18 y: 0.1 - z: 0.0 + z: 0 Tags: - Investigator - Position: @@ -144,72 +144,72 @@ AttachedSnapPoints: y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.46 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 +- Position: + x: 0 + y: 0.1 + z: -0.62 + Rotation: + x: 0 + y: 0 + z: 0 - Position: x: 0.0 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 -- Position: - x: 0.0 - y: 0.1 - z: -0.62 - Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.36 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2037357630681963618/E7271737B19CE0BFAAA382BEEEF497FE3E06ECC1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -222,8 +222,9 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true LuaScript: !include 'Custom_Tile Playermat 3 Green 383d8b.ttslua' -LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"Green","zoneID":"fb28e1"}' +LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"Green"}' MeasureMovement: false +Memo: Green Name: Custom_Tile Nickname: 'Playermat 3: Green' Snap: true @@ -237,7 +238,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 6.43 - scaleY: 1.0 + scaleY: 1 scaleZ: 6.43 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Playermat 4 Red 0840d5.ttslua b/unpacked/Custom_Tile Playermat 4 Red 0840d5.ttslua index 8039a238f..40b885350 100644 --- a/unpacked/Custom_Tile Playermat 4 Red 0840d5.ttslua +++ b/unpacked/Custom_Tile Playermat 4 Red 0840d5.ttslua @@ -41,1027 +41,40 @@ 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) ---------------------------------------------------------- --- specific setup (different for each playmat) ---------------------------------------------------------- - -TRASHCAN_GUID = "4b8594" -STAT_TRACKER_GUID = "e74881" -RESOURCE_COUNTER_GUID = "a4b60d" -CLUE_COUNTER_GUID = "37be78" -CLUE_CLICKER_GUID = "4111de" - -require("playermat/Playmat") -end) -__bundle_register("playermat/Playmat", function(require, _LOADED, __bundle_register, __bundle_modules) -local tokenManager = require("core/token/TokenManager") -local tokenChecker = require("core/token/TokenChecker") -local navigationOverlayApi = require("core/NavigationOverlayApi") - --- set true to enable debug logging and show Physics.cast() -local DEBUG = false - --- we use this to turn off collision handling until onLoad() is complete -local collisionEnabled = false - --- position offsets relative to mat [x, y, z] -local DRAWN_ENCOUNTER_CARD_OFFSET = {1.365, 0.5, -0.625} -local DRAWN_CHAOS_TOKEN_OFFSET = {-1.55, 0.25, -0.58} - --- x-Values for discard buttons -local DISCARD_BUTTON_OFFSETS = {-1.365, -0.91, -0.455, 0, 0.455, 0.91} - -local SEARCH_AROUND_SELF_X_BUFFER = 8 - --- defined areas for the function "inArea()"" -local MAIN_PLAY_AREA = { - upperLeft = { - x = 1.98, - z = 0.736, - }, - lowerRight = { - x = -0.79, - z = -0.39, - } -} -local INVESTIGATOR_AREA = { - upperLeft = { - x = -1.084, - z = 0.06517 - }, - lowerRight = { - x = -1.258, - z = -0.0805, - } -} -local THREAT_AREA = { - upperLeft = { - x = 1.53, - z = -0.34 - }, - lowerRight = { - x = -1.13, - z = -0.92, - } -} - -local DRAW_DECK_POSITION = { x = -1.82, y = 1, z = 0 } -local DISCARD_PILE_POSITION = { x = -1.82, y = 1.5, z = 0.61 } - -local TRASHCAN -local STAT_TRACKER -local RESOURCE_COUNTER - --- global variable so it can be reset by the Clean Up Helper -activeInvestigatorId = "00000" -local isDrawButtonVisible = false - --- global variable to report "Dream-Enhancing Serum" status -isDES = false - -function onSave() - return JSON.encode({ - zoneID = zoneID, - playerColor = playerColor, - activeInvestigatorId = activeInvestigatorId, - isDrawButtonVisible = isDrawButtonVisible - }) -end - -function onLoad(save_state) - self.interactable = DEBUG - - TRASHCAN = getObjectFromGUID(TRASHCAN_GUID) - STAT_TRACKER = getObjectFromGUID(STAT_TRACKER_GUID) - RESOURCE_COUNTER = getObjectFromGUID(RESOURCE_COUNTER_GUID) - - -- button creation - for i = 1, 6 do - makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], {-3.85, 3, 10.38}, i) - end - - self.createButton({ - click_function = "drawEncountercard", - function_owner = self, - position = {-1.84, 0, -0.65}, - rotation = {0, 80, 0}, - width = 265, - height = 190 - }) - - self.createButton({ - click_function = "drawChaosTokenButton", - function_owner = self, - position = {1.85, 0, -0.74}, - rotation = {0, -45, 0}, - width = 135, - height = 135 - }) - - self.createButton({ - label = "Upkeep", - click_function = "doUpkeep", - function_owner = self, - position = {1.84, 0.1, -0.44}, - scale = {0.12, 0.12, 0.12}, - width = 800, - height = 280, - font_size = 180 - }) - - -- save state loading - local state = JSON.decode(save_state) - if state ~= nil then - zoneID = state.zoneID - playerColor = state.playerColor - activeInvestigatorId = state.activeInvestigatorId - isDrawButtonVisible = state.isDrawButtonVisible - end - - showDrawButton(isDrawButtonVisible) - - if getObjectFromGUID(zoneID) == nil then spawnDeckZone() end - collisionEnabled = true - - math.randomseed(os.time()) -end - ---------------------------------------------------------- --- utility functions ---------------------------------------------------------- - -function spawnDeckZone() - spawnObject({ - position = self.positionToWorld({-1.4, 0, 0.3 }), - scale = {3, 5, 8 }, - type = 'ScriptingTrigger', - callback = function (zone) zoneID = zone.getGUID() end, - callback_owner = self, - rotation = self.getRotation() - }) -end - -function searchArea(origin, size) - return Physics.cast({ - origin = origin, - direction = {0, 1, 0}, - orientation = self.getRotation(), - type = 3, - size = size, - max_distance = 1, - debug = DEBUG - }) -end - --- Finds all objects on the playmat and associated set aside zone. -function searchAroundSelf() - local bounds = self.getBoundsNormalized() - -- Increase the width to cover the set aside zone - bounds.size.x = bounds.size.x + SEARCH_AROUND_SELF_X_BUFFER - -- Since the cast is centered on the position, shift left or right to keep the non-set aside edge - -- of the cast at the edge of the playmat - -- setAsideDirection accounts for the set aside zone being on the left or right, depending on the - -- table position of the playmat - local setAsideDirection = bounds.center.z > 0 and 1 or -1 - local localCenter = self.positionToLocal(bounds.center) - localCenter.x = localCenter.x - + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x - - return searchArea(self.positionToWorld(localCenter), bounds.size) -end - -function findCardsAroundSelf() - local cards = { } - for _, collision in ipairs(searchAroundSelf()) do - local obj = collision.hit_object - if obj.name == "Card" or obj.name == "CardCustom" then - table.insert(cards, obj) - end - end - - return cards -end - -function doNotReady(card) - return card.getVar("do_not_ready") or false -end - ---------------------------------------------------------- --- Discard buttons ---------------------------------------------------------- - --- builds a function that discards things in searchPosition to discardPosition --- stuff on the card/deck will be put into the local trashcan -function makeDiscardHandlerFor(searchPosition, discardPosition) - return function () - for _, hitObj in ipairs(findObjectsAtPosition(searchPosition)) do - local obj = hitObj.hit_object - if obj.tag == "Deck" or obj.tag == "Card" then - if obj.hasTag("PlayerCard") then - obj.setPositionSmooth(self.positionToWorld(DISCARD_PILE_POSITION), false, true) - obj.setRotation(self.getRotation()) - else - obj.setPositionSmooth(discardPosition, false, true) - obj.setRotation({0, -90, 0}) - end - -- put chaos tokens back into bag (e.g. Unrelenting) - elseif tokenChecker.isChaosToken(obj) then - local chaosBag = Global.call("findChaosBag") - chaosBag.putObject(obj) - -- don't touch the table or this playmat itself - elseif obj.guid ~= "4ee1f2" and obj ~= self then - TRASHCAN.putObject(obj) - end - end - end -end - --- build a discard button to discard from searchPosition to discardPosition (number must be unique) -function makeDiscardButton(xValue, discardPosition, number) - local position = { xValue, 0.1, -0.94} - local searchPosition = {-position[1], position[2], position[3] + 0.32} - local handler = makeDiscardHandlerFor(searchPosition, discardPosition) - local handlerName = 'handler' .. number - self.setVar(handlerName, handler) - self.createButton({ - label = "Discard", - click_function = handlerName, - function_owner = self, - position = {position[1], position[2], position[3] + 0.6}, - scale = {0.12, 0.12, 0.12}, - width = 900, - height = 350, - font_size = 220 - }) -end - -function findObjectsAtPosition(localPos) - return Physics.cast({ - origin = self.positionToWorld(localPos), - direction = {0, 1, 0}, - orientation = {0, self.getRotation().y + 90, 0}, - type = 3, - size = {3.2, 1, 2}, - max_distance = 0, - debug = DEBUG - }) -end - ---------------------------------------------------------- --- Upkeep button ---------------------------------------------------------- - --- calls the Upkeep function with correct parameter -function doUpkeepFromHotkey(color) - doUpkeep(_, color) -end - -function doUpkeep(_, clickedByColor, isRightClick) - -- right-click allow color changing - if isRightClick then - changeColor(clickedByColor) - return - end - - -- send messages to player who clicked button if no seated player found - messageColor = Player[playerColor].seated and playerColor or clickedByColor - - -- unexhaust cards in play zone, flip action tokens and find forcedLearning - local forcedLearning = false - local rot = self.getRotation() - for _, v in ipairs(searchAroundSelf()) do - local obj = v.hit_object - if obj.getDescription() == "Action Token" and obj.is_face_down then - obj.flip() - elseif obj.tag == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then - local cardMetadata = JSON.decode(obj.getGMNotes()) or {} - if not doNotReady(obj) then - local cardRotation = round(obj.getRotation().y, 0) - rot.y - local yRotDiff = 0 - - if cardRotation < 0 then - cardRotation = cardRotation + 360 - end - - -- rotate cards to the next multiple of 90° towards 0° - if cardRotation > 90 and cardRotation <= 180 then - yRotDiff = 90 - elseif cardRotation < 270 and cardRotation > 180 then - yRotDiff = 270 - end - - -- set correct rotation for face-down cards - rot.z = obj.is_face_down and 180 or 0 - obj.setRotation({rot.x, rot.y + yRotDiff, rot.z}) - end - if cardMetadata.id == "08031" then - forcedLearning = true - end - if cardMetadata.uses ~= nil then - tokenManager.maybeReplenishCard(obj, cardMetadata.uses, self) - end - end - end - - -- flip investigator mini-card and summoned servitor mini-card - -- (all characters allowed to account for custom IDs - e.g. 'Z0000' for TTS Zoop generated IDs) - if activeInvestigatorId ~= nil then - local miniId = string.match(activeInvestigatorId, ".....") .. "-m" - for _, obj in ipairs(getObjects()) do - if obj.tag == "Card" and obj.is_face_down then - local notes = JSON.decode(obj.getGMNotes()) - if notes ~= nil and notes.type == "Minicard" and (notes.id == miniId or notes.id == "09080-m") then - obj.flip() - end - end - end - end - - -- gain a resource (or two if playing Jenny Barnes) - if string.match(activeInvestigatorId, "%d%d%d%d%d") == "02003" then - gainResources(2) - printToColor("Gaining 2 resources (Jenny)", messageColor) - else - gainResources(1) - end - - -- draw a card (with handling for Patrice and Forced Learning) - if activeInvestigatorId == "06005" then - if forcedLearning then - printToColor("Wow, did you really take 'Versatile' to play Patrice with 'Forced Learning'? Choose which draw replacement effect takes priority and draw cards accordingly.", messageColor) - else - local handSize = #Player[playerColor].getHandObjects() - if handSize < 5 then - local cardsToDraw = 5 - handSize - printToColor("Drawing " .. cardsToDraw .. " cards (Patrice)", messageColor) - drawCardsWithReshuffle(cardsToDraw) - end - end - elseif forcedLearning then - printToColor("Drawing 2 cards, discard 1 (Forced Learning)", messageColor) - drawCardsWithReshuffle(2) - elseif activeInvestigatorId == "89001" then - printToColor("Drawing 2 cards (Subject 5U-21)", messageColor) - drawCardsWithReshuffle(2) - else - drawCardsWithReshuffle(1) - end -end - --- adds the specified amount of resources to the resource counter -function gainResources(amount) - local count = RESOURCE_COUNTER.getVar("val") - local add = tonumber(amount) or 0 - RESOURCE_COUNTER.call("updateVal", count + add) -end - --- function for "draw 1 button" (that can be added via option panel) -function doDrawOne(_, color) - -- send messages to player who clicked button if no seated player found - messageColor = Player[playerColor].seated and playerColor or color - drawCardsWithReshuffle(1) -end - --- draw X cards (shuffle discards if necessary) -function drawCardsWithReshuffle(numCards) - getDrawDiscardDecks() - - -- Norman Withers handling - if string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then - local harbinger = false - if topCard ~= nil and topCard.getName() == "The Harbinger" then harbinger = true - elseif drawDeck ~= nil and not drawDeck.is_face_down then - local cards = drawDeck.getObjects() - if cards[#cards].name == "The Harbinger" then harbinger = true end - end - - if harbinger then - printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) - return - end - - if topCard ~= nil then - topCard.deal(numCards, playerColor) - numCards = numCards - 1 - if numCards == 0 then return end - end - end - - local deckSize = 1 - if drawDeck == nil then - deckSize = 0 - elseif drawDeck.tag == "Deck" then - deckSize = #drawDeck.getObjects() - end - - if deckSize >= numCards then - drawCards(numCards) - return - end - - drawCards(deckSize) - if discardPile ~= nil then - shuffleDiscardIntoDeck() - Wait.time(|| drawCards(numCards - deckSize), 1) - end - printToColor("Take 1 horror (drawing card from empty deck)", messageColor) -end - --- get the draw deck and discard pile objects -function getDrawDiscardDecks() - drawDeck = nil - discardPile = nil - topCard = nil - - local zone = getObjectFromGUID(zoneID) - if zone == nil then return end - - for _, object in ipairs(zone.getObjects()) do - if object.tag == "Deck" or object.tag == "Card" then - if self.positionToLocal(object.getPosition()).z > 0.5 then - discardPile = object - -- Norman Withers handling - elseif string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" and object.tag == "Card" and not object.is_face_down then - topCard = object - else - drawDeck = object - end - end - end -end - -function drawCards(numCards) - if drawDeck == nil then return end - drawDeck.deal(numCards, playerColor) -end - -function shuffleDiscardIntoDeck() - if not discardPile.is_face_down then discardPile.flip() end - discardPile.shuffle() - discardPile.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) - drawDeck = discardPile - discardPile = nil -end - --- discard a random non-hidden card from hand -function doDiscardOne() - local hand = Player[playerColor].getHandObjects() - if #hand == 0 then - broadcastToAll("Cannot discard from empty hand!", "Red") - else - local choices = {} - for i = 1, #hand do - local notes = JSON.decode(hand[i].getGMNotes()) - if notes ~= nil then - if notes.hidden ~= true then - table.insert(choices, i) - end - else - table.insert(choices, i) - end - end - - if #choices == 0 then - broadcastToAll("Hidden cards can't be randomly discarded.", "Orange") - return - end - - -- get a random non-hidden card (from the "choices" table) - local num = math.random(1, #choices) - hand[choices[num]].setPosition(returnGlobalDiscardPosition()) - broadcastToAll(playerColor .. " randomly discarded card " .. choices[num] .. "/" .. #hand .. ".", "White") - end -end - ---------------------------------------------------------- --- color related functions ---------------------------------------------------------- - --- changes the player color -function changeColor(clickedByColor) - local colorList = { - "White", - "Brown", - "Red", - "Orange", - "Yellow", - "Green", - "Teal", - "Blue", - "Purple", - "Pink" - } - - -- remove existing colors from the list of choices - for _, existingColor in ipairs(Player.getAvailableColors()) do - for i, newColor in ipairs(colorList) do - if existingColor == newColor then - table.remove(colorList, i) - end - end - end - - -- show the option dialog for color selection to the player that triggered this - Player[clickedByColor].showOptionsDialog("Select a new color:", colorList, _, function(color) - local HAND_ZONE_GUIDS = { - "a70eee", -- White - "5fe087", -- Orange - "0285cc", -- Green - "be2f17" -- Red - } - local index - local startPos = self.getPosition() - - -- get respective hand zone by position - if startPos.x < -42 then - if startPos.z > 0 then - index = 1 - else - index = 2 - end - else - if startPos.z > 0 then - index = 3 - else - index = 4 - end - end - - -- update the color of the hand zone - local handZone = getObjectFromGUID(HAND_ZONE_GUIDS[index]) - handZone.setValue(color) - - -- if the seated player clicked this, reseat him to the new color - if clickedByColor == playerColor then - navigationOverlayApi.copyVisibility(playerColor, color) - Player[playerColor].changeColor(color) - end - - -- update the internal variable - playerColor = color - end) -end - ---------------------------------------------------------- --- playmat token spawning ---------------------------------------------------------- - --- Finds all customizable cards in this play area and updates their metadata based on the selections --- on the matching upgrade sheet. --- This method is theoretically O(n^2), and should be used sparingly. In practice it will only be --- called when a checkbox is added or removed in-game (which should be rare), and is bounded by the --- number of customizable cards in play. -function syncAllCustomizableCards() - for _, card in ipairs(findCardsAroundSelf()) do - syncCustomizableMetadata(card) - end -end - -function syncCustomizableMetadata(card) - local cardMetadata = JSON.decode(card.getGMNotes()) or { } - if cardMetadata == nil or cardMetadata.customizations == nil then - return - end - for _, upgradeSheet in ipairs(findCardsAroundSelf()) do - local upgradeSheetMetadata = JSON.decode(upgradeSheet.getGMNotes()) or { } - if upgradeSheetMetadata.id == (cardMetadata.id .. "-c") then - for i, customization in ipairs(cardMetadata.customizations) do - if customization.replaces ~= nil and customization.replaces.uses ~= nil then - -- Allowed use of call(), no APIs for individual cards - if upgradeSheet.call("isUpgradeActive", i) then - cardMetadata.uses = customization.replaces.uses - card.setGMNotes(JSON.encode(cardMetadata)) - else - -- TODO: Get the original metadata to restore it... maybe. This should only be - -- necessary in the very unlikely case that a user un-checks a previously-full upgrade - -- row while the card is in play. It will be much easier once the AllPlayerCardsApi is - -- in place, so defer until it is - end - end - end - end - end -end - -function spawnTokensFor(object) - local extraUses = { } - if activeInvestigatorId == "03004" then - extraUses["Charge"] = 1 - end - - tokenManager.spawnForCard(object, extraUses) -end - -function onCollisionEnter(collision_info) - local object = collision_info.collision_object - - -- detect if "Dream-Enhancing Serum" is placed - if object.getName() == "Dream-Enhancing Serum" then isDES = true end - - -- only continue if loading is completed - if not collisionEnabled then return end - - -- only continue for cards - if object.name ~= "Card" and object.name ~= "CardCustom" then return end - - maybeUpdateActiveInvestigator(object) - syncCustomizableMetadata(object) - - if isInDeckZone(object) then - tokenManager.resetTokensSpawned(object) - removeTokensFromObject(object) - elseif shouldSpawnTokens(object) then - spawnTokensFor(object) - end -end - --- detect if "Dream-Enhancing Serum" is removed -function onCollisionExit(collision_info) - if collision_info.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end -end - --- checks if tokens should be spawned for the provided card -function shouldSpawnTokens(card) - if card.is_face_down then - return false - end - - local localCardPos = self.positionToLocal(card.getPosition()) - local metadata = JSON.decode(card.getGMNotes()) - - -- If no metadata we don't know the type, so only spawn in the main area - if metadata == nil then - return inArea(localCardPos, MAIN_PLAY_AREA) - end - - -- Spawn tokens for assets and events on the main area - if inArea(localCardPos, MAIN_PLAY_AREA) - and (metadata.type == "Asset" - or metadata.type == "Event") then - return true - end - - -- Spawn tokens for all encounter types in the threat area - if inArea(localCardPos, THREAT_AREA) - and (metadata.type == "Treachery" - or metadata.type == "Enemy" - or metadata.weakness) then - return true - end - - return false -end - -function onObjectEnterContainer(container, object) - Wait.frames(function() resetTokensIfInDeckZone(container, object) end, 1) -end - -function resetTokensIfInDeckZone(container, object) - if isInDeckZone(container) then - tokenManager.resetTokensSpawned(object) - removeTokensFromObject(container) - end -end - --- checks if an object is in this mats deckzone -function isInDeckZone(checkObject) - local deckZone = getObjectFromGUID(zoneID) - if deckZone == nil then - return false - end - - for _, obj in ipairs(deckZone.getObjects()) do - if obj == checkObject then - return true - end - end - - return false -end - --- removes tokens from the provided card/deck -function removeTokensFromObject(object) - for _, v in ipairs(searchArea(object.getPosition(), { 3, 1, 4 })) do - local obj = v.hit_object - - if obj.getGUID() ~= "4ee1f2" and -- table - obj ~= self and - obj.type ~= "Deck" and - obj.type ~= "Card" and - obj.memo ~= nil and - obj.getLock() == false and - obj.getDescription() ~= "Action Token" and - not tokenChecker.isChaosToken(obj) then - TRASHCAN.putObject(obj) - end - end -end - ---------------------------------------------------------- --- investigator ID grabbing and skill tracker ---------------------------------------------------------- - -function maybeUpdateActiveInvestigator(card) - if not inArea(self.positionToLocal(card.getPosition()), INVESTIGATOR_AREA) then return end - - local notes = JSON.decode(card.getGMNotes()) - local class - - if notes ~= nil and notes.type == "Investigator" and notes.id ~= nil then - if notes.id == activeInvestigatorId then return end - class = notes.class - activeInvestigatorId = notes.id - STAT_TRACKER.call("updateStats", {notes.willpowerIcons, notes.intellectIcons, notes.combatIcons, notes.agilityIcons}) - elseif activeInvestigatorId ~= "00000" then - class = "Neutral" - activeInvestigatorId = "00000" - STAT_TRACKER.call("updateStats", {1, 1, 1, 1}) - else - return - end - - -- change state of action tokens - local search = searchArea(self.positionToWorld({-1.25, 0.05, -1.11}), {4, 1, 1}) - local smallToken = nil - local STATE_TABLE = { - ["Guardian"] = 1, - ["Seeker"] = 2, - ["Rogue"] = 3, - ["Mystic"] = 4, - ["Survivor"] = 5, - ["Neutral"] = 6 - } - - for _, obj in ipairs(search) do - local obj = obj.hit_object - if obj.getDescription() == "Action Token" and obj.getStateId() > 0 then - if obj.getScale().x < 0.4 then - smallToken = obj - else - setObjectState(obj, STATE_TABLE[class]) - end - end - end - - -- update the small token with special action for certain investigators - local SPECIAL_ACTIONS = { - ["04002"] = 8, -- Ursula Downs - ["01002"] = 9, -- Daisy Walker - ["01502"] = 9, -- Daisy Walker - ["01002-pb"] = 9, -- Daisy Walker - ["06003"] = 10, -- Tony Morgan - ["04003"] = 11, -- Finn Edwards - ["08016"] = 14 -- Bob Jenkins - } - - if smallToken ~= nil then - setObjectState(smallToken, SPECIAL_ACTIONS[activeInvestigatorId] or STATE_TABLE[class]) - end -end - -function setObjectState(obj, stateId) - if obj.getStateId() ~= stateId then obj.setState(stateId) end -end - ---------------------------------------------------------- --- calls to 'Global' / functions for calls from outside ---------------------------------------------------------- - -function drawChaosTokenButton(_, _, isRightClick) - Global.call("drawChaosToken", {self, DRAWN_CHAOS_TOKEN_OFFSET, isRightClick}) -end - -function drawEncountercard(object, player, isRightClick) - Global.call("drawEncountercard", playerColor) -end - -function returnGlobalDiscardPosition() - return self.positionToWorld(DISCARD_PILE_POSITION) -end - --- Sets this playermat's draw 1 button to visible ----@param visible Boolean. Whether the draw 1 button should be visible -function showDrawButton(visible) - isDrawButtonVisible = visible - - -- create the "Draw 1" button - if isDrawButtonVisible then - self.createButton({ - label = "Draw 1", - click_function = "doDrawOne", - function_owner = self, - position = { 1.84, 0.1, -0.36 }, - scale = { 0.12, 0.12, 0.12 }, - width = 800, - height = 280, - font_size = 180 - }) - - -- remove the "Draw 1" button - else - local buttons = self.getButtons() - for i = 1, #buttons do - if buttons[i].label == "Draw 1" then - self.removeButton(buttons[i].index) - end - end - end -end - --- Spawns / destroys a clickable clue counter for this playmat with the correct amount of clues ----@param showCounter Boolean Whether the clickable clue counter should be present -function clickableClues(showCounter) - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - local clickerPos = CLUE_CLICKER.getPosition() - local clueCount = 0 - - if showCounter then - -- current clue count - clueCount = CLUE_COUNTER.getVar("exposedValue") - - -- remove clues - CLUE_COUNTER.call("removeAllClues") - - -- set value for clue clickers - CLUE_CLICKER.call("updateVal", clueCount) - - -- move clue counters up - clickerPos.y = 1.52 - CLUE_CLICKER.setPosition(clickerPos) - else - -- current clue count - clueCount = CLUE_CLICKER.getVar("val") - - -- move clue counters down - clickerPos.y = 1.3 - CLUE_CLICKER.setPosition(clickerPos) - - -- spawn clues - local pos = self.positionToWorld({x = -1.12, y = 0.05, z = 0.7}) - for i = 1, clueCount do - pos.y = pos.y + 0.045 * i - tokenManager.spawnToken(pos, "clue", self.getRotation()) - end - end -end - --- removes all clues (moving tokens to the trash and setting counters to 0) -function removeClues() - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - - CLUE_COUNTER.call("removeAllClues") - CLUE_CLICKER.call("updateVal", 0) -end - --- reports the clue count ----@param useClickableCounters Boolean Controls which type of counter is getting checked -function getClueCount(useClickableCounters) - local count = 0 - - if useClickableCounters then - local CLUE_CLICKER = getObjectFromGUID(CLUE_CLICKER_GUID) - count = tonumber(CLUE_CLICKER.getVar("val")) - else - local CLUE_COUNTER = getObjectFromGUID(CLUE_COUNTER_GUID) - count = tonumber(CLUE_COUNTER.getVar("exposedValue")) - end - return count -end - --- Sets this playermat'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 matchTypes Boolean. Whether snap points should only snap for the matching card types. -function setLimitSnapsByType(matchTypes) - local snaps = self.getSnapPoints() - for i, snap in ipairs(snaps) do - local snapPos = snap.position - if inArea(snapPos, MAIN_PLAY_AREA) then - local snapTags = snaps[i].tags - if matchTypes then - if snapTags == nil then - snaps[i].tags = { "Asset" } - else - table.insert(snaps[i].tags, "Asset") - end - else - snaps[i].tags = nil - end - end - if inArea(snapPos, INVESTIGATOR_AREA) then - local snapTags = snaps[i].tags - if matchTypes then - if snapTags == nil then - snaps[i].tags = { "Investigator" } - else - table.insert(snaps[i].tags, "Investigator") - end - else - snaps[i].tags = nil - end - end - end - self.setSnapPoints(snaps) -end - --- Simple method to check if the given point is in a specified area. Local use only, ----@param point Vector. Point to check, only x and z values are relevant ----@param bounds Table. Defined area to see if the point is within. See MAIN_PLAY_AREA for sample --- bounds definition. ----@return Boolean. True if the point is in the area defined by bounds -function inArea(point, bounds) - return (point.x < bounds.upperLeft.x - and point.x > bounds.lowerRight.x - and point.z < bounds.upperLeft.z - and point.z > bounds.lowerRight.z) -end - --- called by custom data helpers to add player card data ----@param args table Contains only one entry, the GUID of the custom data helper -function updatePlayerCards(args) - local customDataHelper = getObjectFromGUID(args[1]) - local playerCardData = customDataHelper.getTable("PLAYER_CARD_DATA") - tokenManager.addPlayerCardData(playerCardData) -end - --- utility function for rounding ----@param num Number Initial value ----@param numDecimalPlaces Number Amount of decimal places -function round(num, numDecimalPlaces) - local mult = 10^(numDecimalPlaces or 0) - return math.floor(num * mult + 0.5) / mult -end -end) -__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local NavigationOverlayApi = {} - local HANDLER_GUID = "797ede" + local MythosAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - -- Copies the visibility for the Navigation overlay - ---@param startColor String Color of the player to copy from - ---@param targetColor String Color of the targeted player - NavigationOverlayApi.copyVisibility = function(startColor, targetColor) - getObjectFromGUID(HANDLER_GUID).call("copyVisibility", { - startColor = startColor, - targetColor = targetColor - }) + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") end - -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) - ---@param playerColor String Color of the player to update the visibility for - NavigationOverlayApi.cycleVisibility = function(playerColor) - getObjectFromGUID(HANDLER_GUID).call("cycleVisibility", playerColor) + -- returns the chaos token metadata (if provided through scenario reference card) + MythosAreaApi.returnTokenData = function() + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") end - return NavigationOverlayApi -end -end) -__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local CHAOS_TOKEN_NAMES = { - ["Elder Sign"] = true, - ["+1"] = true, - ["0"] = true, - ["-1"] = true, - ["-2"] = true, - ["-3"] = true, - ["-4"] = true, - ["-5"] = true, - ["-6"] = true, - ["-7"] = true, - ["-8"] = true, - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, - ["Auto-fail"] = true, - ["Bless"] = true, - ["Curse"] = true, - ["Frost"] = true - } - - local TokenChecker = {} - - -- returns true if the passed object is a chaos token (by name) - TokenChecker.isChaosToken = function(obj) - if CHAOS_TOKEN_NAMES[obj.getName()] then - return true - else - return false - end + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) end - return TokenChecker + return MythosAreaApi end end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -1179,15 +192,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -1202,7 +210,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -1220,13 +228,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -1260,16 +270,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -1282,9 +293,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -1364,7 +377,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -1397,8 +410,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -1410,7 +423,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -1425,19 +438,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -1460,22 +471,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -1495,13 +505,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -1537,7 +546,6 @@ do local row = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x - 1 + 0.55 * row, pos.y, pos.z - 1.4 - 0.55 * column)) end - return cluePositions end @@ -1551,12 +559,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -1588,118 +594,1357 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, - type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false + return TokenManager +end +end) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi +end +end) +__bundle_register("playermat/Playmat", function(require, _LOADED, __bundle_register, __bundle_modules) +local chaosBagApi = require("chaosbag/ChaosBagApi") +local deckLib = require("util/DeckLib") +local guidReferenceApi = require("core/GUIDReferenceApi") +local mythosAreaApi = require("core/MythosAreaApi") +local navigationOverlayApi = require("core/NavigationOverlayApi") +local searchLib = require("util/SearchLib") +local tokenChecker = require("core/token/TokenChecker") +local tokenManager = require("core/token/TokenManager") + +-- we use this to turn off collision handling until onLoad() is complete +local collisionEnabled = false + +-- x-Values for discard buttons +local DISCARD_BUTTON_OFFSETS = {-1.365, -0.91, -0.455, 0, 0.455, 0.91} + +local SEARCH_AROUND_SELF_X_BUFFER = 8 + +-- defined areas for object searching +local MAIN_PLAY_AREA = { + upperLeft = { + x = 1.98, + z = 0.736 + }, + lowerRight = { + x = -0.79, + z = -0.39 + } +} +local INVESTIGATOR_AREA = { + upperLeft = { + x = -1.084, + z = 0.06517 + }, + lowerRight = { + x = -1.258, + z = -0.0805 + } +} +local THREAT_AREA = { + upperLeft = { + x = 1.53, + z = -0.34 + }, + lowerRight = { + x = -1.13, + z = -0.92 + } +} +local DECK_DISCARD_AREA = { + upperLeft = { + x = -1.62, + z = 0.855 + }, + lowerRight = { + x = -2.02, + z = -0.245 + }, + center = { + x = -1.82, + y = 0.5, + z = 0.305 + }, + size = { + x = 0.4, + y = 3, + z = 1.1 + } +} + +-- local position of draw and discard pile +local DRAW_DECK_POSITION = { x = -1.82, y = 0.1, z = 0 } +local DISCARD_PILE_POSITION = { x = -1.82, y = 0.1, z = 0.61 } + +-- global position of encounter discard pile +local ENCOUNTER_DISCARD_POSITION = { x = -3.85, y = 1.5, z = 10.38} + +-- global variable so it can be reset by the Clean Up Helper +activeInvestigatorId = "00000" + +-- table of type-object reference pairs of all owned objects +local ownedObjects = {} +local matColor = self.getMemo() + +-- variable to track the status of the "Show Draw Button" option +local isDrawButtonVisible = false + +-- global variable to report "Dream-Enhancing Serum" status +isDES = false + +function onSave() + return JSON.encode({ + playerColor = playerColor, + activeInvestigatorId = activeInvestigatorId, + isDrawButtonVisible = isDrawButtonVisible + }) +end + +function onLoad(saveState) + self.interactable = false + + -- get object references to owned objects + ownedObjects = guidReferenceApi.getObjectsByOwner(matColor) + + -- button creation + for i = 1, 6 do + makeDiscardButton(DISCARD_BUTTON_OFFSETS[i], i) + end + + self.createButton({ + click_function = "drawEncounterCard", + function_owner = self, + position = {-1.84, 0, -0.65}, + rotation = {0, 80, 0}, + width = 265, + height = 190 + }) + + self.createButton({ + click_function = "drawChaosTokenButton", + function_owner = self, + position = {1.85, 0, -0.74}, + rotation = {0, -45, 0}, + width = 135, + height = 135 + }) + + self.createButton({ + label = "Upkeep", + click_function = "doUpkeep", + function_owner = self, + position = {1.84, 0.1, -0.44}, + scale = {0.12, 0.12, 0.12}, + width = 800, + height = 280, + font_size = 180 + }) + + -- save state loading + local state = JSON.decode(saveState) + if state ~= nil then + playerColor = state.playerColor + activeInvestigatorId = state.activeInvestigatorId + isDrawButtonVisible = state.isDrawButtonVisible + end + + showDrawButton(isDrawButtonVisible) + collisionEnabled = true + math.randomseed(os.time()) +end + +--------------------------------------------------------- +-- utility functions +--------------------------------------------------------- + +-- searches an area and optionally filters the result +function searchArea(origin, size, filter) + return searchLib.inArea(origin, self.getRotation(), size, filter) +end + +-- finds all objects on the playmat and associated set aside zone. +function searchAroundSelf(filter) + local bounds = self.getBoundsNormalized() + -- Increase the width to cover the set aside zone + bounds.size.x = bounds.size.x + SEARCH_AROUND_SELF_X_BUFFER + bounds.size.y = 1 + -- Since the cast is centered on the position, shift left or right to keep the non-set aside edge + -- of the cast at the edge of the playmat + -- setAsideDirection accounts for the set aside zone being on the left or right, depending on the + -- table position of the playmat + local setAsideDirection = bounds.center.z > 0 and 1 or -1 + local localCenter = self.positionToLocal(bounds.center) + localCenter.x = localCenter.x + setAsideDirection * SEARCH_AROUND_SELF_X_BUFFER / 2 / self.getScale().x + return searchArea(self.positionToWorld(localCenter), bounds.size, filter) +end + +-- searches the area around the draw deck and discard pile +function searchDeckAndDiscardArea(filter) + local pos = self.positionToWorld(DECK_DISCARD_AREA.center) + local scale = self.getScale() + local size = { + x = DECK_DISCARD_AREA.size.x * scale.x, + y = DECK_DISCARD_AREA.size.y, + z = DECK_DISCARD_AREA.size.z * scale.z + } + return searchArea(pos, size, filter) +end + +function doNotReady(card) + return card.getVar("do_not_ready") or false +end + +-- rounds a number to the specified amount of decimal places +---@param num Number Initial value +---@param numDecimalPlaces Number Amount of decimal places +function round(num, numDecimalPlaces) + local mult = 10^(numDecimalPlaces or 0) + return math.floor(num * mult + 0.5) / mult +end + +--------------------------------------------------------- +-- Discard buttons +--------------------------------------------------------- + +-- handles discarding for a list of objects +---@param objList Table List of objects to discard +function discardListOfObjects(objList) + for _, obj in ipairs(objList) do + if obj.type == "Card" or obj.type == "Deck" then + if obj.hasTag("PlayerCard") then + deckLib.placeOrMergeIntoDeck(obj, returnGlobalDiscardPosition(), self.getRotation()) + else + deckLib.placeOrMergeIntoDeck(obj, ENCOUNTER_DISCARD_POSITION, {x = 0, y = -90, z = 0}) + end + -- put chaos tokens back into bag (e.g. Unrelenting) + elseif tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + -- don't touch locked objects (like the table etc.) + elseif not obj.getLock() then + ownedObjects.Trash.putObject(obj) + end + end +end + +-- build a discard button to discard from searchPosition (number must be unique) +function makeDiscardButton(xValue, number) + local position = { xValue, 0.1, -0.94} + local searchPosition = {-position[1], position[2], position[3] + 0.32} + local handlerName = 'handler' .. number + self.setVar(handlerName, function() + local cardSizeSearch = {2, 1, 3.2} + local globalSearchPosition = self.positionToWorld(searchPosition) + local searchResult = searchArea(globalSearchPosition, cardSizeSearch) + return discardListOfObjects(searchResult) + end) + self.createButton({ + label = "Discard", + click_function = handlerName, + function_owner = self, + position = {position[1], position[2], position[3] + 0.6}, + scale = {0.12, 0.12, 0.12}, + width = 900, + height = 350, + font_size = 220 + }) +end + +--------------------------------------------------------- +-- Upkeep button +--------------------------------------------------------- + +-- calls the Upkeep function with correct parameter +function doUpkeepFromHotkey(color) + doUpkeep(_, color) +end + +function doUpkeep(_, clickedByColor, isRightClick) + if isRightClick then + changeColor(clickedByColor) + return + end + + -- send messages to player who clicked button if no seated player found + messageColor = Player[playerColor].seated and playerColor or clickedByColor + + -- unexhaust cards in play zone, flip action tokens and find forcedLearning + local forcedLearning = false + local rot = self.getRotation() + for _, obj in ipairs(searchAroundSelf()) do + if obj.getDescription() == "Action Token" and obj.is_face_down then + obj.flip() + elseif obj.type == "Card" and not inArea(self.positionToLocal(obj.getPosition()), INVESTIGATOR_AREA) then + local cardMetadata = JSON.decode(obj.getGMNotes()) or {} + if not doNotReady(obj) then + local cardRotation = round(obj.getRotation().y, 0) - rot.y + local yRotDiff = 0 + + if cardRotation < 0 then + cardRotation = cardRotation + 360 + end + + -- rotate cards to the next multiple of 90° towards 0° + if cardRotation > 90 and cardRotation <= 180 then + yRotDiff = 90 + elseif cardRotation < 270 and cardRotation > 180 then + yRotDiff = 270 + end + + -- set correct rotation for face-down cards + rot.z = obj.is_face_down and 180 or 0 + obj.setRotation({rot.x, rot.y + yRotDiff, rot.z}) + end + if cardMetadata.id == "08031" then + forcedLearning = true + end + if cardMetadata.uses ~= nil then + tokenManager.maybeReplenishCard(obj, cardMetadata.uses, self) + end + end + end + + -- flip investigator mini-card and summoned servitor mini-card + -- (all characters allowed to account for custom IDs - e.g. 'Z0000' for TTS Zoop generated IDs) + if activeInvestigatorId ~= nil then + local miniId = string.match(activeInvestigatorId, ".....") .. "-m" + for _, obj in ipairs(getObjects()) do + if obj.type == "Card" and obj.is_face_down then + local notes = JSON.decode(obj.getGMNotes()) + if notes ~= nil and notes.type == "Minicard" and (notes.id == miniId or notes.id == "09080-m") then + obj.flip() + end + end + end + end + + -- gain a resource (or two if playing Jenny Barnes) + if string.match(activeInvestigatorId, "%d%d%d%d%d") == "02003" then + updateCounter({type = "ResourceCounter", modifier = 2}) + printToColor("Gaining 2 resources (Jenny)", messageColor) + else + updateCounter({type = "ResourceCounter", modifier = 1}) + end + + -- draw a card (with handling for Patrice and Forced Learning) + if activeInvestigatorId == "06005" then + if forcedLearning then + printToColor("Wow, did you really take 'Versatile' to play Patrice with 'Forced Learning'? Choose which draw replacement effect takes priority and draw cards accordingly.", messageColor) + else + local handSize = #Player[playerColor].getHandObjects() + if handSize < 5 then + local cardsToDraw = 5 - handSize + printToColor("Drawing " .. cardsToDraw .. " cards (Patrice)", messageColor) + drawCardsWithReshuffle(cardsToDraw) + end + end + elseif forcedLearning then + printToColor("Drawing 2 cards, discard 1 (Forced Learning)", messageColor) + drawCardsWithReshuffle(2) + elseif activeInvestigatorId == "89001" then + printToColor("Drawing 2 cards (Subject 5U-21)", messageColor) + drawCardsWithReshuffle(2) + else + drawCardsWithReshuffle(1) + end +end + +-- function for "draw 1 button" (that can be added via option panel) +function doDrawOne(_, color) + -- send messages to player who clicked button if no seated player found + messageColor = Player[playerColor].seated and playerColor or color + drawCardsWithReshuffle(1) +end + +-- draw X cards (shuffle discards if necessary) +function drawCardsWithReshuffle(numCards) + local deckAreaObjects = getDeckAreaObjects() + + -- Norman Withers handling + local harbinger = false + if deckAreaObjects.topCard and deckAreaObjects.topCard.getName() == "The Harbinger" then + harbinger = true + elseif deckAreaObjects.draw and not deckAreaObjects.draw.is_face_down then + local cards = deckAreaObjects.draw.getObjects() + if cards[#cards].name == "The Harbinger" then + harbinger = true + end + end + + if harbinger then + printToColor("The Harbinger is on top of your deck, not drawing cards", messageColor) + return + end + + local topCardDetected = false + if deckAreaObjects.topCard ~= nil then + deckAreaObjects.topCard.deal(1, playerColor) + topCardDetected = true + numCards = numCards - 1 + if numCards == 0 then + flipTopCardFromDeck() + return + end + end + + local deckSize = 1 + if deckAreaObjects.draw == nil then + deckSize = 0 + elseif deckAreaObjects.draw.type == "Deck" then + deckSize = #deckAreaObjects.draw.getObjects() + end + + if deckSize >= numCards then + drawCards(numCards) + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + else + drawCards(deckSize) + if deckAreaObjects.discard ~= nil then + shuffleDiscardIntoDeck() + Wait.time(function() + drawCards(numCards - deckSize) + -- flip top card again for Norman + if topCardDetected and string.match(activeInvestigatorId, "%d%d%d%d%d") == "08004" then + flipTopCardFromDeck() + end + end, 1) + end + printToColor("Take 1 horror (drawing card from empty deck)", messageColor) + end +end + +-- get the draw deck and discard pile objects and returns the references +function getDeckAreaObjects() + local deckAreaObjects = {} + for _, object in ipairs(searchDeckAndDiscardArea("isCardOrDeck")) do + if self.positionToLocal(object.getPosition()).z > 0.5 then + deckAreaObjects.discard = object + -- Norman Withers handling + elseif object.type == "Card" and not object.is_face_down then + deckAreaObjects.topCard = object + else + deckAreaObjects.draw = object + end + end + return deckAreaObjects +end + +function drawCards(numCards) + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.draw then + deckAreaObjects.draw.deal(numCards, playerColor) + end +end + +function shuffleDiscardIntoDeck() + local deckAreaObjects = getDeckAreaObjects() + if not deckAreaObjects.discard.is_face_down then + deckAreaObjects.discard.flip() + end + deckAreaObjects.discard.shuffle() + deckAreaObjects.discard.setPositionSmooth(self.positionToWorld(DRAW_DECK_POSITION), false, false) +end + +-- utility function for Norman Withers to flip the top card to the revealed side +function flipTopCardFromDeck() + Wait.time(function() + local deckAreaObjects = getDeckAreaObjects() + if deckAreaObjects.topCard then + return + elseif deckAreaObjects.draw then + if deckAreaObjects.draw.type == "Card" then + deckAreaObjects.draw.flip() + else + -- get bounds to know the height of the deck + local bounds = deckAreaObjects.draw.getBounds() + local pos = bounds.center + Vector(0, bounds.size.y / 2 + 0.2, 0) + deckAreaObjects.draw.takeObject({ position = pos, flip = true }) + end + end + end, 0.1) +end + +-- discard a random non-hidden card from hand +function doDiscardOne() + local hand = Player[playerColor].getHandObjects() + if #hand == 0 then + broadcastToAll("Cannot discard from empty hand!", "Red") + else + local choices = {} + for i = 1, #hand do + local notes = JSON.decode(hand[i].getGMNotes()) + if notes ~= nil then + if notes.hidden ~= true then + table.insert(choices, i) + end + else + table.insert(choices, i) + end + end + + if #choices == 0 then + broadcastToAll("Hidden cards can't be randomly discarded.", "Orange") + return + end + + -- get a random non-hidden card (from the "choices" table) + local num = math.random(1, #choices) + deckLib.placeOrMergeIntoDeck(hand[choices[num]], returnGlobalDiscardPosition(), self.getRotation()) + broadcastToAll(playerColor .. " randomly discarded card " .. choices[num] .. "/" .. #hand .. ".", "White") + end +end + +--------------------------------------------------------- +-- color related functions +--------------------------------------------------------- + +-- changes the player color +function changeColor(clickedByColor) + local colorList = { + "White", + "Brown", + "Red", + "Orange", + "Yellow", + "Green", + "Teal", + "Blue", + "Purple", + "Pink" + } + + -- remove existing colors from the list of choices + for _, existingColor in ipairs(Player.getAvailableColors()) do + for i, newColor in ipairs(colorList) do + if existingColor == newColor then + table.remove(colorList, i) + end + end + end + + -- show the option dialog for color selection to the player that triggered this + Player[clickedByColor].showOptionsDialog("Select a new color:", colorList, _, function(color) + -- update the color of the hand zone + local handZone = ownedObjects.HandZone + handZone.setValue(color) + + -- if the seated player clicked this, reseat him to the new color + if clickedByColor == playerColor then + navigationOverlayApi.copyVisibility(playerColor, color) + Player[playerColor].changeColor(color) + end + + -- update the internal variable + playerColor = color + end) +end + +--------------------------------------------------------- +-- playmat token spawning +--------------------------------------------------------- + +-- Finds all customizable cards in this play area and updates their metadata based on the selections +-- on the matching upgrade sheet. +-- This method is theoretically O(n^2), and should be used sparingly. In practice it will only be +-- called when a checkbox is added or removed in-game (which should be rare), and is bounded by the +-- number of customizable cards in play. +function syncAllCustomizableCards() + for _, card in ipairs(searchAroundSelf("isCard")) do + syncCustomizableMetadata(card) + end +end + +function syncCustomizableMetadata(card) + local cardMetadata = JSON.decode(card.getGMNotes()) or { } + if cardMetadata == nil or cardMetadata.customizations == nil then + return + end + for _, upgradeSheet in ipairs(searchAroundSelf("isCard")) do + local upgradeSheetMetadata = JSON.decode(upgradeSheet.getGMNotes()) or { } + if upgradeSheetMetadata.id == (cardMetadata.id .. "-c") then + for i, customization in ipairs(cardMetadata.customizations) do + if customization.replaces ~= nil and customization.replaces.uses ~= nil then + -- Allowed use of call(), no APIs for individual cards + if upgradeSheet.call("isUpgradeActive", i) then + cardMetadata.uses = customization.replaces.uses + card.setGMNotes(JSON.encode(cardMetadata)) + else + -- TODO: Get the original metadata to restore it... maybe. This should only be + -- necessary in the very unlikely case that a user un-checks a previously-full upgrade + -- row while the card is in play. It will be much easier once the AllPlayerCardsApi is + -- in place, so defer until it is + end + end + end + end + end +end + +function spawnTokensFor(object) + local extraUses = { } + if activeInvestigatorId == "03004" then + extraUses["Charge"] = 1 + end + + tokenManager.spawnForCard(object, extraUses) +end + +function onCollisionEnter(collisionInfo) + local object = collisionInfo.collision_object + + -- only continue if loading is completed + if not collisionEnabled then return end + + -- only continue for cards + if object.type ~= "Card" then return end + + -- detect if "Dream-Enhancing Serum" is placed + if object.getName() == "Dream-Enhancing Serum" then isDES = true end + + maybeUpdateActiveInvestigator(object) + syncCustomizableMetadata(object) + + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then + tokenManager.resetTokensSpawned(object) + removeTokensFromObject(object) + elseif shouldSpawnTokens(object) then + spawnTokensFor(object) + end +end + +-- detect if "Dream-Enhancing Serum" is removed +function onCollisionExit(collisionInfo) + if collisionInfo.collision_object.getName() == "Dream-Enhancing Serum" then isDES = false end +end + +-- checks if tokens should be spawned for the provided card +function shouldSpawnTokens(card) + if card.is_face_down then + return false + end + + local localCardPos = self.positionToLocal(card.getPosition()) + local metadata = JSON.decode(card.getGMNotes()) + + -- If no metadata we don't know the type, so only spawn in the main area + if metadata == nil then + return inArea(localCardPos, MAIN_PLAY_AREA) + end + + -- Spawn tokens for assets and events on the main area + if inArea(localCardPos, MAIN_PLAY_AREA) + and (metadata.type == "Asset" + or metadata.type == "Event") then + return true + end + + -- Spawn tokens for all encounter types in the threat area + if inArea(localCardPos, THREAT_AREA) + and (metadata.type == "Treachery" + or metadata.type == "Enemy" + or metadata.weakness) then + return true + end + + return false +end + +function onObjectEnterContainer(container, object) + if object.type ~= "Card" then return end + + local localCardPos = self.positionToLocal(object.getPosition()) + if inArea(localCardPos, DECK_DISCARD_AREA) then + tokenManager.resetTokensSpawned(object) + removeTokensFromObject(object) + end +end + +-- removes tokens from the provided card/deck +function removeTokensFromObject(object) + if object.hasTag("CardThatSeals") then + local func = object.getVar("resetSealedTokens") -- check if function exists (it won't for older custom content) + if func ~= nil then + object.call("resetSealedTokens") + end + end + + for _, obj in ipairs(searchLib.onObject(object)) do + if tokenChecker.isChaosToken(obj) then + chaosBagApi.returnChaosTokenToBag(obj) + elseif obj.getGUID() ~= "4ee1f2" and -- table + obj ~= self and + obj.type ~= "Deck" and + obj.type ~= "Card" and + obj.memo ~= nil and + obj.getLock() == false and + obj.getDescription() ~= "Action Token" then + ownedObjects.Trash.putObject(obj) + end + end +end + +--------------------------------------------------------- +-- investigator ID grabbing and skill tracker +--------------------------------------------------------- + +function maybeUpdateActiveInvestigator(card) + if not inArea(self.positionToLocal(card.getPosition()), INVESTIGATOR_AREA) then return end + + local notes = JSON.decode(card.getGMNotes()) + local class + + if notes ~= nil and notes.type == "Investigator" and notes.id ~= nil then + if notes.id == activeInvestigatorId then return end + class = notes.class + activeInvestigatorId = notes.id + ownedObjects.InvestigatorSkillTracker.call("updateStats", { + notes.willpowerIcons, + notes.intellectIcons, + notes.combatIcons, + notes.agilityIcons + }) + elseif activeInvestigatorId ~= "00000" then + class = "Neutral" + activeInvestigatorId = "00000" + ownedObjects.InvestigatorSkillTracker.call("updateStats", {1, 1, 1, 1}) + else + return + end + + -- change state of action tokens + local search = searchArea(self.positionToWorld({-1.1, 0.05, -0.27}), {4, 1, 1}) + local smallToken = nil + local STATE_TABLE = { + ["Guardian"] = 1, + ["Seeker"] = 2, + ["Rogue"] = 3, + ["Mystic"] = 4, + ["Survivor"] = 5, + ["Neutral"] = 6 + } + + for _, obj in ipairs(search) do + if obj.getDescription() == "Action Token" and obj.getStateId() > 0 then + if obj.getScale().x < 0.4 then + smallToken = obj + else + setObjectState(obj, STATE_TABLE[class]) + end + end + end + + -- update the small token with special action for certain investigators + local SPECIAL_ACTIONS = { + ["04002"] = 8, -- Ursula Downs + ["01002"] = 9, -- Daisy Walker + ["01502"] = 9, -- Daisy Walker + ["01002-pb"] = 9, -- Daisy Walker + ["06003"] = 10, -- Tony Morgan + ["04003"] = 11, -- Finn Edwards + ["08016"] = 14 -- Bob Jenkins + } + + if smallToken ~= nil then + setObjectState(smallToken, SPECIAL_ACTIONS[activeInvestigatorId] or STATE_TABLE[class]) + end +end + +function setObjectState(obj, stateId) + if obj.getStateId() ~= stateId then obj.setState(stateId) end +end + +--------------------------------------------------------- +-- manipulation of owned objects +--------------------------------------------------------- + +-- updates the specific owned counter +---@param param Table Contains the information to update: +--- type: String Counter to target +--- newValue: Number Value to set the counter to +--- modifier: Number If newValue is not provided, the existing value will be adjusted by this modifier +function updateCounter(param) + local counter = ownedObjects[param.type] + if counter ~= nil then + counter.call("updateVal", param.newValue or (counter.getVar("val") + param.modifier)) + else + printToAll(param.type .. " for " .. matColor .. " could not be found.", "Yellow") + end +end + +-- returns the resource counter amount +---@param type String Counter to target +function getCounterValue(type) + return ownedObjects[type].getVar("val") +end + +-- set investigator skill tracker to "1, 1, 1, 1" +function resetSkillTracker() + local obj = ownedObjects.InvestigatorSkillTracker + if obj ~= nil then + obj.call("updateStats", { 1, 1, 1, 1 }) + else + printToAll("Skill tracker for " .. matColor .. " playmat could not be found.", "Yellow") + end +end + +--------------------------------------------------------- +-- calls to 'Global' / functions for calls from outside +--------------------------------------------------------- + +function drawChaosTokenButton(_, _, isRightClick) + chaosBagApi.drawChaosToken(self, isRightClick) +end + +function drawEncounterCard(_, _, isRightClick) + mythosAreaApi.drawEncounterCard(self, isRightClick) +end + +function returnGlobalDiscardPosition() + return self.positionToWorld(DISCARD_PILE_POSITION) +end + +-- Sets this playermat's draw 1 button to visible +---@param visible Boolean. Whether the draw 1 button should be visible +function showDrawButton(visible) + isDrawButtonVisible = visible + + -- create the "Draw 1" button + if isDrawButtonVisible then + self.createButton({ + label = "Draw 1", + click_function = "doDrawOne", + function_owner = self, + position = { 1.84, 0.1, -0.36 }, + scale = { 0.12, 0.12, 0.12 }, + width = 800, + height = 280, + font_size = 180 + }) + + -- remove the "Draw 1" button + else + local buttons = self.getButtons() + for i = 1, #buttons do + if buttons[i].label == "Draw 1" then + self.removeButton(buttons[i].index) + end + end + end +end + +-- shows / hides a clickable clue counter for this playmat and sets the correct amount of clues +---@param showCounter Boolean Whether the clickable clue counter should be visible +function clickableClues(showCounter) + local clickerPos = ownedObjects.ClickableClueCounter.getPosition() + local clueCount = 0 + + -- move clue counters + local modY = showCounter and 0.525 or -0.525 + ownedObjects.ClickableClueCounter.setPosition(clickerPos + Vector(0, modY, 0)) + + if showCounter then + -- current clue count + clueCount = ownedObjects.ClueCounter.getVar("exposedValue") + + -- remove clues + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) + + -- set value for clue clickers + ownedObjects.ClickableClueCounter.call("updateVal", clueCount) + else + -- current clue count + clueCount = ownedObjects.ClickableClueCounter.getVar("val") + + -- spawn clues + local pos = self.positionToWorld({x = -1.12, y = 0.05, z = 0.7}) + for i = 1, clueCount do + pos.y = pos.y + 0.045 * i + tokenManager.spawnToken(pos, "clue", self.getRotation()) + end + end +end + +-- removes all clues (moving tokens to the trash and setting counters to 0) +function removeClues() + ownedObjects.ClueCounter.call("removeAllClues", ownedObjects.Trash) + ownedObjects.ClickableClueCounter.call("updateVal", 0) +end + +-- reports the clue count +---@param useClickableCounters Boolean Controls which type of counter is getting checked +function getClueCount(useClickableCounters) + if useClickableCounters then + return ownedObjects.ClickableClueCounter.getVar("val") + else + return ownedObjects.ClueCounter.getVar("exposedValue") + end +end + +-- Sets this playermat'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 matchTypes Boolean. Whether snap points should only snap for the matching card types. +function setLimitSnapsByType(matchTypes) + local snaps = self.getSnapPoints() + for i, snap in ipairs(snaps) do + local snapPos = snap.position + if inArea(snapPos, MAIN_PLAY_AREA) then + local snapTags = snaps[i].tags + if matchTypes then + if snapTags == nil then + snaps[i].tags = { "Asset" } + else + table.insert(snaps[i].tags, "Asset") + end + else + snaps[i].tags = nil + end + end + if inArea(snapPos, INVESTIGATOR_AREA) then + local snapTags = snaps[i].tags + if matchTypes then + if snapTags == nil then + snaps[i].tags = { "Investigator" } + else + table.insert(snaps[i].tags, "Investigator") + end + else + snaps[i].tags = nil + end + end + end + self.setSnapPoints(snaps) +end + +-- Simple method to check if the given point is in a specified area. Local use only, +---@param point Vector Point to check, only x and z values are relevant +---@param bounds Table Defined area to see if the point is within. See MAIN_PLAY_AREA for sample +-- bounds definition. +---@return Boolean True if the point is in the area defined by bounds +function inArea(point, bounds) + return (point.x < bounds.upperLeft.x + and point.x > bounds.lowerRight.x + and point.z < bounds.upperLeft.z + and point.z > bounds.lowerRight.z) +end + +-- called by custom data helpers to add player card data +---@param args table Contains only one entry, the GUID of the custom data helper +function updatePlayerCards(args) + local customDataHelper = getObjectFromGUID(args[1]) + local playerCardData = customDataHelper.getTable("PLAYER_CARD_DATA") + tokenManager.addPlayerCardData(playerCardData) +end +end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end +end) +__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local NavigationOverlayApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getNOHandler() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "NavigationOverlayHandler") + end + + -- Copies the visibility for the Navigation overlay + ---@param startColor String Color of the player to copy from + ---@param targetColor String Color of the targeted player + NavigationOverlayApi.copyVisibility = function(startColor, targetColor) + getNOHandler().call("copyVisibility", { + startColor = startColor, + targetColor = targetColor + }) + end + + -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) + ---@param playerColor String Color of the player to update the visibility for + NavigationOverlayApi.cycleVisibility = function(playerColor) + getNOHandler().call("cycleVisibility", playerColor) + end + + -- loads the specified camera for a player + ---@param player TTSPlayerInstance Player whose camera should be moved + ---@param camera Variant If number: Index of the camera view to load | If string: Color of the playermat to swap to + NavigationOverlayApi.loadCamera = function(player, camera) + getNOHandler().call("loadCameraFromApi", { + player = player, + camera = camera }) end - return TokenManager + return NavigationOverlayApi +end +end) +__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local CHAOS_TOKEN_NAMES = { + ["Elder Sign"] = true, + ["+1"] = true, + ["0"] = true, + ["-1"] = true, + ["-2"] = true, + ["-3"] = true, + ["-4"] = true, + ["-5"] = true, + ["-6"] = true, + ["-7"] = true, + ["-8"] = true, + ["Skull"] = true, + ["Cultist"] = true, + ["Tablet"] = true, + ["Elder Thing"] = true, + ["Auto-fail"] = true, + ["Bless"] = true, + ["Curse"] = true, + ["Frost"] = true + } + + local TokenChecker = {} + + -- returns true if the passed object is a chaos token (by name) + TokenChecker.isChaosToken = function(obj) + if CHAOS_TOKEN_NAMES[obj.getName()] then + return true + else + return false + end + end + + return TokenChecker +end +end) +__bundle_register("util/DeckLib", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local DeckLib = {} + local searchLib = require("util/SearchLib") + + -- places a card/deck at a position or merges into an existing deck + ---@param obj TTSObject Object to move + ---@param pos Table New position for the object + ---@param rot Table New rotation for the object (optional) + DeckLib.placeOrMergeIntoDeck = function(obj, pos, rot) + if obj == nil or pos == nil then return end + + -- search the new position for existing card/deck + local searchResult = searchLib.atPosition(pos, "isCardOrDeck") + + -- get new position + local newPos + local offset = 0.5 + if #searchResult == 1 then + local bounds = searchResult[1].getBounds() + newPos = Vector(pos):setAt("y", bounds.center.y + bounds.size.y / 2 + offset) + else + newPos = Vector(pos) + Vector(0, offset, 0) + end + + -- allow moving the objects smoothly out of the hand + obj.use_hands = false + + if rot then + obj.setRotationSmooth(rot, false, true) + end + obj.setPositionSmooth(newPos, false, true) + + -- continue if the card stops smooth moving + Wait.condition( + function() + obj.use_hands = true + -- this avoids a TTS bug that merges unrelated cards that are not resting + if #searchResult == 1 and searchResult[1] ~= obj then + -- call this with avoiding errors (physics is sometimes too fast so the object doesn't exist for the put) + pcall(function() searchResult[1].putObject(obj) end) + end + end, + function() return not obj.isSmoothMoving() end, 3) + end + + return DeckLib +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local PLAY_AREA_GUID = "721ba2" + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end - local IMAGE_SWAPPER = "b7b45b" + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end -- Returns the current value of the investigator counter from the playmat ---@return Integer. Number of investigators currently set on the counter PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + return getInvestigatorCounter().getVar("val") end -- Updates the current value of the investigator counter from the playmat ---@param count Number of investigators to set on the counter PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) + getInvestigatorCounter().call("updateVal", count) end -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) end PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) end PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) end PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) end -- Reset the play area's tracking of which cards have had tokens spawned. PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) end -- Event to be called when the current scenario has changed. ---@param scenarioName Name of the new scenario PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) end -- Sets this playmat's snap points to limit snapping to locations or not. -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. + ---@param matchCardTypes Boolean Whether snap points should only snap for the matching card types. PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) end -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged -- cards before they're destroyed by entering the container PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) end -- counts the VP on locations in the play area PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") + return getPlayArea().call("countVP") end -- highlights all locations in the play area without metadata ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) + return getPlayArea().call("highlightMissingData", state) end -- highlights all locations in the play area with VP ---@param state Boolean True if highlighting should be enabled PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) + return getPlayArea().call("countVP", state) end -- Checks if an object is in the play area (returns true or false) PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) + return getPlayArea().call("isInPlayArea", object) end PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image + return getPlayArea().getCustomObject().image end PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") end return PlayAreaApi @@ -1707,35 +1952,83 @@ end end) __bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenSpawnTracker = { } + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local SPAWN_TRACKER_GUID = "e3ffc9" + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) end TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) end TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) end TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") + return getSpawnTracker().call("resetAllAssetAndEvents") end TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") + return getSpawnTracker().call("resetAllLocations") end TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") + return getSpawnTracker().call("resetAll") end return TokenSpawnTracker end end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playermat/Playmat") +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") diff --git a/unpacked/Custom_Tile Playermat 4 Red 0840d5.yaml b/unpacked/Custom_Tile Playermat 4 Red 0840d5.yaml index 0d1ca3507..bf985f594 100644 --- a/unpacked/Custom_Tile Playermat 4 Red 0840d5.yaml +++ b/unpacked/Custom_Tile Playermat 4 Red 0840d5.yaml @@ -1,10 +1,10 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedSnapPoints: - Position: - x: -1.0 + x: -1 y: 0.1 z: 0.12 Tags: @@ -16,7 +16,7 @@ AttachedSnapPoints: Tags: - ActionToken - Position: - x: -1.0 + x: -1 y: 0.1 z: -0.28 Tags: @@ -122,21 +122,21 @@ AttachedSnapPoints: y: 0.1 z: 0.61 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.82 y: 0.1 - z: 0.0 + z: 0 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.18 y: 0.1 - z: 0.0 + z: 0 Tags: - Investigator - Position: @@ -144,72 +144,72 @@ AttachedSnapPoints: y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.46 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: - x: 0.0 + x: 0 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.45 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.91 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.36 y: 0.1 z: -0.62 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2037357630681963618/E7271737B19CE0BFAAA382BEEEF497FE3E06ECC1/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -222,8 +222,9 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true LuaScript: !include 'Custom_Tile Playermat 4 Red 0840d5.ttslua' -LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"Red","zoneID":"18538f"}' +LuaScriptState: '{"activeInvestigatorId":"00000","isDrawButtonVisible":false,"playerColor":"Red"}' MeasureMovement: false +Memo: Red Name: Custom_Tile Nickname: 'Playermat 4: Red' Snap: true @@ -237,7 +238,7 @@ Transform: rotY: 270.0 rotZ: 0.0 scaleX: 6.43 - scaleY: 1.0 + scaleY: 1 scaleZ: 6.43 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Round Sequence 2eca7c.yaml b/unpacked/Custom_Tile Round Sequence 2eca7c.yaml index 16bbebc77..6e75ee527 100644 --- a/unpacked/Custom_Tile Round Sequence 2eca7c.yaml +++ b/unpacked/Custom_Tile Round Sequence 2eca7c.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 3 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/2022727271910314655/F62931F67B2D5B5612A4688307A68D1058415408/ ImageURL: https://i.imgur.com/8SxnJvQ.jpg - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -37,14 +37,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: -57.0 + posX: -57 posY: 1.45 posZ: 57.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 3.3 - scaleY: 1.0 + scaleY: 1 scaleZ: 3.3 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Token Remover 0a5a29.ttslua b/unpacked/Custom_Tile Token Remover 0a5a29.ttslua index 8e7004e14..efdf8101c 100644 --- a/unpacked/Custom_Tile Token Remover 0a5a29.ttslua +++ b/unpacked/Custom_Tile Token Remover 0a5a29.ttslua @@ -41,12 +41,8 @@ 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("util/TokenRemover") -end) __bundle_register("util/TokenRemover", function(require, _LOADED, __bundle_register, __bundle_modules) local zone = nil -local tokenChecker = require("core/token/TokenChecker") -- general code function onSave() @@ -65,10 +61,11 @@ function enable() local scale = self.getScale() zone = spawnObject({ type = "ScriptingTrigger", - position = self.getPosition() + Vector(0, 2.5 + 0.11, 0), + position = self.getPosition() + Vector(0, 3.5 + 0.11, 0), rotation = self.getRotation(), - scale = { scale.x * 2, 5, scale.z * 2 } + scale = { scale.x * 2, 7, scale.z * 2 } }) + zone.setName("TokenDiscardZone") setMenu(false) end @@ -87,53 +84,11 @@ function setMenu(isEnabled) end end -function onObjectEnterScriptingZone(entering, object) - if zone ~= entering then return end - if object == self or object.type == "Deck" or object.type == "Card" then return end - if tokenChecker.isChaosToken(object) then return end - object.destruct() -end - function onPickUp() disable() end end) -__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local CHAOS_TOKEN_NAMES = { - ["Elder Sign"] = true, - ["+1"] = true, - ["0"] = true, - ["-1"] = true, - ["-2"] = true, - ["-3"] = true, - ["-4"] = true, - ["-5"] = true, - ["-6"] = true, - ["-7"] = true, - ["-8"] = true, - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, - ["Auto-fail"] = true, - ["Bless"] = true, - ["Curse"] = true, - ["Frost"] = true - } - - local TokenChecker = {} - - -- returns true if the passed object is a chaos token (by name) - TokenChecker.isChaosToken = function(obj) - if CHAOS_TOKEN_NAMES[obj.getName()] then - return true - else - return false - end - end - - return TokenChecker -end +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("util/TokenRemover") end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Tile Token Remover 0a5a29.yaml b/unpacked/Custom_Tile Token Remover 0a5a29.yaml index 8491629a0..2b1961ac3 100644 --- a/unpacked/Custom_Tile Token Remover 0a5a29.yaml +++ b/unpacked/Custom_Tile Token Remover 0a5a29.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1767069252728653004/7BD6E4B8763FE70DB6ADB22B62504361D3778309/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1767069252728651946/04A700179A71859B828E30D2877D802749B8223C/ - WidthScale: 0.0 + WidthScale: 0 Description: See Notebook for details. DragSelectable: true GMNotes: '' @@ -41,12 +41,12 @@ Tooltip: true Transform: posX: -58.5 posY: 1.48 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Token Remover 2ba7a5.ttslua b/unpacked/Custom_Tile Token Remover 2ba7a5.ttslua index 8e7004e14..b670f04eb 100644 --- a/unpacked/Custom_Tile Token Remover 2ba7a5.ttslua +++ b/unpacked/Custom_Tile Token Remover 2ba7a5.ttslua @@ -46,7 +46,6 @@ require("util/TokenRemover") end) __bundle_register("util/TokenRemover", function(require, _LOADED, __bundle_register, __bundle_modules) local zone = nil -local tokenChecker = require("core/token/TokenChecker") -- general code function onSave() @@ -65,10 +64,11 @@ function enable() local scale = self.getScale() zone = spawnObject({ type = "ScriptingTrigger", - position = self.getPosition() + Vector(0, 2.5 + 0.11, 0), + position = self.getPosition() + Vector(0, 3.5 + 0.11, 0), rotation = self.getRotation(), - scale = { scale.x * 2, 5, scale.z * 2 } + scale = { scale.x * 2, 7, scale.z * 2 } }) + zone.setName("TokenDiscardZone") setMenu(false) end @@ -87,53 +87,8 @@ function setMenu(isEnabled) end end -function onObjectEnterScriptingZone(entering, object) - if zone ~= entering then return end - if object == self or object.type == "Deck" or object.type == "Card" then return end - if tokenChecker.isChaosToken(object) then return end - object.destruct() -end - function onPickUp() disable() end end) -__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local CHAOS_TOKEN_NAMES = { - ["Elder Sign"] = true, - ["+1"] = true, - ["0"] = true, - ["-1"] = true, - ["-2"] = true, - ["-3"] = true, - ["-4"] = true, - ["-5"] = true, - ["-6"] = true, - ["-7"] = true, - ["-8"] = true, - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, - ["Auto-fail"] = true, - ["Bless"] = true, - ["Curse"] = true, - ["Frost"] = true - } - - local TokenChecker = {} - - -- returns true if the passed object is a chaos token (by name) - TokenChecker.isChaosToken = function(obj) - if CHAOS_TOKEN_NAMES[obj.getName()] then - return true - else - return false - end - end - - return TokenChecker -end -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Tile Token Remover 2ba7a5.yaml b/unpacked/Custom_Tile Token Remover 2ba7a5.yaml index 805bf990f..7f9df83e6 100644 --- a/unpacked/Custom_Tile Token Remover 2ba7a5.yaml +++ b/unpacked/Custom_Tile Token Remover 2ba7a5.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1767069252728653004/7BD6E4B8763FE70DB6ADB22B62504361D3778309/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1767069252728651946/04A700179A71859B828E30D2877D802749B8223C/ - WidthScale: 0.0 + WidthScale: 0 Description: See Notebook for details. DragSelectable: true GMNotes: '' @@ -42,11 +42,11 @@ Transform: posX: -45.3 posY: 1.48 posZ: 29.73 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 + rotX: 0 + rotY: 0 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Token Remover 39b175.ttslua b/unpacked/Custom_Tile Token Remover 39b175.ttslua index 516618afd..b670f04eb 100644 --- a/unpacked/Custom_Tile Token Remover 39b175.ttslua +++ b/unpacked/Custom_Tile Token Remover 39b175.ttslua @@ -41,50 +41,11 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local CHAOS_TOKEN_NAMES = { - ["Elder Sign"] = true, - ["+1"] = true, - ["0"] = true, - ["-1"] = true, - ["-2"] = true, - ["-3"] = true, - ["-4"] = true, - ["-5"] = true, - ["-6"] = true, - ["-7"] = true, - ["-8"] = true, - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, - ["Auto-fail"] = true, - ["Bless"] = true, - ["Curse"] = true, - ["Frost"] = true - } - - local TokenChecker = {} - - -- returns true if the passed object is a chaos token (by name) - TokenChecker.isChaosToken = function(obj) - if CHAOS_TOKEN_NAMES[obj.getName()] then - return true - else - return false - end - end - - return TokenChecker -end -end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("util/TokenRemover") end) __bundle_register("util/TokenRemover", function(require, _LOADED, __bundle_register, __bundle_modules) local zone = nil -local tokenChecker = require("core/token/TokenChecker") -- general code function onSave() @@ -103,10 +64,11 @@ function enable() local scale = self.getScale() zone = spawnObject({ type = "ScriptingTrigger", - position = self.getPosition() + Vector(0, 2.5 + 0.11, 0), + position = self.getPosition() + Vector(0, 3.5 + 0.11, 0), rotation = self.getRotation(), - scale = { scale.x * 2, 5, scale.z * 2 } + scale = { scale.x * 2, 7, scale.z * 2 } }) + zone.setName("TokenDiscardZone") setMenu(false) end @@ -125,13 +87,6 @@ function setMenu(isEnabled) end end -function onObjectEnterScriptingZone(entering, object) - if zone ~= entering then return end - if object == self or object.type == "Deck" or object.type == "Card" then return end - if tokenChecker.isChaosToken(object) then return end - object.destruct() -end - function onPickUp() disable() end diff --git a/unpacked/Custom_Tile Token Remover 39b175.yaml b/unpacked/Custom_Tile Token Remover 39b175.yaml index def685ff4..432a7968f 100644 --- a/unpacked/Custom_Tile Token Remover 39b175.yaml +++ b/unpacked/Custom_Tile Token Remover 39b175.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomTile: Stackable: false Stretch: true Thickness: 0.1 Type: 0 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: http://cloud-3.steamusercontent.com/ugc/1767069252728653004/7BD6E4B8763FE70DB6ADB22B62504361D3778309/ ImageURL: http://cloud-3.steamusercontent.com/ugc/1767069252728651946/04A700179A71859B828E30D2877D802749B8223C/ - WidthScale: 0.0 + WidthScale: 0 Description: See Notebook for details. DragSelectable: true GMNotes: '' @@ -42,11 +42,11 @@ Transform: posX: -45.3 posY: 1.48 posZ: -30.31 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Token Spawning Reference f8b3a7.yaml b/unpacked/Custom_Tile Token Spawning Reference f8b3a7.yaml new file mode 100644 index 000000000..5dcc800f6 --- /dev/null +++ b/unpacked/Custom_Tile Token Spawning Reference f8b3a7.yaml @@ -0,0 +1,54 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 0 + g: 0 + r: 0 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.2 + Type: 3 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: http://cloud-3.steamusercontent.com/ugc/2172484009093238162/ACF3BBD93CB517B0BD0952E9BB78A2D35A62F377/ + WidthScale: 0 +Description: Press a numpad key to spawn the indicated token. +DragSelectable: true +GMNotes: '' +GUID: f8b3a7 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Token Spawning Reference +Snap: true +Sticky: true +Tags: +- CameraZoom_ignore +- CleanUpHelper_ignore +- displacement_excluded +Tooltip: true +Transform: + posX: -48 + posY: 1.48 + posZ: 55 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 3 + scaleY: 1 + scaleZ: 3 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_+1 a15273.yaml b/unpacked/Custom_Tile Tokencache_+1 a15273.yaml new file mode 100644 index 000000000..3dbca3441 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_+1 a15273.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/uIx8jbY.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: a15273 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_+1 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.54 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-1 b644d2.yaml b/unpacked/Custom_Tile Tokencache_-1 b644d2.yaml new file mode 100644 index 000000000..5a83ee0b7 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-1 b644d2.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/w3XbrCC.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: b644d2 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-1 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.54 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-2 8af600.yaml b/unpacked/Custom_Tile Tokencache_-2 8af600.yaml new file mode 100644 index 000000000..e6618e4cd --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-2 8af600.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/bfTg2hb.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 8af600 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-2 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.75 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-3 a7a9cb.yaml b/unpacked/Custom_Tile Tokencache_-3 a7a9cb.yaml new file mode 100644 index 000000000..f9f8db2a6 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-3 a7a9cb.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/yfs8gHq.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: a7a9cb +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-3 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78.0 + posY: 2.25 + posZ: -36.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-4 984eec.yaml b/unpacked/Custom_Tile Tokencache_-4 984eec.yaml new file mode 100644 index 000000000..b23f5d554 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-4 984eec.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/qrgGQRD.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 984eec +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-4 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.84 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-5 1df0a5.yaml b/unpacked/Custom_Tile Tokencache_-5 1df0a5.yaml new file mode 100644 index 000000000..04a50e11a --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-5 1df0a5.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/3Ym1IeG.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 1df0a5 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-5 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78.0 + posY: 2.15 + posZ: -36.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-6 2460df.yaml b/unpacked/Custom_Tile Tokencache_-6 2460df.yaml new file mode 100644 index 000000000..c368c127b --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-6 2460df.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/c9qdSzS.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 2460df +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-6 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78.0 + posY: 1.34 + posZ: -36.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-7 81a1d7.yaml b/unpacked/Custom_Tile Tokencache_-7 81a1d7.yaml new file mode 100644 index 000000000..e285fcd2c --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-7 81a1d7.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/4WRD42n.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 81a1d7 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-7 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.04 + posZ: -36.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_-8 298b5f.yaml b/unpacked/Custom_Tile Tokencache_-8 298b5f.yaml new file mode 100644 index 000000000..16399771b --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_-8 298b5f.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/9t3rPTQ.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 298b5f +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_-8 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.94 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_0 0a8592.yaml b/unpacked/Custom_Tile Tokencache_0 0a8592.yaml new file mode 100644 index 000000000..9b4202b6a --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_0 0a8592.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/btEtVfd.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 0a8592 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_0 +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.85 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_Auto-fail e31821.yaml b/unpacked/Custom_Tile Tokencache_Auto-fail e31821.yaml new file mode 100644 index 000000000..f5e965a01 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_Auto-fail e31821.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/lns4fhz.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: e31821 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_Auto-fail +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.75 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml b/unpacked/Custom_Tile Tokencache_Bless 8e3aab.yaml similarity index 76% rename from unpacked/Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml rename to unpacked/Custom_Tile Tokencache_Bless 8e3aab.yaml index ef65f61ed..2f2f4edf1 100644 --- a/unpacked/Custom_Model_Bag Bless tokens afa06b/Custom_Tile Bless b2b7be.yaml +++ b/unpacked/Custom_Tile Tokencache_Bless 8e3aab.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.04894 @@ -13,38 +13,38 @@ CustomImage: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1655601092778627699/339FB716CB25CA6025C338F13AFDFD9AC6FA8356/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' -GUID: b2b7be +GUID: 8e3aab Grid: true GridProjection: false Hands: false HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 -Locked: false +Locked: true LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: Custom_Tile -Nickname: Bless +Nickname: Tokencache_Bless Snap: true Sticky: true Tooltip: true Transform: - posX: -1.47 - posY: 1.7 - posZ: -26.93 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + posX: 78.0 + posY: 1.25 + posZ: -36.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_Cultist 7d6103.yaml b/unpacked/Custom_Tile Tokencache_Cultist 7d6103.yaml new file mode 100644 index 000000000..68c6a1943 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_Cultist 7d6103.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/VzhJJaH.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 7d6103 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_Cultist +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.95 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml b/unpacked/Custom_Tile Tokencache_Curse 16a9a7.yaml similarity index 76% rename from unpacked/Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml rename to unpacked/Custom_Tile Tokencache_Curse 16a9a7.yaml index 1bdff9c61..06ad66047 100644 --- a/unpacked/Custom_Model_Bag Curse tokens bd0253/Custom_Tile Curse 678891.yaml +++ b/unpacked/Custom_Tile Tokencache_Curse 16a9a7.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.44425 @@ -13,38 +13,38 @@ CustomImage: Stretch: true Thickness: 0.1 Type: 2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1655601092778636039/2A25BD38E8C44701D80DD96BF0121DA21843672E/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' -GUID: '678891' +GUID: 16a9a7 Grid: true GridProjection: false Hands: false HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 -Locked: false +Locked: true LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: Custom_Tile -Nickname: Curse +Nickname: Tokencache_Curse Snap: true Sticky: true Tooltip: true Transform: - posX: -46.21 - posY: 1.79 - posZ: -3.48 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posX: 78 + posY: 1.15 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.81 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.81 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_Elder Sign 0b1aca.yaml b/unpacked/Custom_Tile Tokencache_Elder Sign 0b1aca.yaml new file mode 100644 index 000000000..8550f7be0 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_Elder Sign 0b1aca.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/nEmqjmj.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 0b1aca +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_Elder Sign +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.65 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_Elder Thing 38609c.yaml b/unpacked/Custom_Tile Tokencache_Elder Thing 38609c.yaml new file mode 100644 index 000000000..daa2c96f0 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_Elder Thing 38609c.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/ttnspKt.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 38609c +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_Elder Thing +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.44 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_Frost b2b7be.yaml b/unpacked/Custom_Tile Tokencache_Frost b2b7be.yaml new file mode 100644 index 000000000..41e7b6777 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_Frost b2b7be.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 0.04894 + g: 0.32859 + r: 0.37456 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: http://cloud-3.steamusercontent.com/ugc/1858293462583104677/195F93C063A8881B805CE2FD4767A9718B27B6AE/ + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: b2b7be +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_Frost +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.44 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_Skull cc8bbb.yaml b/unpacked/Custom_Tile Tokencache_Skull cc8bbb.yaml new file mode 100644 index 000000000..4e292eafb --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_Skull cc8bbb.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/stbBxtx.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: cc8bbb +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_Skull +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 2.65 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Tile Tokencache_Tablet 1a1506.yaml b/unpacked/Custom_Tile Tokencache_Tablet 1a1506.yaml new file mode 100644 index 000000000..b3dc4f568 --- /dev/null +++ b/unpacked/Custom_Tile Tokencache_Tablet 1a1506.yaml @@ -0,0 +1,50 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomTile: + Stackable: false + Stretch: true + Thickness: 0.1 + Type: 2 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: https://i.imgur.com/1plY463.png + WidthScale: 0 +Description: '' +DragSelectable: true +GMNotes: '' +GUID: 1a1506 +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Tile +Nickname: Tokencache_Tablet +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.45 + posZ: -36 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.81 + scaleY: 1 + scaleZ: 0.81 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Token BlessCurse Manager 5933fb.ttslua b/unpacked/Custom_Token BlessCurse Manager 5933fb.ttslua index 413ef7aba..d4e9a6a4d 100644 --- a/unpacked/Custom_Token BlessCurse Manager 5933fb.ttslua +++ b/unpacked/Custom_Token BlessCurse Manager 5933fb.ttslua @@ -41,8 +41,12 @@ 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("chaosbag/BlessCurseManager") +end) __bundle_register("chaosbag/BlessCurseManager", function(require, _LOADED, __bundle_register, __bundle_modules) -local tokenArrangerApi = require("accessories/TokenArrangerApi") +local chaosBagApi = require("chaosbag/ChaosBagApi") +local tokenArrangerApi = require("accessories/TokenArrangerApi") -- common button parameters local buttonParamaters = {} @@ -51,444 +55,417 @@ buttonParamaters.color = { 0, 0, 0, 0 } buttonParamaters.width = 700 buttonParamaters.height = 700 -local altState = false -local MODE = { - [false] = "Add / Remove", - [true] = "Take / Return" -} -local BUTTON_COLOR = { - [false] = { 0.4, 0.4, 0.4 }, - [true] = { 0.9, 0.9, 0.9 } -} -local FONT_COLOR = { - [false] = { 1, 1, 1 }, - [true] = { 0, 0, 0 } -} -local whitespace = " " local updating --------------------------------------------------------- -- creating buttons and menus + initializing tables --------------------------------------------------------- -function onSave() return JSON.encode(altState) end +function onLoad() + -- index: 0 - bless + buttonParamaters.click_function = "clickBless" + buttonParamaters.position = { -1.03, 0, 0.46 } + buttonParamaters.tooltip = "Add / Remove Bless" + self.createButton(buttonParamaters) -function onLoad(saved_state) - if saved_state ~= nil then - altState = JSON.decode(saved_state) - end + -- index: 1 - curse + buttonParamaters.click_function = "clickCurse" + buttonParamaters.position[1] = -buttonParamaters.position[1] + buttonParamaters.tooltip = "Add / Remove Curse" + self.createButton(buttonParamaters) - -- index: 0 - bless - buttonParamaters.click_function = "clickBless" - buttonParamaters.position = { -1.03, 0.05, 0.46 } - self.createButton(buttonParamaters) + -- index: 2 - bless count + buttonParamaters.tooltip = "" + buttonParamaters.click_function = "none" + buttonParamaters.width = 0 + buttonParamaters.height = 0 + buttonParamaters.color = { 0.4, 0.4, 0.4 } + buttonParamaters.font_color = { 1, 1, 1 } + buttonParamaters.font_size = 235 + buttonParamaters.position = { -1.03, 0.06, -0.8 } + self.createButton(buttonParamaters) - -- index: 1 - curse - buttonParamaters.click_function = "clickCurse" - buttonParamaters.position[1] = -buttonParamaters.position[1] - self.createButton(buttonParamaters) + -- index: 3 - curse count + buttonParamaters.position[1] = -buttonParamaters.position[1] + self.createButton(buttonParamaters) - -- index: 2 - alternative mode (take / return) - buttonParamaters.click_function = "enableAlt" - buttonParamaters.width = 900 - buttonParamaters.height = 210 - buttonParamaters.position = { -1.03, 0.05, -0.85 } - self.createButton(buttonParamaters) + -- context menu + self.addContextMenuItem("Remove all", doRemove) + self.addContextMenuItem("Reset", doReset) - -- index: 3 - default mode (add / remove) - buttonParamaters.click_function = "enableDefault" - buttonParamaters.position[1] = -buttonParamaters.position[1] - self.createButton(buttonParamaters) - - -- load labels, tooltips and colors - updateButtons() - - -- context menu - self.addContextMenuItem("Remove all", doRemove) - self.addContextMenuItem("Reset", doReset) - - -- initializing tables - initializeState() - broadcastCount("Curse") - broadcastCount("Bless") + -- initializing tables + initializeState() + broadcastCount("Curse") + broadcastCount("Bless") end function resetTables() - numInPlay = { Bless = 0, Curse = 0 } - tokensTaken = { Bless = {}, Curse = {} } - sealedTokens = {} + numInPlay = { Bless = 0, Curse = 0 } + tokensTaken = { Bless = {}, Curse = {} } + sealedTokens = {} end function initializeState() - resetTables() + resetTables() - -- count tokens in the bag - local chaosbag = Global.call("findChaosBag") - local tokens = {} - for _, v in ipairs(chaosbag.getObjects()) do - if v.name == "Bless" then - numInPlay.Bless = numInPlay.Bless + 1 - elseif v.name == "Curse" then - numInPlay.Curse = numInPlay.Curse + 1 - end + -- count tokens in the bag + local chaosBag = chaosBagApi.findChaosBag() + local tokens = {} + for _, v in ipairs(chaosBag.getObjects()) do + if v.name == "Bless" then + numInPlay.Bless = numInPlay.Bless + 1 + elseif v.name == "Curse" then + numInPlay.Curse = numInPlay.Curse + 1 end + end - -- find tokens in the play area - for _, obj in ipairs(getObjects()) do - local pos = obj.getPosition() - if pos.x > -65 and pos.x < 10 and pos.z > -35 and pos.z < 35 then - if obj.getName() == "Bless" then - table.insert(tokensTaken.Bless, obj.getGUID()) - numInPlay.Bless = numInPlay.Bless + 1 - elseif obj.getName() == "Curse" then - table.insert(tokensTaken.Curse, obj.getGUID()) - numInPlay.Curse = numInPlay.Curse + 1 - end - end + -- find tokens in the play area + for _, obj in ipairs(getObjects()) do + local pos = obj.getPosition() + if pos.x > -65 and pos.x < 10 and pos.z > -35 and pos.z < 35 then + if obj.getName() == "Bless" then + table.insert(tokensTaken.Bless, obj.getGUID()) + numInPlay.Bless = numInPlay.Bless + 1 + elseif obj.getName() == "Curse" then + table.insert(tokensTaken.Curse, obj.getGUID()) + numInPlay.Curse = numInPlay.Curse + 1 + end end + end + + updateButtonLabels() +end + +function updateButtonLabels() + self.editButton({ index = 2, label = formatTokenCount("Bless", true)}) + self.editButton({ index = 3, label = formatTokenCount("Curse", true)}) end function broadcastCount(token) - local count = formatTokenCount(token) - if count == "(0/0)" then return end - broadcastToAll(token .. " Tokens " .. count, "White") + local count = formatTokenCount(token) + if count == "(0 + 0)" then return end + broadcastToAll(token .. " Tokens " .. count, "White") end function broadcastStatus(color) - broadcastToColor("Curse Tokens " .. formatTokenCount("Curse"), color, "White") - broadcastToColor("Bless Tokens " .. formatTokenCount("Bless"), color, "White") + broadcastToColor("Curse Tokens " .. formatTokenCount("Curse"), color, "White") + broadcastToColor("Bless Tokens " .. formatTokenCount("Bless"), color, "White") end --- context menu function 1 +--------------------------------------------------------- +-- TTS event handling +--------------------------------------------------------- + +-- enable tracking of bag changes for 1 second +function onObjectDrop(_, object) + if not isBlurseToken(object) then return end + + -- check if object was dropped in chaos bag area + for _, zone in ipairs(object.getZones()) do + if zone.getName() == "ChaosBagZone" then + trackBagChange = true + Wait.time(function() trackBagChange = false end, 1) + return + end + end +end + +-- handle manual returning of bless / curse tokens +function onObjectEnterContainer(container, object) + if not (trackBagChange and isChaosbag(container) and isBlurseToken(object)) then return end + + -- small delay to ensure token has entered bag + Wait.time(doReset, 0.5) +end + +function isChaosbag(obj) + if obj.getDescription() ~= "Chaos Bag" then return end -- early exit for performance + return obj == chaosBagApi.findChaosBag() +end + +function isBlurseToken(obj) + local name = obj.getName() + return name == "Bless" or name == "Curse" +end + +--------------------------------------------------------- +-- context menu functions +--------------------------------------------------------- + function doRemove(color) - local chaosbag = Global.call("findChaosBag") + local chaosBag = chaosBagApi.findChaosBag() - -- remove tokens from chaos bag - local count = { Bless = 0, Curse = 0 } - for _, v in ipairs(chaosbag.getObjects()) do - if v.name == "Bless" or v.name == "Curse" then - chaosbag.takeObject({ - guid = v.guid, - position = { 0, 5, 0 }, - callback_function = function(obj) obj.destruct() end - }) - count[v.name] = count[v.name] + 1 - end + -- remove tokens from chaos bag + local count = { Bless = 0, Curse = 0 } + for _, v in ipairs(chaosBag.getObjects()) do + if v.name == "Bless" or v.name == "Curse" then + chaosBag.takeObject({ + guid = v.guid, + position = { 0, 5, 0 }, + callback_function = function(obj) obj.destruct() end + }) + count[v.name] = count[v.name] + 1 end + end - broadcastToColor("Removed " .. count.Bless .. " Bless and " .. - count.Curse .. " Curse tokens from the chaos bag.", color, "White") - broadcastToColor("Removed " .. removeTakenTokens("Bless") .. " Bless and " .. - removeTakenTokens("Curse") .. " Curse tokens from play.", color, "White") + broadcastToColor("Removed " .. count.Bless .. " Bless and " .. count.Curse .. " Curse tokens from the chaos bag.", color, "White") + broadcastToColor("Removed " .. removeTakenTokens("Bless") .. " Bless and " .. removeTakenTokens("Curse") .. " Curse tokens from play.", color, "White") - resetTables() - tokenArrangerApi.layout() + resetTables() + updateButtonLabels() + tokenArrangerApi.layout() end --- context menu function 2 -function doReset(color) - initializeState() - broadcastCount("Curse") - broadcastCount("Bless") - tokenArrangerApi.layout() -end - --- removing tokens that were 'taken' -function removeTakenTokens(type) - local count = 0 - for _, guid in ipairs(tokensTaken[type]) do - local token = getObjectFromGUID(guid) - if token ~= nil then - token.destruct() - count = count + 1 - end - end - return count +function doReset() + initializeState() + broadcastCount("Curse") + broadcastCount("Bless") + tokenArrangerApi.layout() end --------------------------------------------------------- -- click functions --------------------------------------------------------- --- click function 1 function clickBless(_, color, isRightClick) - playerColor = color - callFunctions("Bless", isRightClick) + playerColor = color + callFunctions("Bless", isRightClick) end --- click function 2 function clickCurse(_, color, isRightClick) - playerColor = color - callFunctions("Curse", isRightClick) + playerColor = color + callFunctions("Curse", isRightClick) end --- click function 3 -function enableAlt() - if altState then return end - altState = not altState - updateButtons() -end +function callFunctions(type, isRightClick) + if not chaosBagApi.canTouchChaosTokens() then return end --- click function 4 -function enableDefault() - if not altState then return end - altState = not altState - updateButtons() + if isRightClick then + removeToken(type) + else + addToken(type) + end + + tokenArrangerApi.layout() end --------------------------------------------------------- -- called functions --------------------------------------------------------- -function updateButtons() - self.editButton({ - index = 0, - tooltip = MODE[altState] .. " Bless" - }) - - self.editButton({ - index = 1, - tooltip = MODE[altState] .. " Curse" - }) - - self.editButton({ - index = 2, - label = whitespace .. MODE[true] .. (altState and " ✓" or whitespace) .. " ", - color = BUTTON_COLOR[not altState], - font_color = FONT_COLOR[not altState] - }) - - self.editButton({ - index = 3, - label = whitespace .. MODE[false] .. (altState and whitespace or " ✓") .. " ", - color = BUTTON_COLOR[altState], - font_color = FONT_COLOR[altState] - }) -end - --- function that is called by click_functions 1+2 and calls the other functions -function callFunctions(token, isRightClick) - if not Global.call("canTouchChaosTokens") then - return - end - local success - if not altState then - if isRightClick then - success = takeToken(token, true) - else - success = addToken(token) - end - else - if isRightClick then - success = returnToken(token) - else - success = takeToken(token, false) - end - end - if success ~= 0 then tokenArrangerApi.layout() end -end - -- returns a formatted string with information about the provided token type (bless / curse) -function formatTokenCount(type) - if type == nil then type = mode end - return "(" .. (numInPlay[type] - #tokensTaken[type]) .. "/" .. #tokensTaken[type] .. ")" +function formatTokenCount(type, omitBrackets) + if type == nil then type = mode end + + if omitBrackets then + return (numInPlay[type] - #tokensTaken[type]) .. " + " .. #tokensTaken[type] + else + return "(" .. (numInPlay[type] - #tokensTaken[type]) .. " + " .. #tokensTaken[type] .. ")" + end end --- called by cards that seal bless/curse tokens +-- seals a token on a card (called by cards that seal bless/curse tokens) ---@param param Table This contains the type and guid of the sealed token function sealedToken(param) - table.insert(tokensTaken[param.type], param.guid) - broadcastCount(param.type) + table.insert(tokensTaken[param.type], param.guid) + broadcastCount(param.type) + updateButtonLabels() end --- called by cards that seal bless/curse tokens +-- returns a token to the bag (called by cards that seal bless/curse tokens) ---@param param Table This contains the type and guid of the released token function releasedToken(param) - for i, v in ipairs(tokensTaken[param.type]) do - if v == param.guid then - table.remove(tokensTaken[param.type], i) - break - end + for i, v in ipairs(tokensTaken[param.type]) do + if v == param.guid then + table.remove(tokensTaken[param.type], i) + break end - if not updating then - updating = true - Wait.frames(function() - broadcastCount(param.type) - updating = false - end, 1) + end + updateDisplayAndBroadcast(param.type) +end + +-- removes a token (called by cards that seal bless/curse tokens) +---@param param Table This contains the type and guid of the released token +function returnedToken(param) + for i, v in ipairs(tokensTaken[param.type]) do + if v == param.guid then + table.remove(tokensTaken[param.type], i) + numInPlay[param.type] = numInPlay[param.type] - 1 + break end + end + updateDisplayAndBroadcast(param.type) +end + +function updateDisplayAndBroadcast(type) + if not updating then + updating = true + Wait.frames(function() + broadcastCount(type) + updateButtonLabels() + updating = false + end, 5) + end end --------------------------------------------------------- --- main functions: add, take and return +-- main functions: add and remove --------------------------------------------------------- function addToken(type) - if numInPlay[type] == 10 then - printToColor("10 tokens already in play, not adding any.", playerColor) - return 0 - end - numInPlay[type] = numInPlay[type] + 1 - printToAll("Adding " .. type .. " token " .. formatTokenCount(type)) - return Global.call("spawnChaosToken", type) + if numInPlay[type] == 10 then + printToColor("10 tokens already in play, not adding any.", playerColor) + return + end + numInPlay[type] = numInPlay[type] + 1 + printToAll("Adding " .. type .. " token " .. formatTokenCount(type)) + updateButtonLabels() + return chaosBagApi.spawnChaosToken(type) end -function takeToken(type, remove) - local chaosbag = Global.call("findChaosBag") - if not remove and not SEAL_CARD_MESSAGE then - broadcastToColor("For sealing tokens on cards try right-clicking on the card for seal options.", playerColor) - SEAL_CARD_MESSAGE = true +function removeToken(type) + local chaosBag = chaosBagApi.findChaosBag() + local tokens = {} + + for _, v in ipairs(chaosBag.getObjects()) do + if v.name == type then + table.insert(tokens, v.guid) end - local tokens = {} - for _, v in ipairs(chaosbag.getObjects()) do - if v.name == type then - table.insert(tokens, v.guid) - end + end + + if #tokens == 0 then + printToColor("No " .. type .. " tokens in the chaos bag.", playerColor) + return + end + + chaosBag.takeObject({ + guid = table.remove(tokens), + smooth = false, + callback_function = function(obj) + numInPlay[type] = numInPlay[type] - 1 + printToAll("Removing " .. type .. " token " .. formatTokenCount(type)) + updateButtonLabels() + obj.destruct() end - if #tokens == 0 then - printToColor("No " .. type .. " tokens in the chaos bag.", playerColor) - return 0 - end - local pos = self.getPosition() + Vector(2.25, 0, 0.85) - if type == "Curse" then pos[3] = pos[3] - 1.7 end - chaosbag.takeObject({ - guid = table.remove(tokens), - position = pos, - smooth = false, - callback_function = function(obj) - if remove then - numInPlay[type] = numInPlay[type] - 1 - printToAll("Removing " .. type .. " token " .. formatTokenCount(type)) - obj.destruct() - else - table.insert(tokensTaken[type], obj.getGUID()) - printToAll("Taking " .. type .. " token " .. formatTokenCount(type)) - end - end - }) + }) end -function returnToken(type) - local guid = table.remove(tokensTaken[type]) - if guid == nil then - printToColor("No " .. type .. " tokens to return", playerColor) - return 0 - end +-- removing tokens that were 'taken' +function removeTakenTokens(type) + local count = 0 + for _, guid in ipairs(tokensTaken[type]) do local token = getObjectFromGUID(guid) - if token == nil then - printToColor("Couldn't find token " .. guid .. ", not returning to bag", playerColor) - return 0 + if token ~= nil then + token.destruct() + count = count + 1 end - local chaosbag = Global.call("findChaosBag") - if chaosbag == nil then - return 0 - end - chaosbag.putObject(token) - printToAll("Returning " .. type .. " token " .. formatTokenCount(type)) + end + return count end --------------------------------------------------------- --- Wendy Menu (context menu for cards on hotkey press) +-- Wendy's Menu (context menu for cards on hotkey press) --------------------------------------------------------- function addMenuOptions(parameters) - local playerColor = parameters.playerColor - local hoveredObject = parameters.hoveredObject - if hoveredObject == nil or hoveredObject.getVar("MENU_ADDED") == true then return end - if hoveredObject.tag ~= "Card" then - broadcastToColor("Right-click seal options can only be added to cards", playerColor) - return - end + local playerColor = parameters.playerColor + local hoveredObject = parameters.hoveredObject + if hoveredObject == nil or hoveredObject.type ~= "Card" then + broadcastToColor("Right-click seal options can only be added to cards.", playerColor) + return + elseif hoveredObject.hasTag("CardThatSeals") or hoveredObject.getVar("MENU_ADDED") == true then + broadcastToColor("This card already has a sealing context menu.", playerColor) + return + end - hoveredObject.addContextMenuItem("Seal Bless", function(color) - sealToken("Bless", color, hoveredObject) - tokenArrangerApi.layout() - end, true) + hoveredObject.addContextMenuItem("Seal Bless", function(color) + sealToken("Bless", color, hoveredObject) + tokenArrangerApi.layout() + end, true) - hoveredObject.addContextMenuItem("Release Bless", function(color) - releaseToken("Bless", color, hoveredObject) - tokenArrangerApi.layout() - end, true) + hoveredObject.addContextMenuItem("Release Bless", function(color) + releaseToken("Bless", color, hoveredObject) + tokenArrangerApi.layout() + end, true) - hoveredObject.addContextMenuItem("Seal Curse", function(color) - sealToken("Curse", color, hoveredObject) - tokenArrangerApi.layout() - end, true) + hoveredObject.addContextMenuItem("Seal Curse", function(color) + sealToken("Curse", color, hoveredObject) + tokenArrangerApi.layout() + end, true) - hoveredObject.addContextMenuItem("Release Curse", function(color) - releaseToken("Curse", color, hoveredObject) - tokenArrangerApi.layout() - end, true) + hoveredObject.addContextMenuItem("Release Curse", function(color) + releaseToken("Curse", color, hoveredObject) + tokenArrangerApi.layout() + end, true) - broadcastToColor("Right-click seal options added to " .. hoveredObject.getName(), playerColor) - hoveredObject.setVar("MENU_ADDED", true) - sealedTokens[hoveredObject.getGUID()] = {} + broadcastToColor("Right-click seal options added to " .. hoveredObject.getName(), playerColor) + hoveredObject.setVar("MENU_ADDED", true) + sealedTokens[hoveredObject.getGUID()] = {} end -function sealToken(type, playerColor, enemy) - local chaosbag = Global.call("findChaosBag") - if chaosbag == nil then return end - local pos = enemy.getPosition() +function sealToken(type, playerColor, hoveredObject) + local chaosBag = chaosBagApi.findChaosBag() - for i, token in ipairs(chaosbag.getObjects()) do - if token.name == type then - chaosbag.takeObject({ - position = { pos.x, pos.y + 1, pos.z }, - index = i - 1, - smooth = false, - callback_function = function(obj) - Wait.frames(function() - table.insert(sealedTokens[enemy.getGUID()], obj) - table.insert(tokensTaken[type], obj.getGUID()) - printToColor("Sealing " .. type .. " token " .. formatTokenCount(type), playerColor) - end, 1) - end - }) - return + for i, token in ipairs(chaosBag.getObjects()) do + if token.name == type then + return chaosBag.takeObject({ + position = hoveredObject.getPosition() + Vector(0, 1, 0), + index = i - 1, + smooth = false, + callback_function = function(obj) + table.insert(sealedTokens[hoveredObject.getGUID()], obj) + table.insert(tokensTaken[type], obj.getGUID()) + tokenArrangerApi.layout() + updateDisplayAndBroadcast(type) end + }) end - printToColor(type .. " token not found in bag", playerColor) + end + printToColor(type .. " token not found in bag", playerColor) end -function releaseToken(type, playerColor, enemy) - local chaosbag = Global.call("findChaosBag") - if chaosbag == nil then return end - local tokens = sealedTokens[enemy.getGUID()] - if tokens == nil or #tokens == 0 then return end +function releaseToken(type, playerColor, hoveredObject) + local chaosBag = chaosBagApi.findChaosBag() + local tokens = sealedTokens[hoveredObject.getGUID()] + if tokens == nil or #tokens == 0 then return end - for i, token in ipairs(tokens) do - if token ~= nil and token.getName() == type then - local guid = token.getGUID() - chaosbag.putObject(token) - for j, v in ipairs(tokensTaken[type]) do - if v == guid then - table.remove(tokensTaken[type], j) - table.remove(tokens, i) - printToColor("Releasing " .. type .. " token" .. formatTokenCount(type), playerColor) - return - end - end + for i, token in ipairs(tokens) do + if token ~= nil and token.getName() == type then + local guid = token.getGUID() + chaosBag.putObject(token) + for j, v in ipairs(tokensTaken[type]) do + if v == guid then + table.remove(tokensTaken[type], j) + table.remove(tokens, i) + tokenArrangerApi.layout() + updateDisplayAndBroadcast(type) + return end + end end - printToColor(type .. " token not sealed on " .. enemy.getName(), playerColor) + end + printToColor(type .. " token not sealed on " .. hoveredObject.getName(), playerColor) end + +function none() end end) __bundle_register("accessories/TokenArrangerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local TokenArrangerApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") -- local function to call the token arranger, if it is on the table ---@param functionName String Name of the function to cal ---@param argument Variant Parameter to pass local function callIfExistent(functionName, argument) - local tokenArranger = getObjectsWithTag("TokenArranger")[1] + 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 tokenData Table Contains the chaos token metadata + ---@param fullData Table Contains the chaos token metadata TokenArrangerApi.onTokenDataChanged = function(fullData) callIfExistent("onTokenDataChanged", fullData) end @@ -506,7 +483,128 @@ do return TokenArrangerApi end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("chaosbag/BlessCurseManager") +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + 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 all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token BlessCurse Manager 5933fb.yaml b/unpacked/Custom_Token BlessCurse Manager 5933fb.yaml index bdb19b5fc..4d325a2b2 100644 --- a/unpacked/Custom_Token BlessCurse Manager 5933fb.yaml +++ b/unpacked/Custom_Token BlessCurse Manager 5933fb.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: true StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2018214163835858903/EECF1C00C9A0C837DD40D7B5A3456B88DF0CEC08/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left-Click: Add token Right-Click: Remove token @@ -26,7 +26,7 @@ Description: 'Left-Click: Add token from play. - See Notebook for detailed instructions.' + Check cards that seal tokens for a context menu.' DragSelectable: true GMNotes: '' GUID: 5933fb @@ -51,12 +51,12 @@ Tooltip: true Transform: posX: -48.2 posY: 1.53 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.8 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.8 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Chaos Bag Manager 023240.ttslua b/unpacked/Custom_Token Chaos Bag Manager 023240.ttslua index 3de207f8c..b5eec7d85 100644 --- a/unpacked/Custom_Token Chaos Bag Manager 023240.ttslua +++ b/unpacked/Custom_Token Chaos Bag Manager 023240.ttslua @@ -41,7 +41,12 @@ 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("accessories/ChaosBagManager") +end) __bundle_register("accessories/ChaosBagManager", function(require, _LOADED, __bundle_register, __bundle_modules) +local chaosBagApi = require("chaosbag/ChaosBagApi") + local TOKEN_IDS = { -- first row "p1", "0", "m1", "m2", "m3", "m4", @@ -104,11 +109,11 @@ function buttonClick(index, isRightClick) local tokenId = TOKEN_IDS[index] if isRightClick then - Global.call("removeChaosToken", tokenId) + chaosBagApi.removeChaosToken(tokenId) else local tokens = {} local name = BUTTON_TOOLTIP[index] - local chaosbag = Global.call("findChaosBag") + local chaosbag = chaosBagApi.findChaosBag() for _, v in ipairs(chaosbag.getObjects()) do if v.name == name then table.insert(tokens, v.guid) end @@ -120,12 +125,91 @@ function buttonClick(index, isRightClick) return end - Global.call("spawnChaosToken", tokenId) + chaosBagApi.spawnChaosToken(tokenId) printToAll("Adding " .. name .. " token (in bag: " .. #tokens + 1 .. ")", "White") end end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("accessories/ChaosBagManager") +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Chaos Bag Manager 023240.yaml b/unpacked/Custom_Token Chaos Bag Manager 023240.yaml index 0e19bcc54..645f2963d 100644 --- a/unpacked/Custom_Token Chaos Bag Manager 023240.yaml +++ b/unpacked/Custom_Token Chaos Bag Manager 023240.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1857193769884995506/A760D5A6C66A035C4E4812BF5F0D511010EF526C/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Adds/removes the desired token from the chaos bag. @@ -42,14 +42,14 @@ Tags: - displacement_excluded Tooltip: true Transform: - posX: -66.0 + posX: -66 posY: 1.53 posZ: -49.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 2.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 2.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Chaos Bag Stat Tracker 766620.yaml b/unpacked/Custom_Token Chaos Bag Stat Tracker 766620.yaml index 43e90f0ee..cf40b8633 100644 --- a/unpacked/Custom_Token Chaos Bag Stat Tracker 766620.yaml +++ b/unpacked/Custom_Token Chaos Bag Stat Tracker 766620.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.87451 @@ -9,14 +9,14 @@ ColorDiffuse: r: 0.87451 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/SBE8GR5.png - WidthScale: 0.0 + WidthScale: 0 Description: 'Only tracks tokens that actually hit the playmat. @@ -45,11 +45,11 @@ Transform: posX: 4.19 posY: 1.62 posZ: -16.6 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.4 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.4 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Clues 3f22e5.ttslua b/unpacked/Custom_Token Clues 3f22e5.ttslua index a59a46ab9..85608f361 100644 --- a/unpacked/Custom_Token Clues 3f22e5.ttslua +++ b/unpacked/Custom_Token Clues 3f22e5.ttslua @@ -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("core/GenericCounter") -end) __bundle_register("core/GenericCounter", function(require, _LOADED, __bundle_register, __bundle_modules) MIN_VALUE = 0 MAX_VALUE = 99 @@ -63,6 +60,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end @@ -98,4 +97,7 @@ function addOrSubtract(_, _, isRightClick) self.editButton({ index = 0, label = tostring(val) }) end end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("core/GenericCounter") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Clues 3f22e5.yaml b/unpacked/Custom_Token Clues 3f22e5.yaml index 2dd49d95a..825438878 100644 --- a/unpacked/Custom_Token Clues 3f22e5.yaml +++ b/unpacked/Custom_Token Clues 3f22e5.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/784129913444610342/7903BA89870C1656A003FD69C79BFA99BD1AAC24/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -48,7 +48,7 @@ Transform: rotY: 270.02 rotZ: 0.06 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Clues 4111de.ttslua b/unpacked/Custom_Token Clues 4111de.ttslua index c40a67901..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Clues 4111de.ttslua +++ b/unpacked/Custom_Token Clues 4111de.ttslua @@ -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("core/GenericCounter") +end) __bundle_register("core/GenericCounter", function(require, _LOADED, __bundle_register, __bundle_modules) MIN_VALUE = 0 MAX_VALUE = 99 @@ -60,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end @@ -95,7 +100,4 @@ function addOrSubtract(_, _, isRightClick) self.editButton({ index = 0, label = tostring(val) }) end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/GenericCounter") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Clues 4111de.yaml b/unpacked/Custom_Token Clues 4111de.yaml index aa1489d29..03c77f578 100644 --- a/unpacked/Custom_Token Clues 4111de.yaml +++ b/unpacked/Custom_Token Clues 4111de.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/784129913444610342/7903BA89870C1656A003FD69C79BFA99BD1AAC24/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -48,7 +48,7 @@ Transform: rotY: 270.03 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Clues 891403.ttslua b/unpacked/Custom_Token Clues 891403.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Clues 891403.ttslua +++ b/unpacked/Custom_Token Clues 891403.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Clues 891403.yaml b/unpacked/Custom_Token Clues 891403.yaml index 7b65cbfde..b66896afa 100644 --- a/unpacked/Custom_Token Clues 891403.yaml +++ b/unpacked/Custom_Token Clues 891403.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/784129913444610342/7903BA89870C1656A003FD69C79BFA99BD1AAC24/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -48,7 +48,7 @@ Transform: rotY: 270.0 rotZ: 0.02 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Clues db85d6.ttslua b/unpacked/Custom_Token Clues db85d6.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Clues db85d6.ttslua +++ b/unpacked/Custom_Token Clues db85d6.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Clues db85d6.yaml b/unpacked/Custom_Token Clues db85d6.yaml index 9d85af0b7..d0ba05ecb 100644 --- a/unpacked/Custom_Token Clues db85d6.yaml +++ b/unpacked/Custom_Token Clues db85d6.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/784129913444610342/7903BA89870C1656A003FD69C79BFA99BD1AAC24/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -48,7 +48,7 @@ Transform: rotY: 270.03 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Damage 1f5a0a.ttslua b/unpacked/Custom_Token Damage 1f5a0a.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Damage 1f5a0a.ttslua +++ b/unpacked/Custom_Token Damage 1f5a0a.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Damage 1f5a0a.yaml b/unpacked/Custom_Token Damage 1f5a0a.yaml index 6951d3faf..4b35b4ac8 100644 --- a/unpacked/Custom_Token Damage 1f5a0a.yaml +++ b/unpacked/Custom_Token Damage 1f5a0a.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663402915/D881A5A0D8A370851B9A0055DD7834CDCE0F72BE/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -48,7 +48,7 @@ Transform: rotY: 280.0 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Damage 591a45.ttslua b/unpacked/Custom_Token Damage 591a45.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Damage 591a45.ttslua +++ b/unpacked/Custom_Token Damage 591a45.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Damage 591a45.yaml b/unpacked/Custom_Token Damage 591a45.yaml index de08a02a4..2de3c59cd 100644 --- a/unpacked/Custom_Token Damage 591a45.yaml +++ b/unpacked/Custom_Token Damage 591a45.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663402915/D881A5A0D8A370851B9A0055DD7834CDCE0F72BE/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -48,7 +48,7 @@ Transform: rotY: 280.0 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Damage e64eec.ttslua b/unpacked/Custom_Token Damage e64eec.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Damage e64eec.ttslua +++ b/unpacked/Custom_Token Damage e64eec.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Damage e64eec.yaml b/unpacked/Custom_Token Damage e64eec.yaml index 1826c2f52..126c6b4b1 100644 --- a/unpacked/Custom_Token Damage e64eec.yaml +++ b/unpacked/Custom_Token Damage e64eec.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663402915/D881A5A0D8A370851B9A0055DD7834CDCE0F72BE/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -44,11 +44,11 @@ Transform: posX: -57.51 posY: 1.52 posZ: -22.89 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Damage eb08d6.ttslua b/unpacked/Custom_Token Damage eb08d6.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Damage eb08d6.ttslua +++ b/unpacked/Custom_Token Damage eb08d6.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Damage eb08d6.yaml b/unpacked/Custom_Token Damage eb08d6.yaml index 53f5bbf60..b0ba2d89c 100644 --- a/unpacked/Custom_Token Damage eb08d6.yaml +++ b/unpacked/Custom_Token Damage eb08d6.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663402915/D881A5A0D8A370851B9A0055DD7834CDCE0F72BE/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -44,11 +44,11 @@ Transform: posX: -57.47 posY: 1.52 posZ: 9.27 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Doom Counter 85c4c6.ttslua b/unpacked/Custom_Token Doom Counter 85c4c6.ttslua index d3356ac78..ec51c7394 100644 --- a/unpacked/Custom_Token Doom Counter 85c4c6.ttslua +++ b/unpacked/Custom_Token Doom Counter 85c4c6.ttslua @@ -45,6 +45,10 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("core/DoomCounter") end) __bundle_register("core/DoomCounter", function(require, _LOADED, __bundle_register, __bundle_modules) +local guidReferenceApi = require("core/GUIDReferenceApi") +local playAreaApi = require("core/PlayAreaApi") +local searchLib = require("util/SearchLib") + local optionsVisible = false local options = { Agenda = true, @@ -93,28 +97,72 @@ end -- adds the provided number to the current count function addVal(number) - number = tonumber(number) or 0 val = val + number - self.editButton({ index = 0, label = tostring(val) }) - printToAll("Doom on agenda set to: " .. val) + updateVal(val) end -- sets the current count to the provided number function updateVal(number) val = number or 0 self.editButton({ index = 0, label = tostring(val) }) - printToAll("Doom on agenda set to: " .. val) + if number then + broadcastDoom(val) + else + broadcastToAll("0 doom on the agenda", "White") + end +end + +-- called by updateVal and addVal to broadcast total doom in play, including doom threshold +function broadcastDoom(val) + local doomInPlayCounter = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DoomInPlayCounter") + local doomInPlay = doomInPlayCounter.call("countDoomInPlay") + val + local doomThreshold = getDoomThreshold() + + if doomThreshold then + broadcastToAll(val .. " doom on the agenda (" .. doomInPlay .. "/" .. doomThreshold .. " in play)", "White") + else + broadcastToAll(val .. " doom on the agenda (" .. doomInPlay .. " in play)", "White") + end end -- called by "Reset" button to remove doom function startReset() if options.Agenda then - updateVal(0) + -- omitting the number will broadcast a special message just for this case + updateVal() end - -- call the "Doom-in-Play"-counter - local DoomInPlayCounter = getObjectFromGUID("652ff3") - if DoomInPlayCounter then - DoomInPlayCounter.call("removeDoom", options) + local doomInPlayCounter = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DoomInPlayCounter") + if doomInPlayCounter then + doomInPlayCounter.call("removeDoom", options) + end +end + +-- get doom threshold from top card of Agenda deck +function getDoomThreshold() + local agendaPos = { -2.72, 1.6, 0.37 } + local searchResult = searchLib.atPosition(agendaPos, "isCardOrDeck") + + if #searchResult == 1 then + local obj = searchResult[1] + if obj.type == "Card" then + return getDoomThresholdFromGMNotes(obj.getGMNotes()) + else + -- handle agenda deck + local containedObjects = obj.getData().ContainedObjects + local topCardData = containedObjects[#containedObjects] + return getDoomThresholdFromGMNotes(topCardData.GMNotes) + end + end + return nil +end + +-- decodes the gm notes and return the doom treshhold +function getDoomThresholdFromGMNotes(notes) + local metadata = JSON.decode(notes) or {} + if metadata.doomThresholdPerInvestigator then + return metadata.doomThresholdPerInvestigator * playAreaApi.getInvestigatorCount() + metadata.doomThreshold + else + return metadata.doomThreshold end end @@ -134,4 +182,236 @@ function toggleOptions() end end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Custom_Token Doom Counter 85c4c6.xml b/unpacked/Custom_Token Doom Counter 85c4c6.xml index 6ff3eae27..27d07db37 100644 --- a/unpacked/Custom_Token Doom Counter 85c4c6.xml +++ b/unpacked/Custom_Token Doom Counter 85c4c6.xml @@ -1,3 +1,4 @@ + @@ -22,4 +23,5 @@ Doom in Playarea Doom on Playermats - \ No newline at end of file + + \ No newline at end of file diff --git a/unpacked/Custom_Token Doom Counter 85c4c6.yaml b/unpacked/Custom_Token Doom Counter 85c4c6.yaml index a1bc3ba13..ddc8dd039 100644 --- a/unpacked/Custom_Token Doom Counter 85c4c6.yaml +++ b/unpacked/Custom_Token Doom Counter 85c4c6.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 1.0 + b: 0 + g: 0 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949592555964782208/CC876694A6684B3C2680CE2FE3259F574AE0AD97/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -35,16 +35,18 @@ Name: Custom_Token Nickname: Doom Counter Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: posX: -5.3 posY: 1.63 posZ: 0.38 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.42 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.42 Value: 0 XmlUI: !include 'Custom_Token Doom Counter 85c4c6.xml' diff --git a/unpacked/Custom_Token Drawing Tool 280086.yaml b/unpacked/Custom_Token Drawing Tool 280086.yaml index 167727c4d..ae118facc 100644 --- a/unpacked/Custom_Token Drawing Tool 280086.yaml +++ b/unpacked/Custom_Token Drawing Tool 280086.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1850441528392677845/F9F54E5144735C7DDFFF88E5D706D0750BA08FBA/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Enables drawing lines between objects with Numpad 0. @@ -43,14 +43,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.2 posZ: 7.59 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.14 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.14 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Horror 0257d9.ttslua b/unpacked/Custom_Token Horror 0257d9.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Horror 0257d9.ttslua +++ b/unpacked/Custom_Token Horror 0257d9.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Horror 0257d9.yaml b/unpacked/Custom_Token Horror 0257d9.yaml index 234883bd2..9df83ac3f 100644 --- a/unpacked/Custom_Token Horror 0257d9.yaml +++ b/unpacked/Custom_Token Horror 0257d9.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663403796/E6FC1B82A5BC3893CFDCDF3CD580D05E9218AE52/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -42,11 +42,11 @@ Transform: posX: -57.89 posY: 1.52 posZ: -24.93 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Horror 468e88.ttslua b/unpacked/Custom_Token Horror 468e88.ttslua index c40a67901..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Horror 468e88.ttslua +++ b/unpacked/Custom_Token Horror 468e88.ttslua @@ -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("core/GenericCounter") +end) __bundle_register("core/GenericCounter", function(require, _LOADED, __bundle_register, __bundle_modules) MIN_VALUE = 0 MAX_VALUE = 99 @@ -60,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end @@ -95,7 +100,4 @@ function addOrSubtract(_, _, isRightClick) self.editButton({ index = 0, label = tostring(val) }) end end) -__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) -require("core/GenericCounter") -end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Horror 468e88.yaml b/unpacked/Custom_Token Horror 468e88.yaml index a8cf13be3..de3d529be 100644 --- a/unpacked/Custom_Token Horror 468e88.yaml +++ b/unpacked/Custom_Token Horror 468e88.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663403796/E6FC1B82A5BC3893CFDCDF3CD580D05E9218AE52/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -42,11 +42,11 @@ Transform: posX: -57.83 posY: 1.52 posZ: 7.23 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Horror 7b5729.ttslua b/unpacked/Custom_Token Horror 7b5729.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Horror 7b5729.ttslua +++ b/unpacked/Custom_Token Horror 7b5729.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Horror 7b5729.yaml b/unpacked/Custom_Token Horror 7b5729.yaml index a888a0f1b..c2209bb6d 100644 --- a/unpacked/Custom_Token Horror 7b5729.yaml +++ b/unpacked/Custom_Token Horror 7b5729.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663403796/E6FC1B82A5BC3893CFDCDF3CD580D05E9218AE52/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -46,7 +46,7 @@ Transform: rotY: 280.0 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Horror beb964.ttslua b/unpacked/Custom_Token Horror beb964.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Horror beb964.ttslua +++ b/unpacked/Custom_Token Horror beb964.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Horror beb964.yaml b/unpacked/Custom_Token Horror beb964.yaml index db81d9193..c7df3f2a6 100644 --- a/unpacked/Custom_Token Horror beb964.yaml +++ b/unpacked/Custom_Token Horror beb964.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663403796/E6FC1B82A5BC3893CFDCDF3CD580D05E9218AE52/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -46,7 +46,7 @@ Transform: rotY: 280.0 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Instruction Generator 240522.ttslua b/unpacked/Custom_Token Instruction Generator 240522.ttslua new file mode 100644 index 000000000..85898b6dc --- /dev/null +++ b/unpacked/Custom_Token Instruction Generator 240522.ttslua @@ -0,0 +1,194 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("arkhamdb/InstructionGenerator") +end) +__bundle_register("arkhamdb/InstructionGenerator", function(require, _LOADED, __bundle_register, __bundle_modules) +local searchLib = require("util/SearchLib") + +function onLoad() + local buttonParameters = {} + buttonParameters.function_owner = self + buttonParameters.height = 200 + buttonParameters.width = 1200 + buttonParameters.font_size = 75 + buttonParameters.click_function = "generate" + buttonParameters.label = "Generate instructions!" + buttonParameters.position = { 0, 0.06, 1.55 } + self.createButton(buttonParameters) + + local inputParameters = {} + inputParameters.label = "Click button above" + inputParameters.input_function = "none" + inputParameters.function_owner = self + inputParameters.position = { 0, 0.05, 1.95 } + inputParameters.width = 1200 + inputParameters.height = 130 + inputParameters.font_size = 107 + self.createInput(inputParameters) +end + +function generate(_, playerColor) + local idList = {} + for _, obj in ipairs(searchLib.onObject(self, "isCardOrDeck")) do + if obj.type == "Card" then + local cardMetadata = JSON.decode(obj.getGMNotes()) + + if cardMetadata then + local id = getIdFromData(cardMetadata) + if id then + table.insert(idList, id) + end + end + elseif obj.type == "Deck" then + for _, deepObj in ipairs(obj.getData().ContainedObjects) do + local cardMetadata = JSON.decode(deepObj.GMNotes) + if cardMetadata then + local id = getIdFromData(cardMetadata) + if id then + table.insert(idList, id) + end + end + end + end + end + + if #idList == 0 then + broadcastToColor("Didn't find any valid cards.", playerColor, "Red") + return + else + broadcastToColor("Created deck instruction for " .. #idList .. " card(s). Copy it from the input field.", playerColor, "Green") + end + + -- construct the string + local description = "++SCED import instructions++\n- add: " + for _, id in ipairs(idList) do + description = description .. id .. ", " + end + + -- remove last delimiter (last two characters) + description = description:sub(1, -3) + self.editInput({index = 0, value = description}) +end + +-- use the ZoopGuid as fallback if no id present +function getIdFromData(metadata) + if metadata.id then + return metadata.id + elseif metadata.TtsZoopGuid then + return metadata.TtsZoopGuid + end +end + +function none() 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/Custom_Token Instruction Generator 240522.yaml b/unpacked/Custom_Token Instruction Generator 240522.yaml new file mode 100644 index 000000000..3e1ca246d --- /dev/null +++ b/unpacked/Custom_Token Instruction Generator 240522.yaml @@ -0,0 +1,56 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +AttachedSnapPoints: +- Position: + x: 0 + y: 0.1 + z: 0.05 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +CustomImage: + CustomToken: + MergeDistancePixels: 15 + Stackable: false + StandUp: false + Thickness: 0.1 + ImageScalar: 1 + ImageSecondaryURL: '' + ImageURL: http://cloud-3.steamusercontent.com/ugc/2280574378890547614/63FE6CDF23322B6C4001514E2B8891BA998FAD71/ + WidthScale: 0 +Description: This tool can generate an description for you deck on ArkhamDB that will + instruct the deck importer to add the specified cards. +DragSelectable: true +GMNotes: '' +GUID: '240522' +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: !include 'Custom_Token Instruction Generator 240522.ttslua' +LuaScriptState: '' +MeasureMovement: false +Name: Custom_Token +Nickname: Instruction Generator +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: -17.5 + posY: 1.53 + posZ: 83 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 1.25 + scaleY: 1 + scaleZ: 1.35 +Value: 0 +XmlUI: '' diff --git a/unpacked/Custom_Token Investigator Count f182ee.ttslua b/unpacked/Custom_Token Investigator Count f182ee.ttslua index 2e257353f..6f38634e6 100644 --- a/unpacked/Custom_Token Investigator Count f182ee.ttslua +++ b/unpacked/Custom_Token Investigator Count f182ee.ttslua @@ -68,6 +68,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Investigator Count f182ee.yaml b/unpacked/Custom_Token Investigator Count f182ee.yaml index 048551998..ce464bf35 100644 --- a/unpacked/Custom_Token Investigator Count f182ee.yaml +++ b/unpacked/Custom_Token Investigator Count f182ee.yaml @@ -1,7 +1,7 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: b: 0.76481 @@ -9,14 +9,14 @@ ColorDiffuse: r: 0.76481 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/Nj9m2tH.png - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -45,12 +45,12 @@ Tooltip: true Transform: posX: -12.03 posY: 1.47 - posZ: -4.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: -4 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.3 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.3 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Investigator Skill Tracker af7ed7.ttslua b/unpacked/Custom_Token Investigator Skill Tracker af7ed7.ttslua index c5ff11511..189ba4d54 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker af7ed7.ttslua +++ b/unpacked/Custom_Token Investigator Skill Tracker af7ed7.ttslua @@ -45,71 +45,61 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("playermat/InvestigatorSkillTracker") end) __bundle_register("playermat/InvestigatorSkillTracker", function(require, _LOADED, __bundle_register, __bundle_modules) --- Stat Tracker --- made by: Chr1Z --- description: helps tracking the stats of your investigator - -local BUTTON_PARAMETERS = {} -BUTTON_PARAMETERS.function_owner = self -BUTTON_PARAMETERS.height = 650 -BUTTON_PARAMETERS.width = 700 -BUTTON_PARAMETERS.position = { x = -4.775, y = 0.1, z = -0.03 } -BUTTON_PARAMETERS.color = { 0, 0, 0, 0 } -BUTTON_PARAMETERS.font_color = { 0, 0, 0, 100 } -BUTTON_PARAMETERS.font_size = 450 +local buttonParameters = {} +buttonParameters.function_owner = self +buttonParameters.height = 650 +buttonParameters.width = 700 +buttonParameters.position = { x = -4.775, y = 0.1, z = -0.03 } +buttonParameters.color = { 0, 0, 0, 0 } +buttonParameters.font_color = { 0, 0, 0, 100 } +buttonParameters.font_size = 450 function onSave() return JSON.encode(stats) end -- load stats and make buttons (left to right) -function onLoad(saved_data) - stats = JSON.decode(saved_data) or { 1, 1, 1, 1 } +function onLoad(savedData) + stats = JSON.decode(savedData) or { 1, 1, 1, 1 } - for i = 1, 4 do - BUTTON_PARAMETERS.label = stats[i] .. " " - BUTTON_PARAMETERS.position.x = BUTTON_PARAMETERS.position.x + 1.91 - BUTTON_PARAMETERS.click_function = attachIndex("button_click", i) - self.createButton(BUTTON_PARAMETERS) - end + for index = 1, 4 do + local fnName = "buttonClick" .. index + _G[fnName] = function(_, _, isRightClick) buttonClick(isRightClick, index) end + buttonParameters.click_function = fnName + buttonParameters.position.x = buttonParameters.position.x + 1.91 + self.createButton(buttonParameters) + updateButtonLabel(index) + end - self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) + self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) end --- helper function to carry index -function attachIndex(click_function, index) - local fn_name = click_function .. index - _G[fn_name] = function(obj, player_color, isRightClick) - _G[click_function](obj, player_color, isRightClick, index) - end - return fn_name +function buttonClick(isRightClick, index) + stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) + updateButtonLabel(index) end -function button_click(_, _, isRightClick, index) - stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) - changeButton(index) +-- sync the button label to the internal value +function updateButtonLabel(index) + local fontSize = buttonParameters.font_size + local whitespace = " " + + if stats[index] > 9 then + fontSize = buttonParameters.font_size * 0.65 + whitespace = " " + end + + self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = fontSize }) end -function changeButton(index) - local font_size = BUTTON_PARAMETERS.font_size - local whitespace = " " - - if stats[index] > 9 then - font_size = BUTTON_PARAMETERS.font_size * 0.65 - whitespace = " " - end - - self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = font_size }) -end - --- formatting of "newStats": {Willpower, Intellect, Fight, Agility} +-- update the stats to the provided values +---@param newStats Table Contains the new values for the stats: {Willpower, Intellect, Fight, Agility} function updateStats(newStats) - if newStats and #newStats == 4 then - stats = newStats - elseif newStats then - printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") - return - end + if newStats and #newStats == 4 then + stats = newStats - for i = 1, 4 do changeButton(i) end + for i = 1, 4 do updateButtonLabel(i) end + elseif newStats then + printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") + end end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Investigator Skill Tracker af7ed7.yaml b/unpacked/Custom_Token Investigator Skill Tracker af7ed7.yaml index 886ff344b..9af8e8b42 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker af7ed7.yaml +++ b/unpacked/Custom_Token Investigator Skill Tracker af7ed7.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1910115722579978285/38E3156A777396FF8C96D2191720790162749C40/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Displays the stats of your investigator and can be clicked to increase / decrease the stats. diff --git a/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.ttslua b/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.ttslua index c5ff11511..6f379d44c 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.ttslua +++ b/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.ttslua @@ -41,75 +41,65 @@ 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("playermat/InvestigatorSkillTracker") -end) __bundle_register("playermat/InvestigatorSkillTracker", function(require, _LOADED, __bundle_register, __bundle_modules) --- Stat Tracker --- made by: Chr1Z --- description: helps tracking the stats of your investigator - -local BUTTON_PARAMETERS = {} -BUTTON_PARAMETERS.function_owner = self -BUTTON_PARAMETERS.height = 650 -BUTTON_PARAMETERS.width = 700 -BUTTON_PARAMETERS.position = { x = -4.775, y = 0.1, z = -0.03 } -BUTTON_PARAMETERS.color = { 0, 0, 0, 0 } -BUTTON_PARAMETERS.font_color = { 0, 0, 0, 100 } -BUTTON_PARAMETERS.font_size = 450 +local buttonParameters = {} +buttonParameters.function_owner = self +buttonParameters.height = 650 +buttonParameters.width = 700 +buttonParameters.position = { x = -4.775, y = 0.1, z = -0.03 } +buttonParameters.color = { 0, 0, 0, 0 } +buttonParameters.font_color = { 0, 0, 0, 100 } +buttonParameters.font_size = 450 function onSave() return JSON.encode(stats) end -- load stats and make buttons (left to right) -function onLoad(saved_data) - stats = JSON.decode(saved_data) or { 1, 1, 1, 1 } +function onLoad(savedData) + stats = JSON.decode(savedData) or { 1, 1, 1, 1 } - for i = 1, 4 do - BUTTON_PARAMETERS.label = stats[i] .. " " - BUTTON_PARAMETERS.position.x = BUTTON_PARAMETERS.position.x + 1.91 - BUTTON_PARAMETERS.click_function = attachIndex("button_click", i) - self.createButton(BUTTON_PARAMETERS) - end + for index = 1, 4 do + local fnName = "buttonClick" .. index + _G[fnName] = function(_, _, isRightClick) buttonClick(isRightClick, index) end + buttonParameters.click_function = fnName + buttonParameters.position.x = buttonParameters.position.x + 1.91 + self.createButton(buttonParameters) + updateButtonLabel(index) + end - self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) + self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) end --- helper function to carry index -function attachIndex(click_function, index) - local fn_name = click_function .. index - _G[fn_name] = function(obj, player_color, isRightClick) - _G[click_function](obj, player_color, isRightClick, index) - end - return fn_name +function buttonClick(isRightClick, index) + stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) + updateButtonLabel(index) end -function button_click(_, _, isRightClick, index) - stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) - changeButton(index) +-- sync the button label to the internal value +function updateButtonLabel(index) + local fontSize = buttonParameters.font_size + local whitespace = " " + + if stats[index] > 9 then + fontSize = buttonParameters.font_size * 0.65 + whitespace = " " + end + + self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = fontSize }) end -function changeButton(index) - local font_size = BUTTON_PARAMETERS.font_size - local whitespace = " " - - if stats[index] > 9 then - font_size = BUTTON_PARAMETERS.font_size * 0.65 - whitespace = " " - end - - self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = font_size }) -end - --- formatting of "newStats": {Willpower, Intellect, Fight, Agility} +-- update the stats to the provided values +---@param newStats Table Contains the new values for the stats: {Willpower, Intellect, Fight, Agility} function updateStats(newStats) - if newStats and #newStats == 4 then - stats = newStats - elseif newStats then - printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") - return - end + if newStats and #newStats == 4 then + stats = newStats - for i = 1, 4 do changeButton(i) end + for i = 1, 4 do updateButtonLabel(i) end + elseif newStats then + printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") + end end end) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("playermat/InvestigatorSkillTracker") +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.yaml b/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.yaml index 32a21d97e..e9d05703d 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.yaml +++ b/unpacked/Custom_Token Investigator Skill Tracker b4a5f7.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1910115722579978285/38E3156A777396FF8C96D2191720790162749C40/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Displays the stats of your investigator and can be clicked to increase / decrease the stats. diff --git a/unpacked/Custom_Token Investigator Skill Tracker e598c2.ttslua b/unpacked/Custom_Token Investigator Skill Tracker e598c2.ttslua index c5ff11511..189ba4d54 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker e598c2.ttslua +++ b/unpacked/Custom_Token Investigator Skill Tracker e598c2.ttslua @@ -45,71 +45,61 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("playermat/InvestigatorSkillTracker") end) __bundle_register("playermat/InvestigatorSkillTracker", function(require, _LOADED, __bundle_register, __bundle_modules) --- Stat Tracker --- made by: Chr1Z --- description: helps tracking the stats of your investigator - -local BUTTON_PARAMETERS = {} -BUTTON_PARAMETERS.function_owner = self -BUTTON_PARAMETERS.height = 650 -BUTTON_PARAMETERS.width = 700 -BUTTON_PARAMETERS.position = { x = -4.775, y = 0.1, z = -0.03 } -BUTTON_PARAMETERS.color = { 0, 0, 0, 0 } -BUTTON_PARAMETERS.font_color = { 0, 0, 0, 100 } -BUTTON_PARAMETERS.font_size = 450 +local buttonParameters = {} +buttonParameters.function_owner = self +buttonParameters.height = 650 +buttonParameters.width = 700 +buttonParameters.position = { x = -4.775, y = 0.1, z = -0.03 } +buttonParameters.color = { 0, 0, 0, 0 } +buttonParameters.font_color = { 0, 0, 0, 100 } +buttonParameters.font_size = 450 function onSave() return JSON.encode(stats) end -- load stats and make buttons (left to right) -function onLoad(saved_data) - stats = JSON.decode(saved_data) or { 1, 1, 1, 1 } +function onLoad(savedData) + stats = JSON.decode(savedData) or { 1, 1, 1, 1 } - for i = 1, 4 do - BUTTON_PARAMETERS.label = stats[i] .. " " - BUTTON_PARAMETERS.position.x = BUTTON_PARAMETERS.position.x + 1.91 - BUTTON_PARAMETERS.click_function = attachIndex("button_click", i) - self.createButton(BUTTON_PARAMETERS) - end + for index = 1, 4 do + local fnName = "buttonClick" .. index + _G[fnName] = function(_, _, isRightClick) buttonClick(isRightClick, index) end + buttonParameters.click_function = fnName + buttonParameters.position.x = buttonParameters.position.x + 1.91 + self.createButton(buttonParameters) + updateButtonLabel(index) + end - self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) + self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) end --- helper function to carry index -function attachIndex(click_function, index) - local fn_name = click_function .. index - _G[fn_name] = function(obj, player_color, isRightClick) - _G[click_function](obj, player_color, isRightClick, index) - end - return fn_name +function buttonClick(isRightClick, index) + stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) + updateButtonLabel(index) end -function button_click(_, _, isRightClick, index) - stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) - changeButton(index) +-- sync the button label to the internal value +function updateButtonLabel(index) + local fontSize = buttonParameters.font_size + local whitespace = " " + + if stats[index] > 9 then + fontSize = buttonParameters.font_size * 0.65 + whitespace = " " + end + + self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = fontSize }) end -function changeButton(index) - local font_size = BUTTON_PARAMETERS.font_size - local whitespace = " " - - if stats[index] > 9 then - font_size = BUTTON_PARAMETERS.font_size * 0.65 - whitespace = " " - end - - self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = font_size }) -end - --- formatting of "newStats": {Willpower, Intellect, Fight, Agility} +-- update the stats to the provided values +---@param newStats Table Contains the new values for the stats: {Willpower, Intellect, Fight, Agility} function updateStats(newStats) - if newStats and #newStats == 4 then - stats = newStats - elseif newStats then - printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") - return - end + if newStats and #newStats == 4 then + stats = newStats - for i = 1, 4 do changeButton(i) end + for i = 1, 4 do updateButtonLabel(i) end + elseif newStats then + printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") + end end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Investigator Skill Tracker e598c2.yaml b/unpacked/Custom_Token Investigator Skill Tracker e598c2.yaml index 5db0812aa..637b574f3 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker e598c2.yaml +++ b/unpacked/Custom_Token Investigator Skill Tracker e598c2.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1910115722579978285/38E3156A777396FF8C96D2191720790162749C40/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Displays the stats of your investigator and can be clicked to increase / decrease the stats. diff --git a/unpacked/Custom_Token Investigator Skill Tracker e74881.ttslua b/unpacked/Custom_Token Investigator Skill Tracker e74881.ttslua index c5ff11511..189ba4d54 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker e74881.ttslua +++ b/unpacked/Custom_Token Investigator Skill Tracker e74881.ttslua @@ -45,71 +45,61 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("playermat/InvestigatorSkillTracker") end) __bundle_register("playermat/InvestigatorSkillTracker", function(require, _LOADED, __bundle_register, __bundle_modules) --- Stat Tracker --- made by: Chr1Z --- description: helps tracking the stats of your investigator - -local BUTTON_PARAMETERS = {} -BUTTON_PARAMETERS.function_owner = self -BUTTON_PARAMETERS.height = 650 -BUTTON_PARAMETERS.width = 700 -BUTTON_PARAMETERS.position = { x = -4.775, y = 0.1, z = -0.03 } -BUTTON_PARAMETERS.color = { 0, 0, 0, 0 } -BUTTON_PARAMETERS.font_color = { 0, 0, 0, 100 } -BUTTON_PARAMETERS.font_size = 450 +local buttonParameters = {} +buttonParameters.function_owner = self +buttonParameters.height = 650 +buttonParameters.width = 700 +buttonParameters.position = { x = -4.775, y = 0.1, z = -0.03 } +buttonParameters.color = { 0, 0, 0, 0 } +buttonParameters.font_color = { 0, 0, 0, 100 } +buttonParameters.font_size = 450 function onSave() return JSON.encode(stats) end -- load stats and make buttons (left to right) -function onLoad(saved_data) - stats = JSON.decode(saved_data) or { 1, 1, 1, 1 } +function onLoad(savedData) + stats = JSON.decode(savedData) or { 1, 1, 1, 1 } - for i = 1, 4 do - BUTTON_PARAMETERS.label = stats[i] .. " " - BUTTON_PARAMETERS.position.x = BUTTON_PARAMETERS.position.x + 1.91 - BUTTON_PARAMETERS.click_function = attachIndex("button_click", i) - self.createButton(BUTTON_PARAMETERS) - end + for index = 1, 4 do + local fnName = "buttonClick" .. index + _G[fnName] = function(_, _, isRightClick) buttonClick(isRightClick, index) end + buttonParameters.click_function = fnName + buttonParameters.position.x = buttonParameters.position.x + 1.91 + self.createButton(buttonParameters) + updateButtonLabel(index) + end - self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) + self.addContextMenuItem("Reset to 1s", function() updateStats({ 1, 1, 1, 1 }) end) end --- helper function to carry index -function attachIndex(click_function, index) - local fn_name = click_function .. index - _G[fn_name] = function(obj, player_color, isRightClick) - _G[click_function](obj, player_color, isRightClick, index) - end - return fn_name +function buttonClick(isRightClick, index) + stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) + updateButtonLabel(index) end -function button_click(_, _, isRightClick, index) - stats[index] = math.min(math.max(stats[index] + (isRightClick and -1 or 1), 0), 99) - changeButton(index) +-- sync the button label to the internal value +function updateButtonLabel(index) + local fontSize = buttonParameters.font_size + local whitespace = " " + + if stats[index] > 9 then + fontSize = buttonParameters.font_size * 0.65 + whitespace = " " + end + + self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = fontSize }) end -function changeButton(index) - local font_size = BUTTON_PARAMETERS.font_size - local whitespace = " " - - if stats[index] > 9 then - font_size = BUTTON_PARAMETERS.font_size * 0.65 - whitespace = " " - end - - self.editButton({ index = index - 1, label = stats[index] .. whitespace, font_size = font_size }) -end - --- formatting of "newStats": {Willpower, Intellect, Fight, Agility} +-- update the stats to the provided values +---@param newStats Table Contains the new values for the stats: {Willpower, Intellect, Fight, Agility} function updateStats(newStats) - if newStats and #newStats == 4 then - stats = newStats - elseif newStats then - printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") - return - end + if newStats and #newStats == 4 then + stats = newStats - for i = 1, 4 do changeButton(i) end + for i = 1, 4 do updateButtonLabel(i) end + elseif newStats then + printToAll("Provided new stats are incomplete or incorrectly formatted.", "Red") + end end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Investigator Skill Tracker e74881.yaml b/unpacked/Custom_Token Investigator Skill Tracker e74881.yaml index a5c764ece..1c8dac12c 100644 --- a/unpacked/Custom_Token Investigator Skill Tracker e74881.yaml +++ b/unpacked/Custom_Token Investigator Skill Tracker e74881.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1910115722579978285/38E3156A777396FF8C96D2191720790162749C40/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Displays the stats of your investigator and can be clicked to increase / decrease the stats. diff --git a/unpacked/Custom_Token Lead Investigator acaa93.yaml b/unpacked/Custom_Token Lead Investigator acaa93.yaml index 20245dfb2..19a56959c 100644 --- a/unpacked/Custom_Token Lead Investigator acaa93.yaml +++ b/unpacked/Custom_Token Lead Investigator acaa93.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1831270385988747395/976427BD8F86E2C57C2D1370FE838991DEA6DD0F/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -48,7 +48,7 @@ Transform: rotY: 270.0 rotZ: 180.0 scaleX: 0.61 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.61 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Master Clue Counter 4a3aa4.ttslua b/unpacked/Custom_Token Master Clue Counter 4a3aa4.ttslua index 47002d70e..8d10410bf 100644 --- a/unpacked/Custom_Token Master Clue Counter 4a3aa4.ttslua +++ b/unpacked/Custom_Token Master Clue Counter 4a3aa4.ttslua @@ -41,14 +41,84 @@ 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/MasterClueCounter") end) __bundle_register("core/MasterClueCounter", function(require, _LOADED, __bundle_register, __bundle_modules) +local playmatApi = require("playermat/PlaymatApi") + +-- variables are intentionally global to be accessible count = 0 useClickableCounters = false -local playmatAPI = require("playermat/PlaymatApi") function onSave() return JSON.encode(useClickableCounters) end function onLoad(savedData) @@ -64,242 +134,343 @@ function onLoad(savedData) height = 900, width = 900, scale = { 1.5, 1.5, 1.5 }, - font_size = 600, + font_size = 650, font_color = { 1, 1, 1, 100 }, color = { 0, 0, 0, 0 } }) - - loopID = Wait.time(sumClues, 2, -1) + Wait.time(sumClues, 2, -1) end -- removes all player clues by calling the respective function from the counting bowls / clickers function removeAllPlayerClues() printToAll(count .. " clue(s) from playermats removed.", "White") - playmatAPI.removeClues("All") + playmatApi.removeClues("All") self.editButton({ index = 0, label = "0" }) end -- gets the counted values from the counting bowls / clickers and sums them up function sumClues() - count = playmatAPI.getClueCount(useClickableCounters, "All") + count = playmatApi.getClueCount(useClickableCounters, "All") self.editButton({ index = 0, label = tostring(count) }) end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Master Clue Counter 4a3aa4.yaml b/unpacked/Custom_Token Master Clue Counter 4a3aa4.yaml index 5bfa4e2eb..66c3aca43 100644 --- a/unpacked/Custom_Token Master Clue Counter 4a3aa4.yaml +++ b/unpacked/Custom_Token Master Clue Counter 4a3aa4.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.87451 - g: 0.87451 - r: 0.87451 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' - ImageURL: http://cloud-3.steamusercontent.com/ugc/1758068501357164917/1D06F1DC4D6888B6F57124BD2AFE20D0B0DA15A8/ - WidthScale: 0.0 + ImageURL: http://cloud-3.steamusercontent.com/ugc/784129913444610342/7903BA89870C1656A003FD69C79BFA99BD1AAC24/ + WidthScale: 0 Description: Click to remove all clues from all investigators DragSelectable: true GMNotes: '' @@ -32,21 +32,21 @@ LuaScript: !include 'Custom_Token Master Clue Counter 4a3aa4.ttslua' LuaScriptState: 'false' MeasureMovement: false Name: Custom_Token -Nickname: 'Master Clue Counter - - ' +Nickname: Master Clue Counter Snap: true Sticky: true +Tags: +- CleanUpHelper_ignore Tooltip: true Transform: posX: -5.3 posY: 1.63 posZ: -5.1 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 0.4 - scaleY: 1.0 - scaleZ: 0.4 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 0.42 + scaleY: 1 + scaleZ: 0.42 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Other Doom in Play 652ff3.ttslua b/unpacked/Custom_Token Other Doom in Play 652ff3.ttslua index aa6efed1f..6980b0478 100644 --- a/unpacked/Custom_Token Other Doom in Play 652ff3.ttslua +++ b/unpacked/Custom_Token Other Doom in Play 652ff3.ttslua @@ -45,28 +45,27 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("core/DoomInPlayCounter") end) __bundle_register("core/DoomInPlayCounter", function(require, _LOADED, __bundle_register, __bundle_modules) --- common parameters -local castParameters = {} -castParameters.direction = { 0, 1, 0 } -castParameters.type = 3 -castParameters.max_distance = 0 +local guidReferenceApi = require("core/GUIDReferenceApi") +local playmatApi = require("playermat/PlaymatApi") -local zone +local ZONE, TRASH, loopID local doomURL = "https://i.imgur.com/EoL7yaZ.png" local IGNORE_TAG = "DoomCounter_ignore" - --- playermats 1 to 4 -local originAndSize = { - { origin = { -55, 1.6, 16.5 }, size = { 12, 1, 25 } }, - { origin = { -55, 1.6, -16.5 }, size = { 12, 1, 25 } }, - { origin = { -25, 1.6, 32.5 }, size = { 12, 1, 25 } }, - { origin = { -25, 1.6, -32.5 }, size = { 12, 1, 25 } } +local TOTAL_PLAY_AREA = { + upperLeft = { + x = -9, + z = -35 + }, + lowerRight = { + x = -60, + z = 35 + } } -- create button, context menu and start loop function onLoad() self.createButton({ - label = tostring(0), + label = "0", click_function = "none", function_owner = self, position = { 0, 0.06, 0 }, @@ -78,78 +77,462 @@ function onLoad() color = { 0, 0, 0, 0 } }) - zone = getObjectFromGUID("a2f932") - loopID = Wait.time(countDoom, 2, -1) + TRASH = guidReferenceApi.getObjectByOwnerAndType("Mythos", "Trash") + ZONE = guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayAreaZone") + loopID = Wait.time(updateCounter, 2, -1) end -- main function -function countDoom() - local doom = 0 - for i = 1, 5 do doom = doom + search(i) end - self.editButton({ index = 0, label = tostring(doom) }) +function updateCounter() + local count = countDoomInPlay() + self.editButton({ index = 0, label = tostring(count) }) end --- searches playermats (num = 1-4) or the scripting zone (num = 5) -function search(num) - local val = 0 - if num == 5 then - for _, obj in ipairs(zone.getObjects()) do - val = val + isDoom(obj) - end +-- get doom in play +function countDoomInPlay() + local count = 0 + + for _, obj in ipairs(getObjects()) do + count = count + getDoomAmount(obj) + end + + return count +end + +-- gets quantity (for stacks) of doom +function getDoomAmount(obj) + if (obj.is_face_down and obj.getCustomObject().image_bottom == doomURL) + and not obj.hasTag(IGNORE_TAG) + and inArea(obj.getPosition(), TOTAL_PLAY_AREA) then + return math.abs(obj.getQuantity()) else - castParameters.origin = originAndSize[num].origin - castParameters.size = originAndSize[num].size - - for _, obj in ipairs(Physics.cast(castParameters)) do - val = val + isDoom(obj.hit_object) - end + return 0 end - return val -end - --- checks an object for the doom image and gets quantity (for stacks) -function isDoom(obj) - if (obj.is_face_down and obj.getCustomObject().image_bottom == doomURL) or - (obj.name == "Custom_Token" and obj.getCustomObject().image == doomURL) then - if not obj.hasTag(IGNORE_TAG) then - return math.abs(obj.getQuantity()) - end - end - return 0 end -- removes doom from playermats / playarea function removeDoom(options) - local trashCan = getObjectFromGUID("70b9f6") - local count = 0 if options.Playermats then - for i = 1, 4 do - castParameters.origin = originAndSize[i].origin - castParameters.size = originAndSize[i].size - - for _, obj in ipairs(Physics.cast(castParameters)) do - local obj = obj.hit_object - local amount = isDoom(obj) - if amount > 0 then - trashCan.putObject(obj) - count = count + amount - end - end + local count = removeDoomFromList(playmatApi.searchAroundPlaymat("All")) + if count > 0 then + broadcastToAll(count .. " doom removed from playermats.", "White") end - broadcastToAll(count .. " doom removed from Playermats.", "White") end - local count = 0 if options.Playarea then - for _, obj in ipairs(zone.getObjects()) do - local amount = isDoom(obj) - if amount > 0 then - trashCan.putObject(obj) - count = count + amount + local count = removeDoomFromList(ZONE.getObjects()) + if count > 0 then + broadcastToAll(count .. " doom removed from play area.", "White") + end + end +end + +-- removes doom from provided object list and returns the removed amount +function removeDoomFromList(objList) + local count = 0 + for _, obj in ipairs(objList) do + local amount = getDoomAmount(obj) + if amount > 0 then + TRASH.putObject(obj) + count = count + amount + end + end + return count +end + +-- helper function to check if a position is inside an area +function inArea(point, bounds) + return (point.x < bounds.upperLeft.x + and point.x > bounds.lowerRight.x + and point.z > bounds.upperLeft.z + and point.z < bounds.lowerRight.z) +end +end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +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 array 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 - broadcastToAll(count .. " doom removed from Playarea.", "White") + 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) + local objList = {} + 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 + + -- 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 + + -- Triggers the metadata sync for all playmats + PlaymatApi.syncAllCustomizableCards = function() + for _, mat in pairs(getMatForColor("All")) do + mat.call("syncAllCustomizableCards") + end + end + + return PlaymatApi +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") diff --git a/unpacked/Custom_Token Other Doom in Play 652ff3.yaml b/unpacked/Custom_Token Other Doom in Play 652ff3.yaml index fa42d11ee..c62c6118f 100644 --- a/unpacked/Custom_Token Other Doom in Play 652ff3.yaml +++ b/unpacked/Custom_Token Other Doom in Play 652ff3.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 1.0 + b: 0 + g: 0 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949592555964782208/CC876694A6684B3C2680CE2FE3259F574AE0AD97/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -42,11 +42,11 @@ Transform: posX: -5.3 posY: 1.63 posZ: 1.8 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.25 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Playarea 721ba2.ttslua b/unpacked/Custom_Token Play Area 721ba2.ttslua similarity index 73% rename from unpacked/Custom_Token Playarea 721ba2.ttslua rename to unpacked/Custom_Token Play Area 721ba2.ttslua index fa3fd27e3..d54201a5e 100644 --- a/unpacked/Custom_Token Playarea 721ba2.ttslua +++ b/unpacked/Custom_Token Play Area 721ba2.ttslua @@ -41,34 +41,245 @@ 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +end +end) __bundle_register("core/token/TokenSpawnTrackerApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local TokenSpawnTracker = { } + local TokenSpawnTracker = {} + local guidReferenceApi = require("core/GUIDReferenceApi") - local SPAWN_TRACKER_GUID = "e3ffc9" + local function getSpawnTracker() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSpawnTracker") + end TokenSpawnTracker.hasSpawnedTokens = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("hasSpawnedTokens", cardGuid) + return getSpawnTracker().call("hasSpawnedTokens", cardGuid) end TokenSpawnTracker.markTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("markTokensSpawned", cardGuid) + return getSpawnTracker().call("markTokensSpawned", cardGuid) end TokenSpawnTracker.resetTokensSpawned = function(cardGuid) - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetTokensSpawned", cardGuid) + return getSpawnTracker().call("resetTokensSpawned", cardGuid) end TokenSpawnTracker.resetAllAssetAndEvents = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllAssetAndEvents") + return getSpawnTracker().call("resetAllAssetAndEvents") end TokenSpawnTracker.resetAllLocations = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAllLocations") + return getSpawnTracker().call("resetAllLocations") end TokenSpawnTracker.resetAll = function() - return getObjectFromGUID(SPAWN_TRACKER_GUID).call("resetAll") + return getSpawnTracker().call("resetAll") end return TokenSpawnTracker @@ -78,66 +289,54 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("core/PlayArea") end) __bundle_register("core/PlayArea", function(require, _LOADED, __bundle_register, __bundle_modules) ---------------------------------------------------------- --- general setup ---------------------------------------------------------- - --- set true to enable debug logging -local DEBUG = false +local guidReferenceApi = require("core/GUIDReferenceApi") +local searchLib = require("util/SearchLib") +local tokenManager = require("core/token/TokenManager") -- Location connection directional options -local BIDIRECTIONAL = 0 -local ONE_WAY = 1 -local INCOMING_ONE_WAY = 2 +local BIDIRECTIONAL = 0 +local ONE_WAY = 1 +local INCOMING_ONE_WAY = 2 -- Connector draw parameters -local CONNECTION_THICKNESS = 0.015 +local CONNECTION_THICKNESS = 0.015 local DRAGGING_CONNECTION_THICKNESS = 0.15 -local DRAGGING_CONNECTION_COLOR = { 0.8, 0.8, 0.8, 1 } -local CONNECTION_COLOR = { 0.4, 0.4, 0.4, 1 } -local DIRECTIONAL_ARROW_DISTANCE = 3.5 -local ARROW_ARM_LENGTH = 0.9 -local ARROW_ANGLE = 25 +local DRAGGING_CONNECTION_COLOR = { 0.8, 0.8, 0.8, 1 } +local DIRECTIONAL_ARROW_DISTANCE = 3.5 +local ARROW_ARM_LENGTH = 0.9 +local ARROW_ANGLE = 25 -- Height to draw the connector lines, places them just above the table and always below cards -local CONNECTION_LINE_Y = 1.529 - --- we use this to turn off collision handling until onLoad() is complete -local collisionEnabled = false +local CONNECTION_LINE_Y = 1.529 -- used for recreating the link to a custom data helper after image change -customDataHelper = nil +customDataHelper = nil -local SHIFT_OFFSETS = { +local DEFAULT_URL = "http://cloud-3.steamusercontent.com/ugc/998015670465071049/FFAE162920D67CF38045EFBD3B85AD0F916147B2/" + +local SHIFT_OFFSETS = { left = { x = 0.00, y = 0, z = 7.67 }, right = { x = 0.00, y = 0, z = -7.67 }, up = { x = 6.54, y = 0, z = 0.00 }, down = { x = -6.54, y = 0, z = 0.00 } } -local SHIFT_EXCLUSION = { +local SHIFT_EXCLUSION = { ["b7b45b"] = true, ["f182ee"] = true, ["721ba2"] = true } -local LOC_LINK_EXCLUDE_SCENARIOS = { +local LOC_LINK_EXCLUDE_SCENARIOS = { ["The Witching Hour"] = true, ["The Heart of Madness"] = true } -local tokenManager = require("core/token/TokenManager") -local INVESTIGATOR_COUNTER_GUID = "f182ee" -local PLAY_AREA_ZONE_GUID = "a2f932" - -local clueData = {} -local spawnedLocationGUIDs = {} -local locations = {} -local locationConnections = {} -local draggingGuids = {} -local locationData -local currentScenario - -local missingData = {} -local countedVP = {} +local clueData = {} +local spawnedLocationGUIDs = {} +local locations = {} +local locationConnections = {} +local draggingGuids = {} +local missingData = {} +local locationData, currentScenario, connectionsEnabled --------------------------------------------------------- -- general code @@ -145,23 +344,20 @@ local countedVP = {} function onSave() return JSON.encode({ - trackedLocations = locations, - currentScenario = currentScenario, + trackedLocations = locations, + currentScenario = currentScenario, + connectionColor = connectionColor, + connectionsEnabled = connectionsEnabled }) end -function onLoad(saveState) - -- records locations we have spawned clues for - local save = JSON.decode(saveState) or { } - locations = save.trackedLocations or { } - currentScenario = save.currentScenario - - self.interactable = DEBUG - Wait.time(function() collisionEnabled = true end, 1) -end - -function log(message) - if DEBUG then print(message) end +function onLoad(savedData) + self.interactable = false -- this needs to be here since the playarea will be reloaded when the image changes + local loadedData = JSON.decode(savedData) or {} + locations = loadedData.trackedLocations or {} + currentScenario = loadedData.currentScenario + connectionColor = loadedData.connectionColor or { 0.4, 0.4, 0.4, 1 } + connectionsEnabled = loadedData.connectionsEnabled or true end -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the @@ -174,12 +370,37 @@ function updateLocations(args) end end +-- sets the image of the playarea +function updateSurface(newURL) + local customInfo = self.getCustomObject() + + if newURL ~= "" and newURL ~= nil and newURL ~= DEFAULT_URL then + customInfo.image = newURL + broadcastToAll("New Playarea Image Applied", { 0.2, 0.9, 0.2 }) + else + customInfo.image = DEFAULT_URL + broadcastToAll("Default Playarea Image Applied", { 0.2, 0.9, 0.2 }) + end + + self.setCustomObject(customInfo) + + local guid = nil + + if customDataHelper then guid = customDataHelper.getGUID() end + self.reload() + + if guid ~= nil then + Wait.time(function() updateLocations({ guid }) end, 1) + end +end + +-- TTS event, called for each object that is placed on the playarea function onCollisionEnter(collisionInfo) local obj = collisionInfo.collision_object local objType = obj.name -- only continue for cards - if not collisionEnabled or (objType ~= "Card" and objType ~= "CardCustom") then + if objType ~= "Card" and objType ~= "CardCustom" then if objType == "Deck" then table.insert(missingData, obj) end @@ -191,12 +412,14 @@ function onCollisionEnter(collisionInfo) if shouldSpawnTokens(card) then tokenManager.spawnForCard(card) end + -- If this card was being dragged, clear the dragging connections. A multi-drag/drop may send -- the dropped card immediately into a deck, so this has to be done here if draggingGuids[card.getGUID()] ~= nil then card.setVectorLines(nil) draggingGuids[card.getGUID()] = nil end + maybeTrackLocation(card) end @@ -209,6 +432,11 @@ function shouldSpawnTokens(card) or metadata.type == "Enemy" or metadata.type == "Treachery" or metadata.weakness + -- hardcoded IDs for "Makeshift Trap" and "Shrine of the Moirai" + -- these cards are events with uses, that attach to encounter cards and thus will enter play in the playarea + -- TODO: probably turn this into a metadata field if we get more cards like that + or metadata.id == "07310" + or metadata.id == "09100" end function onCollisionExit(collisionInfo) @@ -229,20 +457,20 @@ function onObjectPickUp(player, object) -- should be tracking if showLocationLinks() and isInPlayArea(object) and object.getGMNotes() ~= nil and object.getGMNotes() ~= "" then local pickedUpGuid = object.getGUID() - local metadata = JSON.decode(object.getGMNotes()) or { } + local metadata = JSON.decode(object.getGMNotes()) or {} if metadata.type == "Location" then -- onCollisionExit sometimes comes 1 frame after onObjectPickUp (rather than before it or in -- the same frame). This causes a mismatch in the data between dragging the on-table, and -- that one frame draws connectors on the card which then show up as shadows for snap points. -- Waiting ensures we always do thing in the expected Exit->PickUp order Wait.frames(function() - if object.is_face_down then - draggingGuids[pickedUpGuid] = metadata.locationBack - else - draggingGuids[pickedUpGuid] = metadata.locationFront - end - rebuildConnectionList() - end, 2) + if object.is_face_down then + draggingGuids[pickedUpGuid] = metadata.locationBack + else + draggingGuids[pickedUpGuid] = metadata.locationFront + end + rebuildConnectionList() + end, 2) end end end @@ -266,7 +494,7 @@ function onUpdate() -- Even if the last location left the play area, need one last draw to clear the lines needsConnectionDraw = true end - if (needsConnectionRebuild) then + if needsConnectionRebuild then rebuildConnectionList() end if needsConnectionDraw then @@ -335,11 +563,11 @@ end -- drawBaseConnections() function rebuildConnectionList() if not showLocationLinks() then - locationConnections = { } + locationConnections = {} return end - local iconCardList = { } + local iconCardList = {} -- Build a list of cards with each icon as their location ID for cardId, metadata in pairs(draggingGuids) do @@ -350,7 +578,7 @@ function rebuildConnectionList() end -- Pair up all the icons - locationConnections = { } + locationConnections = {} for cardId, metadata in pairs(draggingGuids) do buildConnection(cardId, iconCardList, metadata) end @@ -362,14 +590,14 @@ function rebuildConnectionList() end -- Extracts the card's icon string into a list of individual location icons ----@param cardID String GUID of the card to pull the icon data from +---@param cardId String GUID of the card to pull the icon data from ---@param iconCardList Table A table of icon->GUID list. Mutable, will be updated by this method ---@param locData Table A table containing the metadata for the card (for the correct side) function buildLocListByIcon(cardId, iconCardList, locData) if locData ~= nil and locData.icons ~= nil then for icon in string.gmatch(locData.icons, "%a+") do if iconCardList[icon] == nil then - iconCardList[icon] = { } + iconCardList[icon] = {} end table.insert(iconCardList[icon], cardId) end @@ -383,19 +611,19 @@ end ---@param locData Table A table containing the metadata for the card (for the correct side) function buildConnection(cardId, iconCardList, locData) if locData ~= nil and locData.connections ~= nil then - locationConnections[cardId] = { } + locationConnections[cardId] = {} for icon in string.gmatch(locData.connections, "%a+") do if iconCardList[icon] ~= nil then for _, connectedGuid in ipairs(iconCardList[icon]) do -- If the reciprocal exists, convert it to BiDi, otherwise add as a one-way if locationConnections[connectedGuid] ~= nil and (locationConnections[connectedGuid][cardId] == ONE_WAY - or locationConnections[connectedGuid][cardId] == BIDIRECTIONAL) then + or locationConnections[connectedGuid][cardId] == BIDIRECTIONAL) then locationConnections[connectedGuid][cardId] = BIDIRECTIONAL locationConnections[cardId][connectedGuid] = nil else if locationConnections[connectedGuid] == nil then - locationConnections[connectedGuid] = { } + locationConnections[connectedGuid] = {} end locationConnections[cardId][connectedGuid] = ONE_WAY locationConnections[connectedGuid][cardId] = INCOMING_ONE_WAY @@ -410,19 +638,20 @@ end -- Constructed vectors will be set to the playmat function drawBaseConnections() if not showLocationLinks() then - locationConnections = { } + locationConnections = {} + self.setVectorLines({}) return end - local cardConnectionLines = { } + local cardConnectionLines = {} for originGuid, targetGuids in pairs(locationConnections) do -- Objects should reliably exist at this point, but since this can be called during onUpdate the -- object checks are conservative just to make sure. local origin = getObjectFromGUID(originGuid) - if draggingGuids[originGuid] == nil and origin != nil then + if draggingGuids[originGuid] == nil and origin ~= nil then for targetGuid, direction in pairs(targetGuids) do local target = getObjectFromGUID(targetGuid) - if draggingGuids[targetGuid] == nil and target != nil then + if draggingGuids[targetGuid] == nil and target ~= nil then -- Since we process the full list, we're guaranteed to hit any ONE_WAY connections later -- so we can ignore INCOMING_ONE_WAY if direction == BIDIRECTIONAL then @@ -442,8 +671,8 @@ function drawDraggingConnections() if not showLocationLinks() then return end - local cardConnectionLines = { } - local ownedVectors = { } + local cardConnectionLines = {} + local ownedVectors = {} for originGuid, _ in pairs(draggingGuids) do targetGuids = locationConnections[originGuid] @@ -451,10 +680,10 @@ function drawDraggingConnections() -- object checks are conservative just to make sure. local origin = getObjectFromGUID(originGuid) if draggingGuids[originGuid] and origin ~= nil and targetGuids ~= nil then - ownedVectors[originGuid] = { } + ownedVectors[originGuid] = {} for targetGuid, direction in pairs(targetGuids) do local target = getObjectFromGUID(targetGuid) - if target != nil then + if target ~= nil then if direction == BIDIRECTIONAL then addBidirectionalVector(origin, target, origin, ownedVectors[originGuid]) elseif direction == ONE_WAY then @@ -489,9 +718,9 @@ function addBidirectionalVector(card1, card2, vectorOwner, lines) local pos2 = vectorOwner.positionToLocal(cardPos2) table.insert(lines, { - points = { pos1, pos2 }, - color = vectorOwner == self and CONNECTION_COLOR or DRAGGING_CONNECTION_COLOR, - thickness = vectorOwner == self and CONNECTION_THICKNESS or DRAGGING_CONNECTION_THICKNESS, + points = { pos1, pos2 }, + color = vectorOwner == self and connectionColor or DRAGGING_CONNECTION_COLOR, + thickness = vectorOwner == self and CONNECTION_THICKNESS or DRAGGING_CONNECTION_THICKNESS, }) end @@ -513,11 +742,13 @@ function addOneWayVector(origin, target, vectorOwner, lines) -- Calculate card distance to be closer for horizontal positions than vertical, since cards are -- taller than they are wide local heading = Vector(originPos):sub(targetPos):heading("y") - local distanceFromCard = DIRECTIONAL_ARROW_DISTANCE * 0.7 + DIRECTIONAL_ARROW_DISTANCE * 0.3 * math.abs(math.sin(math.rad(heading))) + local distanceFromCard = DIRECTIONAL_ARROW_DISTANCE * 0.7 + + DIRECTIONAL_ARROW_DISTANCE * 0.3 * math.abs(math.sin(math.rad(heading))) -- Calculate the three possible arrow positions. These are offset by half the arrow length to -- make them visually balanced by keeping the arrows centered, not tracking the point - local midpoint = Vector(originPos):add(targetPos):scale(Vector(0.5, 0.5, 0.5)):moveTowards(targetPos, ARROW_ARM_LENGTH / 2) + local midpoint = Vector(originPos):add(targetPos):scale(Vector(0.5, 0.5, 0.5)):moveTowards(targetPos, + ARROW_ARM_LENGTH / 2) local closeToOrigin = Vector(originPos):moveTowards(targetPos, distanceFromCard + ARROW_ARM_LENGTH / 2) local closeToTarget = Vector(targetPos):moveTowards(originPos, distanceFromCard - ARROW_ARM_LENGTH / 2) @@ -530,21 +761,23 @@ function addOneWayVector(origin, target, vectorOwner, lines) end -- Draws an arrowhead at the given position. ----@param arrowheadPosition Table Centerpoint of the arrowhead to draw (NOT the tip of the arrow) +---@param arrowheadPos Table Centerpoint of the arrowhead to draw (NOT the tip of the arrow) ---@param originPos Table Origin point of the connection, used to position the arrow arms ---@param vectorOwner Object The object which these lines will be set to. Used for relative --- positioning and scaling, as well as highlighting connections during a drag operation ---@param lines Table List of vector line elements. Mutable, will be updated to add this arrow function addArrowLines(arrowheadPos, originPos, vectorOwner, lines) - local arrowArm1 = Vector(arrowheadPos):moveTowards(originPos, ARROW_ARM_LENGTH):sub(arrowheadPos):rotateOver("y", -1 * ARROW_ANGLE):add(arrowheadPos) - local arrowArm2 = Vector(arrowheadPos):moveTowards(originPos, ARROW_ARM_LENGTH):sub(arrowheadPos):rotateOver("y", ARROW_ANGLE):add(arrowheadPos) + local arrowArm1 = Vector(arrowheadPos):moveTowards(originPos, ARROW_ARM_LENGTH):sub(arrowheadPos):rotateOver("y", + -1 * ARROW_ANGLE):add(arrowheadPos) + local arrowArm2 = Vector(arrowheadPos):moveTowards(originPos, ARROW_ARM_LENGTH):sub(arrowheadPos):rotateOver("y", + ARROW_ANGLE):add(arrowheadPos) local head = vectorOwner.positionToLocal(arrowheadPos) local arm1 = vectorOwner.positionToLocal(arrowArm1) local arm2 = vectorOwner.positionToLocal(arrowArm2) table.insert(lines, { - points = { arm1, head, arm2}, - color = vectorOwner == self and CONNECTION_COLOR or DRAGGING_CONNECTION_COLOR, + points = { arm1, head, arm2 }, + color = vectorOwner == self and connectionColor or DRAGGING_CONNECTION_COLOR, thickness = vectorOwner == self and CONNECTION_THICKNESS or DRAGGING_CONNECTION_THICKNESS, }) end @@ -570,7 +803,7 @@ function shiftContentsRight(playerColor) end function shiftContents(playerColor, direction) - local zone = getObjectFromGUID(PLAY_AREA_ZONE_GUID) + local zone = guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayAreaZone") if not zone then broadcastToColor("Scripting zone couldn't be found.", playerColor, "Red") return @@ -584,20 +817,6 @@ function shiftContents(playerColor, direction) Wait.time(drawBaseConnections, 0.1) end --- Returns the current value of the investigator counter from the playmat ----@return. Number of investigators currently set on the counter -function getInvestigatorCount() - local investigatorCounter = getObjectFromGUID("f182ee") - return investigatorCounter.getVar("val") -end - --- Updates the current value of the investigator counter from the playmat ----@param count Number of investigators to set on the counter -function setInvestigatorCount(count) - local investigatorCounter = getObjectFromGUID("f182ee") - return investigatorCounter.call("updateVal", count) -end - -- Check to see if the given object is within the bounds of the play area, based solely on the X and -- Z coordinates, ignoring height ---@param object Object Object to check @@ -606,8 +825,8 @@ function isInPlayArea(object) local bounds = self.getBounds() local position = object.getPosition() -- Corners are arbitrary since it's all global - c1 goes down both axes, c2 goes up - local c1 = { x = bounds.center.x - bounds.size.x / 2, z = bounds.center.z - bounds.size.z / 2} - local c2 = { x = bounds.center.x + bounds.size.x / 2, z = bounds.center.z + bounds.size.z / 2} + local c1 = { x = bounds.center.x - bounds.size.x / 2, z = bounds.center.z - bounds.size.z / 2 } + local c2 = { x = bounds.center.x + bounds.size.x / 2, z = bounds.center.z + bounds.size.z / 2 } return position.x > c1.x and position.x < c2.x and position.z > c1.z and position.z < c2.z end @@ -625,7 +844,7 @@ function onScenarioChanged(scenarioName) end function showLocationLinks() - return not LOC_LINK_EXCLUDE_SCENARIOS[currentScenario] + return not LOC_LINK_EXCLUDE_SCENARIOS[currentScenario] and connectionsEnabled end -- Sets this playmat's snap points to limit snapping to locations or not. @@ -648,18 +867,38 @@ function setLimitSnapsByType(matchTypes) self.setSnapPoints(snaps) end +-- called by the option panel to enabled / disable location connections +function setConnectionDrawState(state) + connectionsEnabled = state + rebuildConnectionList() + drawBaseConnections() +end + +-- called by the option panel to edit the location connection color +function setConnectionColor(color) + connectionColor = color + rebuildConnectionList() + drawBaseConnections() +end + -- count victory points on locations in play area +---@param highlightOff Boolean True if highlighting should be enabled ---@return. Returns the total amount of VP found in the play area -function countVP() +function countVP(highlightOff) local totalVP = 0 for cardId, metadata in pairs(locations) do - if metadata ~= nil then + local card = getObjectFromGUID(cardId) + if metadata ~= nil and card ~= nil then + if highlightOff == true then + card.highlightOff("Green") + end + local cardVP = tonumber(metadata.victory) or 0 - if cardVP ~= 0 and not cardHasClues(cardId) then + if cardVP ~= 0 and not cardHasClues(card) then totalVP = totalVP + cardVP - if cardVP >0 then - table.insert(countedVP, getObjectFromGUID(cardId)) + if highlightOff == false then + card.highlightOn("Green") end end end @@ -669,28 +908,10 @@ function countVP() end -- checks if a card has clues on it, returns true if clues are on it ----@param cardId String GUID of the card to check for clues -function cardHasClues(cardId) - local card = getObjectFromGUID(cardId) - for _, v in ipairs(searchOnObj(card)) do - local obj = v.hit_object - if obj.memo == "clueDoom" and obj.is_face_down == false then - return true - end - end - return false -end - --- searches on an object (by using its bounds) ----@param obj Object Object to search on -function searchOnObj(obj) - return Physics.cast({ - direction = { 0, 1, 0 }, - max_distance = 0.5, - type = 3, - size = obj.getBounds().size, - origin = obj.getPosition() - }) +---@param card TTSObject Card to check for clues +function cardHasClues(card) + local searchResult = searchLib.onObject(card, "isClue") + return #searchResult > 0 end -- highlights all locations in the play area without metadata @@ -709,26 +930,10 @@ function highlightMissingData(state) end end --- highlights all locations in the play area with VP ----@param state Boolean True if highlighting should be enabled -function highlightCountedVP(state) - for i, obj in pairs(countedVP) do - if obj ~= nil then - if state then - obj.highlightOff("Green") - else - obj.highlightOn("Green") - end - else - countedVP[i] = nil - end - end -end - -- rebuilds local snap points (could be useful in the future again) function buildSnaps() - local upperleft = { x = 1.53, z = -1.09} - local lowerright = {x = -1.53, z = 1.55} + local upperleft = { x = 1.53, z = -1.09 } + local lowerright = { x = -1.53, z = 1.55 } local snaps = {} -- creates 81 snap points, for uneven rows + columns it makes a rotation snap point @@ -742,7 +947,7 @@ function buildSnaps() -- enable rotation snaps for uneven rows / columns if (i % 2 ~= 0) and (j % 2 ~= 0) then - snap.rotation = {0, 0, 0} + snap.rotation = { 0, 0, 0 } snap.rotation_snap = true end @@ -754,14 +959,59 @@ end -- utility function function round(num, numDecimalPlaces) - local mult = 10^(numDecimalPlaces or 0) + local mult = 10 ^ (numDecimalPlaces or 0) return math.floor(num * mult + 0.5) / mult end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) __bundle_register("core/token/TokenManager", function(require, _LOADED, __bundle_register, __bundle_modules) do - local tokenSpawnTracker = require("core/token/TokenSpawnTrackerApi") - local playArea = require("core/PlayAreaApi") + local guidReferenceApi = require("core/GUIDReferenceApi") + local optionPanelApi = require("core/OptionPanelApi") + local playAreaApi = require("core/PlayAreaApi") + local searchLib = require("util/SearchLib") + local tokenSpawnTrackerApi = require("core/token/TokenSpawnTrackerApi") local PLAYER_CARD_TOKEN_OFFSETS = { [1] = { @@ -879,15 +1129,10 @@ do ["supply"] = 7 } - -- Source for tokens - local TOKEN_SOURCE_GUID = "124381" - -- Table of data extracted from the token source bag, keyed by the Memo on each token which -- should match the token type keys ("resource", "clue", etc) local tokenTemplates - local DATA_HELPER_GUID = "708279" - local playerCardData local locationData @@ -902,7 +1147,7 @@ do ---@param extraUses Table A table of = which will modify the number of tokens --- spawned for that type. e.g. Akachi's playmat should pass "Charge"=1 TokenManager.spawnForCard = function(card, extraUses) - if tokenSpawnTracker.hasSpawnedTokens(card.getGUID()) then + if tokenSpawnTrackerApi.hasSpawnedTokens(card.getGUID()) then return end local metadata = JSON.decode(card.getGMNotes()) @@ -920,13 +1165,15 @@ do ---@param tokenCount Number How many tokens to spawn. For damage or horror this value will be set to the -- spawned state object rather than spawning multiple tokens ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnTokenGroup = function(card, tokenType, tokenCount, shiftDown, subType) - local optionPanel = Global.getTable("optionPanel") + local optionPanel = optionPanelApi.getOptions() if tokenType == "damage" or tokenType == "horror" then TokenManager.spawnCounterToken(card, tokenType, tokenCount, shiftDown) - elseif tokenType == "resource" and optionPanel["useResourceCounters"] then + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "enabled" then + TokenManager.spawnResourceCounterToken(card, tokenCount) + elseif tokenType == "resource" and optionPanel["useResourceCounters"] == "custom" and tokenCount == 0 then TokenManager.spawnResourceCounterToken(card, tokenCount) else TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown, subType) @@ -960,16 +1207,17 @@ do -- Other types should use spawnCounterToken() ---@param tokenCount Number How many tokens to spawn ---@param shiftDown Number An offset for the z-value of this group of tokens - ---@param subType Number Subtype of token to spawn. This will only differ from the tokenName for resource tokens + ---@param subType String Subtype of token to spawn. This will only differ from the tokenName for resource tokens TokenManager.spawnMultipleTokens = function(card, tokenType, tokenCount, shiftDown, subType) - if tokenCount < 1 or tokenCount > 12 then - return - end + -- not checking the max at this point since clue offsets are calculated dynamically + if tokenCount < 1 then return end local offsets = {} if tokenType == "clue" then offsets = internal.buildClueOffsets(card, tokenCount) else + -- only up to 12 offset tables defined + if tokenCount > 12 then return end for i = 1, tokenCount do offsets[i] = card.positionToWorld(PLAYER_CARD_TOKEN_OFFSETS[tokenCount][i]) -- Fix the y-position for the spawn, since positionToWorld considers rotation which can @@ -982,9 +1230,11 @@ do -- Copy the offsets to make sure we don't change the static values local baseOffsets = offsets offsets = { } + + -- get a vector for the shifting (downwards local to the card) + local shiftDownVector = Vector(0, 0, shiftDown):rotateOver("y", card.getRotation().y) for i, baseOffset in ipairs(baseOffsets) do - offsets[i] = baseOffset - offsets[i][3] = offsets[i][3] + shiftDown + offsets[i] = baseOffset + shiftDownVector end end @@ -1064,7 +1314,7 @@ do -- callers. ---@param card Object Card object to reset the tokens for TokenManager.resetTokensSpawned = function(card) - tokenSpawnTracker.resetTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.resetTokensSpawned(card.getGUID()) end -- Pushes new player card data into the local copy of the Data Helper player data. @@ -1097,8 +1347,8 @@ do if tokenTemplates ~= nil then return end - tokenTemplates = { } - local tokenSource = getObjectFromGUID(TOKEN_SOURCE_GUID) + tokenTemplates = {} + local tokenSource = guidReferenceApi.getObjectByOwnerAndType("Mythos", "TokenSource") for _, tokenTemplate in ipairs(tokenSource.getData().ContainedObjects) do local tokenName = tokenTemplate.Memo tokenTemplates[tokenName] = tokenTemplate @@ -1110,7 +1360,7 @@ do if playerCardData ~= nil then return end - local dataHelper = getObjectFromGUID(DATA_HELPER_GUID) + local dataHelper = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DataHelper") playerCardData = dataHelper.getTable('PLAYER_CARD_DATA') locationData = dataHelper.getTable('LOCATIONS_DATA') end @@ -1125,19 +1375,17 @@ do if uses == nil then return end -- go through tokens to spawn - local type, token, tokenCount + local tokenCount for i, useInfo in ipairs(uses) do - type = useInfo.type - token = useInfo.token - tokenCount = (useInfo.count or 0) - + (useInfo.countPerInvestigator or 0) * playArea.getInvestigatorCount() - if extraUses ~= nil and extraUses[type] ~= nil then - tokenCount = tokenCount + extraUses[type] + tokenCount = (useInfo.count or 0) + (useInfo.countPerInvestigator or 0) * playAreaApi.getInvestigatorCount() + if extraUses ~= nil and extraUses[useInfo.type] ~= nil then + tokenCount = tokenCount + extraUses[useInfo.type] end -- Shift each spawned group after the first down so they don't pile on each other - TokenManager.spawnTokenGroup(card, token, tokenCount, (i - 1) * 0.8, type) + TokenManager.spawnTokenGroup(card, useInfo.token, tokenCount, (i - 1) * 0.8, useInfo.type) end - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a card based on the data helper data. This will consider the face up/down state @@ -1160,22 +1408,21 @@ do ---@param playerData Table Player card data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnPlayerCardTokensFromDataHelper = function(card, playerData) - token = playerData.tokenType - tokenCount = playerData.tokenCount - --log("Spawning data helper tokens for "..card.getName()..'['..card.getDescription()..']: '..tokenCount.."x "..token) + local token = playerData.tokenType + local tokenCount = playerData.tokenCount TokenManager.spawnTokenGroup(card, token, tokenCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end -- Spawn tokens for a location using data retrieved from the Data Helper. ---@param card Object Card to maybe spawn tokens for - ---@param playerData Table Location data structure retrieved from the DataHelper. Should be + ---@param locationData Table Location data structure retrieved from the DataHelper. Should be -- the right data for this card. internal.spawnLocationTokensFromDataHelper = function(card, locationData) local clueCount = internal.getClueCountFromData(card, locationData) if clueCount > 0 then TokenManager.spawnTokenGroup(card, "clue", clueCount) - tokenSpawnTracker.markTokensSpawned(card.getGUID()) + tokenSpawnTrackerApi.markTokensSpawned(card.getGUID()) end end @@ -1195,13 +1442,12 @@ do return 0 end - --log(card.getName() .. ' : ' .. locationData.type .. ' : ' .. locationData.value .. ' : ' .. locationData.clueSide) if ((card.is_face_down and locationData.clueSide == 'back') or (not card.is_face_down and locationData.clueSide == 'front')) then if locationData.type == 'fixed' then return locationData.value elseif locationData.type == 'perPlayer' then - return locationData.value * playArea.getInvestigatorCount() + return locationData.value * playAreaApi.getInvestigatorCount() end error('unexpected location type: ' .. locationData.type) end @@ -1237,7 +1483,6 @@ do local row = (i - 1) % 4 table.insert(cluePositions, Vector(pos.x - 1 + 0.55 * row, pos.y, pos.z - 1.4 - 0.55 * column)) end - return cluePositions end @@ -1251,12 +1496,10 @@ do if mat.positionToLocal(cardPos).x < -1 then return end -- get current amount of resource tokens on the card - local search = internal.searchOnCard(cardPos, card.getRotation()) local clickableResourceCounter = nil local foundTokens = 0 - for _, obj in ipairs(search) do - local obj = obj.hit_object + for _, obj in ipairs(searchLib.onObject(card, "isTileOrToken")) do local memo = obj.getMemo() if (stateTable[memo] or 0) > 0 then @@ -1288,121 +1531,7 @@ do end end - -- searches on a card (standard size) and returns the result - ---@param position Table Position of the card - ---@param rotation Table Rotation of the card - internal.searchOnCard = function(position, rotation) - return Physics.cast({ - origin = position, - direction = {0, 1, 0}, - orientation = rotation, - type = 3, - size = { 2.5, 0.5, 3.5 }, - max_distance = 1, - debug = false - }) - end - return TokenManager end end) -__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local PlayAreaApi = { } - - local PLAY_AREA_GUID = "721ba2" - - local IMAGE_SWAPPER = "b7b45b" - - -- Returns the current value of the investigator counter from the playmat - ---@return Integer. Number of investigators currently set on the counter - PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") - end - - -- Updates the current value of the investigator counter from the playmat - ---@param count Number of investigators to set on the counter - PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) - end - - -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted - PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) - end - - PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) - end - - PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) - end - - PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) - end - - -- Reset the play area's tracking of which cards have had tokens spawned. - PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") - end - - -- Event to be called when the current scenario has changed. - ---@param scenarioName Name of the new scenario - PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) - end - - -- Sets this playmat's snap points to limit snapping to locations or not. - -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. - PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) - end - - -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged - -- cards before they're destroyed by entering the container - PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) - end - - -- counts the VP on locations in the play area - PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") - end - - -- highlights all locations in the play area without metadata - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) - end - - -- highlights all locations in the play area with VP - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) - end - - -- Checks if an object is in the play area (returns true or false) - PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) - end - - PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image - end - - PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) - end - - return PlayAreaApi -end -end) return __bundle_require("__root") diff --git a/unpacked/Custom_Token Playarea 721ba2.yaml b/unpacked/Custom_Token Play Area 721ba2.yaml similarity index 83% rename from unpacked/Custom_Token Playarea 721ba2.yaml rename to unpacked/Custom_Token Play Area 721ba2.yaml index 8787ba346..6f875b56d 100644 --- a/unpacked/Custom_Token Playarea 721ba2.yaml +++ b/unpacked/Custom_Token Play Area 721ba2.yaml @@ -1,16 +1,16 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedSnapPoints: - Position: x: 1.53 y: 0.1 z: -1.09 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -24,9 +24,9 @@ AttachedSnapPoints: y: 0.1 z: -0.43 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -40,9 +40,9 @@ AttachedSnapPoints: y: 0.1 z: 0.23 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -56,9 +56,9 @@ AttachedSnapPoints: y: 0.1 z: 0.89 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -72,9 +72,9 @@ AttachedSnapPoints: y: 0.1 z: 1.55 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -136,9 +136,9 @@ AttachedSnapPoints: y: 0.1 z: -1.09 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -152,9 +152,9 @@ AttachedSnapPoints: y: 0.1 z: -0.43 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -168,9 +168,9 @@ AttachedSnapPoints: y: 0.1 z: 0.23 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -184,9 +184,9 @@ AttachedSnapPoints: y: 0.1 z: 0.89 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -200,9 +200,9 @@ AttachedSnapPoints: y: 0.1 z: 1.55 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -260,77 +260,77 @@ AttachedSnapPoints: Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: -1.09 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: -0.76 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: -0.43 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: -0.1 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: 0.23 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: 0.56 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: 0.89 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: 1.22 Tags: - Location - Position: - x: 0.0 + x: 0 y: 0.1 z: 1.55 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -392,9 +392,9 @@ AttachedSnapPoints: y: 0.1 z: -1.09 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -408,9 +408,9 @@ AttachedSnapPoints: y: 0.1 z: -0.43 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -424,9 +424,9 @@ AttachedSnapPoints: y: 0.1 z: 0.23 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -440,9 +440,9 @@ AttachedSnapPoints: y: 0.1 z: 0.89 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -456,9 +456,9 @@ AttachedSnapPoints: y: 0.1 z: 1.55 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -520,9 +520,9 @@ AttachedSnapPoints: y: 0.1 z: -1.09 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -536,9 +536,9 @@ AttachedSnapPoints: y: 0.1 z: -0.43 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -552,9 +552,9 @@ AttachedSnapPoints: y: 0.1 z: 0.23 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -568,9 +568,9 @@ AttachedSnapPoints: y: 0.1 z: 0.89 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location - Position: @@ -584,26 +584,26 @@ AttachedSnapPoints: y: 0.1 z: 1.55 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Tags: - Location Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/998015670465071049/FFAE162920D67CF38045EFBD3B85AD0F916147B2/ - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -615,11 +615,11 @@ HideWhenFaceDown: false IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true -LuaScript: !include 'Custom_Token Playarea 721ba2.ttslua' -LuaScriptState: '{"trackedLocations":[]}' +LuaScript: !include 'Custom_Token Play Area 721ba2.ttslua' +LuaScriptState: '{"connectionColor":{"a":1,"b":0.4,"g":0.4,"r":0.4},"connectionsEnabled":true,"trackedLocations":[]}' MeasureMovement: false Name: Custom_Token -Nickname: Playarea +Nickname: Play Area Snap: true Sticky: true Tags: @@ -630,12 +630,12 @@ Tooltip: false Transform: posX: -27.94 posY: 1.47 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 10.0 - scaleY: 1.0 - scaleZ: 10.0 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 10 + scaleY: 1 + scaleZ: 10 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Playmat Image Swapper b7b45b.ttslua b/unpacked/Custom_Token Playmat Image Swapper b7b45b.ttslua index da2ae3c1d..bf624736c 100644 --- a/unpacked/Custom_Token Playmat Image Swapper b7b45b.ttslua +++ b/unpacked/Custom_Token Playmat Image Swapper b7b45b.ttslua @@ -41,111 +41,1394 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) -__bundle_register("core/PlayAreaSelector", function(require, _LOADED, __bundle_register, __bundle_modules) -local controlActive = false -local DEFAULT_URL = "http://cloud-3.steamusercontent.com/ugc/998015670465071049/FFAE162920D67CF38045EFBD3B85AD0F916147B2/" +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} --- parameters for open/close button for reusing -local buttonParameters = {} -buttonParameters.function_owner = self -buttonParameters.click_function = "click_toggleControl" -buttonParameters.height = 1500 -buttonParameters.width = 1500 -buttonParameters.color = { 1, 1, 1, 0 } + local function getGuidHandler() + return getObjectFromGUID("123456") + end -function onLoad() - createOpenCloseButton() -end + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type) + return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) + end --- click function for main button -function click_toggleControl() - self.clearButtons() - self.clearInputs() + -- returns all matching objects as a table with references + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectsByType = function(type) + return getGuidHandler().call("getObjectsByType", type) + end - controlActive = not controlActive - createOpenCloseButton() + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + GUIDReferenceApi.getObjectsByOwner = function(owner) + return getGuidHandler().call("getObjectsByOwner", owner) + end - if not controlActive then return end - - -- creates the label, input box and apply button - self.createButton({ - function_owner = self, - label = "Playmat Image Swapper", - tooltip = "", - click_function = "none", - position = { 0, 0.15, 2.2 }, - height = 0, - width = 0, - font_size = 300, - font_color = { 1, 1, 1 } + -- 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 - self.createInput({ - function_owner = self, - label = "URL", - tooltip = "Enter URL for playmat image", - input_function = "none", - alignment = 3, - position = { 0, 0.15, 3 }, - height = 323, - width = 4000, - font_size = 300 - }) - - self.createButton({ - function_owner = self, - label = "Apply Image\nTo Playmat", - tooltip = "Left-Click: Apply URL\nRight-Click: Reset to default image", - click_function = "click_applySurface", - position = { 0, 0.15, 4.1 }, - height = 460, - width = 1400, - font_size = 200 - }) -end - --- click function for apply button -function click_applySurface(_, _, isRightClick) - updateSurface(isRightClick and "" or self.getInputs()[1].value) -end - --- input function for the input box -function none() end - --- main function (can be called by other objects) -function updateSurface(newURL) - local playArea = getObjectFromGUID("721ba2") - local customInfo = playArea.getCustomObject() - - if newURL ~= "" and newURL ~= nil and newURL ~= DEFAULT_URL then - customInfo.image = newURL - broadcastToAll("New Playmat Image Applied", { 0.2, 0.9, 0.2 }) - else - customInfo.image = DEFAULT_URL - broadcastToAll("Default Playmat Image Applied", { 0.2, 0.9, 0.2 }) - end - - playArea.setCustomObject(customInfo) - - -- get custom data helper and call the playarea with it after reloading - local customDataHelper = playArea.getVar("customDataHelper") - local guid - - if customDataHelper then guid = customDataHelper.getGUID() end - playArea = playArea.reload() - - if guid ~= nil then - Wait.time(function() playArea.call("updateLocations", { guid }) end, 1) - end -end - --- creates the main button -function createOpenCloseButton() - buttonParameters.tooltip = (controlActive and "Close" or "Open") .. " Playmat Panel" - self.createButton(buttonParameters) + return GUIDReferenceApi end end) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("core/PlayAreaSelector") end) +__bundle_register("core/PlayAreaSelector", function(require, _LOADED, __bundle_register, __bundle_modules) +require("core/PlayAreaImageData") -- this fills the variable "PLAYAREA_IMAGE_DATA" +local optionPanelApi = require("core/OptionPanelApi") +local playAreaApi = require("core/PlayAreaApi") +local typeIndex, selectionIndex, plainNameCache + +function onSave() return JSON.encode({ typeIndex = typeIndex, selectionIndex = selectionIndex }) end + +function onLoad(savedData) + self.createButton({ + function_owner = self, + click_function = "onClick_toggleGallery", + tooltip = "Show Image Gallery", + position = {0, 0.06, 0}, + height = 1500, + width = 1500, + color = { 1, 1, 1, 0 } + }) + + local loadedData = JSON.decode(savedData) or {} + typeIndex = loadedData.typeIndex or 1 + selectionIndex = loadedData.selectionIndex or 1 + Wait.time(updatePlayAreaGallery, 0.5) + math.randomseed(os.time()) +end + +-- click function for main button +function onClick_toggleGallery() + Global.call("togglePlayAreaGallery") +end + +function onClick_defaultImage() + playAreaApi.updateSurface() + Global.call("togglePlayAreaGallery") +end + +function getDataSubTableByIndex(dataTable, index) + local loopId = 1 + for i, v in pairs(dataTable) do + if index == loopId then return v end + loopId = loopId + 1 + end + return {} +end + +function updatePlayAreaGallery() + -- get subtables + local dataForType = getDataSubTableByIndex(PLAYAREA_IMAGE_DATA, typeIndex) + local dataForSelection = getDataSubTableByIndex(dataForType, selectionIndex) + + -- get global xml to insert elements + local globalXml = UI.getXmlTable() + + -- selectable items + local itemSelection = getXmlTableElementById(globalXml, 'itemSelection') + itemSelection.children = {} + + local i = 0 + for itemName, _ in pairs(dataForType) do + i = i + 1 + table.insert(itemSelection.children, + { + tag = "Panel", + attributes = { class = "itemPanel", id = "typePanel" .. i }, + children = { + tag = "Text", + value = itemName, + attributes = { class = "itemText", id = "typeListText" .. i } + } + }) + end + + -- selectable images for that item + local playareaList = getXmlTableElementById(globalXml, 'playareaList') + playareaList.children = {} + + for i, v in ipairs(dataForSelection) do + table.insert(playareaList.children, + { + tag = "VerticalLayout", + attributes = { class = "imageBox", id = "image" .. i }, + children = { + { + tag = 'Image', + attributes = { class = "playareaImage", image = v.URL } + }, + { + tag = 'Text', + value = v.Name, + attributes = { class = "imageName" } + } + } + }) + end + + playareaList.attributes.height = round(#playareaList.children / 2, 0) * 380 + UI.setXmlTable(globalXml) + Wait.time(highlightTabAndItem, 0.1) +end + +function onClick_imageTab(_, _, tabId) + typeIndex = tonumber(tabId:sub(9)) + selectionIndex = 1 + updatePlayAreaGallery() +end + +function onClick_listItem(_, _, listId) + selectionIndex = tonumber(listId:sub(10)) + updatePlayAreaGallery() +end + +function onClick_image(_, _, id) + local imageIndex = tonumber(id:sub(6)) + local dataForType = getDataSubTableByIndex(PLAYAREA_IMAGE_DATA, typeIndex) + local dataForSelection = getDataSubTableByIndex(dataForType, selectionIndex) + local newURL = dataForSelection[imageIndex].URL + playAreaApi.updateSurface(newURL) + Global.call("togglePlayAreaGallery") +end + +function highlightTabAndItem() + -- highlight active tab + for i = 1, 5 do + local color = "#888888" + if i == typeIndex then color = "#ffffff" end + UI.setAttribute("imageTab" .. i, "color", color) + end + + -- highlight item + UI.setAttribute("typePanel" .. selectionIndex, "color", "grey") + UI.setAttribute("typeListText" .. selectionIndex, "color", "black") +end + +-- loops through an XML table and returns the specified object +---@param ui Table XmlTable (get this via getXmlTable) +---@param id String Id of the object to return +function getXmlTableElementById(ui, id) + for _, obj in ipairs(ui) do + if obj.attributes and obj.attributes.id and obj.attributes.id == id then return obj end + if obj.children then + local result = getXmlTableElementById(obj.children, id) + if result then return result end + end + end + return nil +end + +-- utility function +function round(num, numDecimalPlaces) + local mult = 10 ^ (numDecimalPlaces or 0) + return math.floor(num * mult + 0.5) / mult +end + +function maybeUpdatePlayAreaImage(scenarioName) + -- check if option is enabled + local optionPanelState = optionPanelApi.getOptions() + if not optionPanelState["changePlayAreaImage"] then return end + + -- initialize cache if nil + if not plainNameCache then + plainNameCache = {} + for i, dataForType in pairs(PLAYAREA_IMAGE_DATA) do + for j, dataForCycle in pairs(dataForType) do + for k, data in ipairs(dataForCycle) do + local plainName = getPlainName(data.Name) + + -- override plainName for all images in the "Other Images" category (except the default image) + if i == "Other Images" and data.Name ~= "Default Image" then + plainName = "Generic" + end + + if not plainNameCache[plainName] then + plainNameCache[plainName] = {} + end + table.insert(plainNameCache[plainName], data.URL) + end + end + end + end + + -- look for matching playarea image or use generic ones instead + local listOfEligibleImages = {} + if plainNameCache[scenarioName] then + listOfEligibleImages = plainNameCache[scenarioName] + else + listOfEligibleImages = plainNameCache["Generic"] + end + + -- get a random entry from the eligible list + local newImageIndex = math.random(#listOfEligibleImages) + playAreaApi.updateSurface(listOfEligibleImages[newImageIndex]) +end + +-- attempts to extract the plain scenario name from the playarea image name +function getPlainName(str) + -- remove prefix type 1 + str = str:gsub("%w+%-%w%s%-%s", "") -- matches "II-B - Thousand Shapes of Horror 1" + + -- remove prefix type 2 + str = str:gsub("%w+%-%w%s", "") -- matches "59-Z Congress of Keys 1" + + -- remove prefix type 3 + str = str:gsub("%w+%s%-%s", "") -- matches "III - The Secret Name 4" + + -- remove prefix type 4 + str = str:gsub("%?+%s%-%s", "") -- matches "??? - Fatal Mirage" + + -- remove suffix (numbering) + str = str:gsub("%s%d+", "") + + return str +end +end) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +end +end) +__bundle_register("core/PlayAreaImageData", function(require, _LOADED, __bundle_register, __bundle_modules) +PLAYAREA_IMAGE_DATA = { + ["Official Campaigns"] = { + ["Night of the Zealot"] = { + { + Name = "I - The Gathering 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725443007/D34B55D2637EF1DF22839D12F9CF74F92F8EB486/" + }, + { + Name = "III - The Devourer Below 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725443203/FBE04C8B89F79D18C6D29C28DC3B292A5A3A3DEB/" + }, + { + Name = "III - The Devourer Below 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725443345/FD10BC04B3F3AFD710C3C12EE14F85F9AFB265E6/" + } + }, + ["The Dunwich Legacy"] = { + { + Name = "I-A - Extracurricular Activity 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725401398/AC55F0754B7E4A39796A6F2236012AE03DA55E20/" + }, + { + Name = "I-A - Extracurricular Activity 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725401658/9F3ED6E256818C4528D55980B9D7E44B87170A4F/" + }, + { + Name = "I-A - Extracurricular Activity 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725401870/FE29404D9D93BE2735D41C115DDD9708A0931F3E/" + }, + { + Name = "I-B - The House Always Wins 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725402059/4C4A50D259ECFD4DFB94FABB9FA2AD3AABDCA0CA/" + }, + { + Name = "I-B - The House Always Wins 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725402263/8B0C981B78E803B3BFD64AC874F315B6810E579B/" + }, + { + Name = "I-B - The House Always Wins 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725402460/8599D17306C644D75D189591BC6D57C2F27F9E35/" + }, + { + Name = "I-B - The House Always Wins 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725402641/777865B25BCF86C2EFEAE232AFBC31561D12AE0F/" + }, + { + Name = "II - The Miskatonic Museum 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725402804/A44E68AC08E6568A757429B29E71C703B76FA159/" + }, + { + Name = "II - The Miskatonic Museum 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725403000/B28D46D5B7BCE9EA9BF27D3A0A932393D8258A76/" + }, + { + Name = "III - The Essex County Express", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725403150/956BE4B5C25805E57C8FC5CF28A94BD7EF07CA54/" + }, + { + Name = "IV - Blood on the Altar 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725403290/07DD1508BA880AD1212A820BC29471C48DC90C53/" + }, + { + Name = "IV - Blood on the Altar 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725403456/A74398E8CCD78657C2555832A3B340723E8C9117/" + }, + { + Name = "IV - Blood on the Altar 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725403636/CD89D7D9CC020F41D5AD02D54E308877583EC45F/" + }, + { + Name = "IV - Blood on the Altar 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725403818/AEFAC50DAC82271BCACC53B8FF69B5B094FA1078/" + }, + { + Name = "V - Undimensioned and Unseen 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725403955/E7C566E536CF6E910DB654FC1DBF4838F2BAF899/" + }, + { + Name = "V - Undimensioned and Unseen 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725404127/F92F123BBD3D857C579B9284988C3AFFBCD84B2B/" + }, + { + Name = "V - Undimensioned and Unseen 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725404273/7F8CFE6785BD74BB8D5E34C204AFB8AA580CA3E3/" + }, + { + Name = "V - Undimensioned and Unseen 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725404424/C2AE08371CF2DE2777791BBD4AEF446E50532382/" + }, + { + Name = "VI - Where Doom Awaits 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725404578/A520CE0F6B0C8591A48ADEF34E68B46AFC2BC83B/" + }, + { + Name = "VI - Where Doom Awaits 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725404740/1FF9EF375BDBB73CA8F0A1562F215692AAEA7131/" + }, + { + Name = "VI - Where Doom Awaits 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725404914/5473D20CE0122F55EEADB16C4353D4EDD91E440E/" + }, + { + Name = "VI - Where Doom Awaits 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725405088/A0AA8CB864747152763D434D0737D81EB515E71B/" + }, + { + Name = "VI - Where Doom Awaits 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725405247/FAF408DAAD4FC72142DFDFE5FCEA4B84293AA72C/" + }, + { + Name = "VII - Lost in Time and Space 1", + URL = "https://i.ibb.co/rtTpbDx/Dunwich-8-Lost-in-Time-amp-Space.jpg" + }, + { + Name = "VII - Lost in Time and Space 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725405746/771BAE40F98BB16F8D011FA794E4AC0095131AF1/" + }, + { + Name = "VII - Lost in Time and Space 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725406148/D15D56EA34F27C651D7E7AC202DA4DEBE395E310/" + } + }, + ["The Path to Carcosa"] = { + { + Name = "I - Curtain Call", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725426327/41F6192EDCFFD6AAE2EE44C2BB5708B19D7464A9/" + }, + { + Name = "II - The Last King 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725426499/114EAEA245AC51CA219364AF26341E7F7E649A7D/" + }, + { + Name = "II - The Last King 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725426683/A2762E95DD79D7A7BC749925166BBFC18B62EF3B/" + }, + { + Name = "II - The Last King 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725426818/A6A20773EA95CE3D9896B22E317A0E1ACCA911F0/" + }, + { + Name = "III - Echoes of the Past", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725427005/25F51DE4B1F33C16A0E68C929E5002F0C4520A37/" + }, + { + Name = "IV - The Unspeakable Oath 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725427178/9575E4F6E53DDAD2D3E61684AB9757B04E1EF787/" + }, + { + Name = "IV - The Unspeakable Oath 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725427342/199A6C6411992ACFB8A417E86207FE6CE956EB97/" + }, + { + Name = "IV - The Unspeakable Oath 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725427501/48525BCDFA281947FA9ED26507BC1F81C07056E8/" + }, + { + Name = "V - A Phantom of Truth 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725427681/F72B02FF1A5E58CBCB0E53C8455310AF37064477/" + }, + { + Name = "V - A Phantom of Truth 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725427848/215A757FF28317EB3EF7CF1F9CAE6F1CFF735091/" + }, + { + Name = "VI - The Pallid Mask 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725428067/D46BAD80B112156A2D3DEFF247A74C74F27DDA12/" + }, + { + Name = "VI - The Pallid Mask 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725428250/464681CF59770BFD493A0D672C7CB70BA8CD3499/" + }, + { + Name = "VII - Black Stars Rise 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725428431/4766E1A4893E0EF16B576749B73CE449F10DA20C/" + }, + { + Name = "VII - Black Stars Rise 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725428896/05ED3D08F29C8E6EC080F0615DE130F2A687A9AC/" + }, + { + Name = "VIII - Dim Carcosa 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725429052/BA81DBDE7A12B993CB8B7001CA93095AD0512449/" + }, + { + Name = "VIII - Dim Carcosa 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725429235/C5C939E0213575B5EDCA6723D209892071DDE4B5/" + } + }, + ["The Forgotten Age"] = { + { + Name = "I - The Untamed Wilds 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725446729/7F5E48BC9A028AE5117231364F2D5B433A62239A/" + }, + { + Name = "I - The Untamed Wilds 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725446946/55C374DC5BE3620CB0D5BCA379EA55CF471D09B3/" + }, + { + Name = "I - The Untamed Wilds 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725447172/6EAE2CFD3AC552CFB744C75E4E26A79264DE17D3/" + }, + { + Name = "I - The Untamed Wilds 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725447409/FCF48C94D90F94FBFFD674B0650E288E7312C441/" + }, + { + Name = "I - The Untamed Wilds 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725447579/F7C3FB9E31147430C1384684887FC66E616D0302/" + }, + { + Name = "II - The Doom of Eztli 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725447752/44EF68E1BF3C2D9DCD5306DD90B4CCCFBE03891C/" + }, + { + Name = "II - The Doom of Eztli 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725448027/F5F14EC590C33BC87D8F0CFF43D7E4DF80D61133/" + }, + { + Name = "II - The Doom of Eztli 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725448215/BFD9D940DB8EC9AC8D818C48BBAE3338A8E48A3B/" + }, + { + Name = "III - Threads of Fate", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725448393/67F3BE7DC1BEC807A17D3F8914328D408856E019/" + }, + { + Name = "IV - The Boundary Beyond 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725448568/3C268415A47430CEEC3F9BFB216EF57E3DBF820A/" + }, + { + Name = "IV - The Boundary Beyond 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725448701/3FA23DCA30505AD4C27D8914740AD3138C01122C/" + }, + { + Name = "IV - The Boundary Beyond 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725448863/266C3320AC326C30F08FBC11A95567E1249E7FB7/" + }, + { + Name = "V - Heart of the Elders 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725449019/A6CC459ACA004C33DD9605BE8382437F6BBE24F7/" + }, + { + Name = "V - Heart of the Elders 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725449150/241FA88572B6B4F652D7FC6D1EDB23DF94E3199C/" + }, + { + Name = "V - Heart of the Elders 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725449310/DBD731498FAB399A4155F7B64F8710BF5FBB5C1F/" + }, + { + Name = "VI - The City of Archives 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725449473/527CB6470F508D4E1F1E4AFC8A0D3AB0A65E046E/" + }, + { + Name = "VI - The City of Archives 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725449630/A8E933F79A646990155CC18A2143B3BC16222750/" + }, + { + Name = "VI - The City of Archives 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725449814/30BB7E4F8D9F1571A420372E78ACAF2D7792811F/" + }, + { + Name = "VII - The Depths of Yoth 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725449962/D69532827DFF2D654F8A606B7917D593F52D7624/" + }, + { + Name = "VII - The Depths of Yoth 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725450085/479A8A1BDD7BE80B43AE4F2C14DFA811D7B28482/" + }, + { + Name = "VII - The Depths of Yoth 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725450258/E617F5A78DFBE913652E20BF97D38B91087FACAE/" + }, + { + Name = "VIII - Shattered Aeons 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725450415/5631152D4830C00DB8D8EB2163CE773542A62C79/" + }, + { + Name = "VIII - Shattered Aeons 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725450556/C3000D020B0C32B4DA3420AEE5E286893453FC49/" + } + }, + ["The Circle Undone"] = { + { + Name = "0 - Disappearance at the Twilight Estate", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725457506/6E228F87CEDCD3A0CFA28B680C266B4C68C7682B/" + }, + { + Name = "I - The Witching Hour", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725457706/D0FDC0E9287C343745AE6135352194D654D98B64/" + }, + { + Name = "II - At Death's Doorstep 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725457864/3106851EC93B1FC01311BD68F02145BA2FD720B0/" + }, + { + Name = "II - At Death's Doorstep 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725458037/155EB572CF28F09A64A021CAC3A3219C31B2CD49/" + }, + { + Name = "II - At Death's Doorstep 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725458187/482CC6730F267061A055D6FD402603BC642A9635/" + }, + { + Name = "III - The Secret Name 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725458373/769D67103FACFB94E77465E85DBB2A250284B59B/" + }, + { + Name = "III - The Secret Name 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725458592/D70CE9B1AD7158AF206A25777A8BA6F284587A83/" + }, + { + Name = "III - The Secret Name 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725458848/2FC0D5AFFA97AB5E80244F1ED711036B2149B0EE/" + }, + { + Name = "III - The Secret Name 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459026/A1A5B18ECB38985A35781CBDFF53935541720AF4/" + }, + { + Name = "IV - The Wages of Sin 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459182/46870E1DBE623E93E675CB2D3C1E959B40CDCC83/" + }, + { + Name = "IV - The Wages of Sin 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459344/9552699A8CEC5E7BF22843990394BB977539CBE0/" + }, + { + Name = "IV - The Wages of Sin 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459466/9B6B55A6F76668929B6D6B1DD5FDAE7CEE427A1C/" + }, + { + Name = "IV - The Wages of Sin 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459609/054A60BDCD266C1A53F29067CFC83D0561666FE4/" + }, + { + Name = "IV - Wages of Sin 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459714/11B3D734AC5229A0DEA5372CD50F5C7841F9D5A0/" + }, + { + Name = "V - For the Greater Good 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459829/9AA9563CCD72A8593BDE3C6D1299E96325ECE747/" + }, + { + Name = "V - For the Greater Good 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725459933/13A103B7BC0ABB611F6A8E61D033C6AD95EED4D4/" + }, + { + Name = "V - For the Greater Good 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725460088/C88DDC5CE898ACEF360B8AD72E05F15BF84DE171/" + }, + { + Name = "V - For the Greater Good 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725460182/C086EDA78636624FC9C4EA1DBCD8F1D39B7A6A89/" + }, + { + Name = "VI - Union and Disillusioned", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725460382/8EFB842A623A2D1E6D0E915268A207A5D7DFC6D4/" + }, + { + Name = "VII - In the Clutches of Chaos 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725460586/7E156BF93F211BC425CD37ED273FCC84FF1F4C4D/" + }, + { + Name = "VII - In the Clutches of Chaos 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725460740/72A39A0FACA806EF2E0A4E31AEDF6D8FCDF1A876/" + }, + { + Name = "VII - In the Clutches of Chaos 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725460884/5716F6E2CB3F8D14FA5B7B806555896088696057/" + }, + { + Name = "VIII - Before the Black Throne 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725461042/DFF7A992A9440E58CE32D4B8A96A02A8F785AC90/" + }, + { + Name = "VIII - Before the Black Throne 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725461161/18902B2F74C9D70F5EA79A34521E3FDEDEFC893D/" + } + }, + ["The Dream-Eaters"] = { + { + Name = "I-A - Beyond the Gates of Sleep 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725465733/828EE1FF16928EA0426BC68AAED4B9AA6B6FBB49/" + }, + { + Name = "I-A - Beyond the Gates of Sleep 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725465934/35A85E9056B7A212AC39E7043FDF546A425E62F2/" + }, + { + Name = "I-A - Beyond the Gates of Sleep 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725466105/05D29313D2559B6683465A7034DE7B07DE675420/" + }, + { + Name = "I-B - Waking Nightmare", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725466267/16FAE20612ED0A6A65836DD1B014AC5A801A172F/" + }, + { + Name = "II-A - The Search for Kadath 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725466425/03CCD5F24999CC6CC905CB2FD021DB67D7769163/" + }, + { + Name = "II-A - The Search for Kadath 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725466615/085ACE95FEF03D2BE91BAD5E1864E1D0263DCCC0/" + }, + { + Name = "II-A - The Search for Kadath 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725466802/83861733568FCA9673B6F5EFE0C9D3337E3DFD27/" + }, + { + Name = "II-A - The Search for Kadath 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725466941/D4FDE1FE722DC6B03AD38D797F2E00531908583D/" + }, + { + Name = "II-A - The Search for Kadath 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725467396/C9A476395B9326142BBDBD06D22A14C83EAD2161/" + }, + { + Name = "II-B - A Thousand Shapes of Horror 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725467582/5EB69F3A3F20B312FE3FE3C64FEA96200EE51563/" + }, + { + Name = "II-B - A Thousand Shapes of Horror 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725467791/5FE437C821641EDD703D336205A37F8F0CACFD38/" + }, + { + Name = "II-B - A Thousand Shapes of Horror 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725467946/841CEC1D8B56C1CA52B5558E8E49CE04D95D2F4A/" + }, + { + Name = "III-A - Dark Side of the Moon 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725468100/2DD1038163AD5DAA759EA4BE49DB82A2718E931F/" + }, + { + Name = "III-A - Dark Side of the Moon 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725468293/E8145D05833864EEC70AF9AC401039D8E8AFDE3E/" + }, + { + Name = "III-B - Point of No Return 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725468506/1F2E3D425A4D97ADBCA59B4A9401C411F91F875F/" + }, + { + Name = "III-B - Point of No Return 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725468694/8631E68BA7CE69BECF1D476A03CBDC79112A60BF/" + }, + { + Name = "IV-A - Where the Gods Dwell", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725468880/2C8A9459149D33E526FDC4B68A063475305C15F8/" + }, + { + Name = "IV-B - Weaver of the Cosmos 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725469060/9E6AF9E0D68EC0F44B82968CE99E433A25A0E0C4/" + }, + { + Name = "IV-B - Weaver of the Cosmos 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725469224/8C969B8ABAEE6CFFEF165C2E4BBA0E7E9B33AA1A/" + }, + { + Name = "IV-B - Weaver of the Cosmos 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725469417/A94C14A64836FB9B5FAFAC5B790C51441F8D475F/" + } + }, + ["The Innsmouth Conspiracy"] = { + { + Name = "I - The Pit of Despair 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725473070/57FEAA8135F62DBAD52E2AAB562EF45EB9A0194A/" + }, + { + Name = "I - The Pit of Despair 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725473257/FEC6F9FAA1CC656BFD5861F58E4751BC94AB0424/" + }, + { + Name = "II - The Vanishing of Elina Harper 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725473424/B0E2BFA9C7F61A5B7A72CD11AD1AFF4A070AFFA1/" + }, + { + Name = "II - The Vanishing of Elina Harper 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725473570/D28C2DA099D656116A0D7BAA8B874E4ED6B6B50E/" + }, + { + Name = "II - The Vanishing of Elina Harper 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725473731/EE9BED3522A1B7CD5E394A67AD7F692DB709A9B5/" + }, + { + Name = "II - The Vanishing of Elina Harper 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725473874/0A85B2CE9A3FFB048C932E1B014B2986D5D42A1B/" + }, + { + Name = "II - Vanishing of Elina Harper 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725474056/C82E467216DF747AA954C614D7D0B8F649163EDA/" + }, + { + Name = "III - In Too Deep 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725474234/C6A72CDEFCDF1F2A3C6036F349B5F368EFDACA2E/" + }, + { + Name = "III - In Too Deep 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725474398/752D0CE313C58A5B1C3181503C841EB91D041492/" + }, + { + Name = "III - In Too Deep 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725474562/308687DFB9B0F2286A9248698FD38C0BF66B89ED/" + }, + { + Name = "IV - Devil Reef 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725474717/DCEC44D2F7F22A950B3CF52C81C8F931710EFADC/" + }, + { + Name = "IV - Devil Reef 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725474883/04913E71194BF766DFF2DF8646251AC461A35FE2/" + }, + { + Name = "V - Horror in High Gear 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725475029/FAA34C92FA800E8DDF6449B1C48FCC7468D783BD/" + }, + { + Name = "V - Horror in High Gear 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725475133/BC689B58040F74E7DB44CFD8F3F2BF32FE4081E1/" + }, + { + Name = "V - Horror in High Gear 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725475307/53ADF5E957F88F1DDCE46828547E5808C3CAEFD7/" + }, + { + Name = "V - Horror in High Gear 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725475402/C41EB1D2F8549669DD4323A339F5EC594996816C/" + }, + { + Name = "VI - A Light in the Fog 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725475509/C526C9A3AC34195ACF6161D4821D1424A8A288B4/" + }, + { + Name = "VI - A Light in the Fog 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725475660/2C67D57967F300BD1FE1AFC08C49EBCF4A88D11C/" + }, + { + Name = "VII - The Lair of Dagon 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725476055/4BC221648012F7A7A37B2F65929705E973FF9CE3/" + }, + { + Name = "VII - The Lair of Dagon 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725476271/3F9CF0FE8ACCE12E26ACA5D5777177A10B49D6DA/" + }, + { + Name = "VIII - Into the Maelstrom 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725476474/AF8695342FBCE6F6BC7B353C86C6006F1629F43A/" + }, + { + Name = "VIII - Into the Maelstrom 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725476643/CB175401ECDF04F97334CBF8AE7EC76A43A85735/" + } + }, + ["Edge of the Earth"] = { + { + Name = "I - Ice and Death 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725482152/322E07021DC78455859C860D8B1574F1BA2E0F68/" + }, + { + Name = "I - Ice and Death 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725482327/BD14DDE856A2062A939F860743FFF15F8B0BFF5A/" + }, + { + Name = "I - Ice and Death 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725482520/0FB5AC83DF448994EC0A866ACF6AF57ADCC59C82/" + }, + { + Name = "??? - Fatal Mirage", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725481929/A35EDF11BD6AF52784BA6611C363CBBB373622EE/" + }, + { + Name = "II - Forbidden Peaks 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725482688/B50455616DFC14FE0B9398DBE2A3A1AE25040516/" + }, + { + Name = "II - Forbidden Peaks 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725482839/17786225AA56E75E558491E7E710F555AF3E5799/" + }, + { + Name = "III - City of Elder Things 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725483014/B74378E02A1A99F544CD98141EF62193A2A612FB/" + }, + { + Name = "III - City of Elder Things 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725483208/CDFF7A2D404485DE2B4C4ED54B34E197515F0094/" + }, + { + Name = "IV - The Heart of Madness 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725483349/A96BC4AA73C71FE86EF38110236BAEF710C00EE2/" + }, + { + Name = "IV - The Heart of Madness 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725483528/5BF0DD740C5D43EFBFEF0436EB35FF9DA748FA5E/" + } + }, + ["The Scarlet Keys"] = { + { + Name = "5-A Riddles and Rain", + URL = "http://cloud-3.steamusercontent.com/ugc/2037357792057358580/E9E5FE4028C08B3D4883406821221B73C8B5B2C7/" + }, + { + Name = "11-B Dead Heat", + URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566443853/CAD7771D90141EA6D5FFAFE1EC5E7AD9647C82DB/" + }, + { + Name = "16-D Sanguine Shadows", + URL = "http://cloud-3.steamusercontent.com/ugc/2037357792057358704/4A7261EB31511467CBC46E876476DD205F528A4B/" + }, + { + Name = "21-F Dealings in the Dark", + URL = "http://cloud-3.steamusercontent.com/ugc/2037357792057358816/7C9FE4C34CD0A7AE87EF054742D878F310C71AA7/" + }, + { + Name = "28-I Dancing Mad", + URL = "http://cloud-3.steamusercontent.com/ugc/2037357792056955518/EAB857DD5629EC6A3078FB0A3A703B85B5F514B9/" + }, + { + Name = "23-K On Thin Ice", + URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444026/EB5628E254AE25DA89A9C999EAAD995ECF67068E/" + }, + { + Name = "38-N Dogs of War", + URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444199/194FD9A713907197471A55411AE300B62C5F5278/" + }, + { + Name = "46-Q Shades of Suffering", + URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444330/3ED2CCE95DE933546E1B5CBBF445D773E6D65465/" + }, + { + Name = "56-Y Without a Trace", + URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444450/FE4C335B0F72E83900A4EED0FD1A1D304D70D6B7/" + }, + { + Name = "59-Z Congress of Keys 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444576/5BB32469ED412D59BB0A46E57D226500B1D0568B/" + }, + { + Name = "59-Z Congress of Keys 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2038485431566444690/B01A1FEAB57473D9B6DF11B92D62C214AA1C2C02/" + } + } + }, + ["Official Scenarios"] = { + ["The Blob That Ate Everything"] = { + { + Name = "The Blob That Ate Everything 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725489144/53A920E2D1A9F41937B21B0A5B1A4E450ABFC460/" + }, + { + Name = "The Blob That Ate Everything 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725488396/9CC07F923BD1CBFC4BB06DD2CC6747D2C3541737/" + } + }, + ["Carnevale of Horrors"] = { + { + Name = "Carnevale of Horrors 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725496678/91164AF7C2ED06A3E50225794DE9C5E92D1D3B04/" + }, + }, + ["Curse of the Rougarou"] = { + { + Name = "Curse of the Rougarou 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725494513/DF8E92EA5C1131A0C5D8FA06BFF6FD239412E11C/" + }, + { + Name = "Curse of the Rougarou 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725494706/5D2EDE5D07DDA6E5781DB70D13F9A17EF26D36F2/" + }, + { + Name = "Curse of the Rougarou 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725494855/44A751CB66CBE4D75E67A53FC392696F6A3BFD4C/" + }, + { + Name = "Curse of the Rougarou 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725495011/ADD3431B383236BCF057C1573CEF7E43F39FDE72/" + }, + { + Name = "Curse of the Rougarou 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725495146/79159992D5002AD3D7D23ED82D9BB76D437B94C3/" + } + }, + ["Guardians of the Abyss"] = { + { + Name = "Guardians of the Abyss 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725490870/9C03B2974D7776B8E2AFEEF025756D1885AF0AE3/" + }, + { + Name = "Guardians of the Abyss 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725491039/E81F05AB9C802F57F4D9F7229CE3D53231ACB70D/" + }, + { + Name = "Guardians of the Abyss 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725491202/384AA7DBA614B61C46D57EF5105A96F25F938B74/" + }, + { + Name = "Guardians of the Abyss 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725491392/1C8FF752DF97F362BA8937BFEC65140AE3ADF8A6/" + }, + { + Name = "Guardians of the Abyss 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725491512/06B1DCA10B44FF86567CEFCC135D619648CE5F19/" + }, + { + Name = "Guardians of the Abyss 6", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725491658/5446E231AEF72CF4F7B4892116671FF7175EFA0F/" + } + }, + ["Labyrinths of Lunacy"] = { + { + Name = "Labyrinths of Lunacy 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725489685/D2D342844212C8A21E030418935A227C2E3279DB/" + }, + { + Name = "Labyrinths of Lunacy 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725489820/E3E18B0940C2604F62E564AD43F178FF9F13B3C9/" + }, + { + Name = "Labyrinths of Lunacy 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725489972/6A34CF53190EAAAF57C31FB97A3C2ACBD27FEE40/" + } + }, + ["Murder at Excelsior Hotel"] = { + { + Name = "Murder at Excelsior Hotel 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725488868/7F7FE8BB3C7E3645B4377F86366C6073CDB8F113/" + }, + { + Name = "Murder at Excelsior Hotel 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725489144/53A920E2D1A9F41937B21B0A5B1A4E450ABFC460/" + } + }, + ["War of the Outer Gods"] = { + { + Name = "War of the Outer Gods", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725487627/43A19A6D97A6DA63A487EB247EE95884E2D9F5FD/" + } + } + }, + ["Fan-Made Campaigns"] = { + ["Cyclopean Foundations"] = { + { + Name = "I - Lost Moorings 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725499518/02DA17FC9D6A1174E484977269F44AE6995C6F7C/" + }, + { + Name = "I - Lost Moorings 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725499680/1556F230B59D42FCA47A5A87135330B03C231E92/" + }, + { + Name = "II - Going Twice", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725499855/1220C81273EFA6F36C2AEBA713E31DE1E2F92454/" + }, + { + Name = "III - Private Lives", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725500069/452E4427185A7F1AFB3F2CBB263DC55B6A144D49/" + }, + { + Name = "IV - Crumbling Masonry 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725500260/94FE8506AB13CA51F087ABF155799F73BCBAB1E9/" + }, + { + Name = "IV - Crumbling Masonry 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725500508/04B6C6D8845BF5411D28C79D185EAF6FFBB409F5/" + }, + { + Name = "V - Across Dreadful Waters", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725500640/447069BBBF70474439D3CC4F970F6617C8B738F4/" + }, + { + Name = "VI - Blood From Stones", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725500803/23C46C5F08E3F911F565D9EC38CFACFFAA5F5B11/" + }, + { + Name = "VII - Pyroclastic Flow 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725500952/804B531E517B1AD2294E304AA6F72F8CC3E6FC4E/" + }, + { + Name = "VII - Pyroclastic Flow 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725501115/E771289EB848A695DF47C405300B1EC7CA925009/" + }, + { + Name = "VIII - Tomb of Dead Dreams 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725501272/CAE6C4185540F3F8FFA2A8E37458A5B80DBD70FC/" + }, + { + Name = "VIII - Tomb of Dead Dreams 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725501415/DA9C07488DA2753FF5621D1731A84D6D0B1CC1BD/" + }, + { + Name = "VIII - Tomb of Dead Dreams 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725501813/030E5DB9F8F6C5F092EFDF2C42AD631318B0923A/" + } + }, + ["Dark Matter"] = { + { + Name = "I - Tatterdemalion 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725504118/AC852F478D5BDA0C8A54A499B07A66E872560EC7/" + }, + { + Name = "I - Tatterdemalion 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725504319/5B24BB2080AC76D836708AABC1BC90FD884F043D/" + }, + { + Name = "I - Tatterdemalion 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725504461/73E4632A2EAAFA918924E60A64B03838CA6DDD77/" + }, + { + Name = "I - Tatterdemalion 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725504602/6DB8F081CC907A0D6F364E5045BB7E8FADA91B5C/" + }, + { + Name = "II - Electric Nightmares 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725504770/C6FB5FDD153ACD07565259AE013FDC7FF567037D/" + }, + { + Name = "II - Electric Nightmares 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725504974/80E29EA68B88B78CDADC475998E832C7245409F4/" + }, + { + Name = "IIIa - Lost Quantum", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725505211/07E1254B1C601496E47B7E60B736D1699AAD38C8/" + }, + { + Name = "IIIb - In the Shadow of Earth 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725505419/7E8B50470AD6AD27429B58A42271755289FC90EB/" + }, + { + Name = "IIIb - In the Shadow of Earth 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725505603/DCD5B255FE66F8D8F47FB6C928D80583F3F950AC/" + }, + { + Name = "IIIc - Strange Moons", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725506071/78597C2FBE2DE55BFC86AEC9F42FE1B20D26544C/" + }, + { + Name = "V - Fragment of Carcosa 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725506388/A299C8D58171A6D78CF55D911C2B81C63D88444F/" + }, + { + Name = "V - Fragment of Carcosa 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725506567/C36509CB6520803355E7AE1E9EC8CD35641B28C8/" + }, + { + Name = "VI - Starfall 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725506714/327D0E565039B7FA9157FDA04A302DF178C64C44/" + }, + { + Name = "VI - Starfall 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725506809/E637DAAD8BEB00E4305756D101E1E6B370CB1644/" + }, + { + Name = "VI - Starfall 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725506978/A17CD45A7770BAC7196218ADD2FB6CEB0E7A0E6B/" + } + }, + ["The Ghosts of Onigawa"] = { + { + Name = "I - The Ghosts of Onigawa", + URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-01.png?raw=true" + }, + { + Name = "II - In The Shadow Of Mount Kokoro", + URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-02.png?raw=true" + }, + { + Name = "III - The Onigawa River", + URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-03.png?raw=true" + }, + { + Name = "IV - The Crimson Butterfly", + URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-04.png?raw=true" + }, + { + Name = "V - The Koi Conspiracy", + URL = "https://github.com/ArkhamDotCards/theghostsofonigawa/blob/main/product/onigawa-playmat-05.png?raw=true" + } + } + }, + ["Fan-Made Scenarios"] = { + ["Side Scenarios (FM)"] = { + { + Name = "Consternation on the Constellation", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725512402/37F34A14CEEA9D2F889F7B97B065C0193F268FE1/" + }, + { + Name = "Symphony of Erich Zann", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725512613/B23EA91E9489E0DDE250DD33F9AF1A12EEE52E0C/" + } + } + }, + ["Other Images"] = { + ["Arkham Locations"] = { + { + Name = "Downtown 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725516086/53F48F8AA9CFE4BF544BF03A616AC12A5344615C/" + }, + { + Name = "Downtown 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725516316/1A337F5D66D7B5F59C66F465710717340B1D56AB/" + }, + { + Name = "Eastside 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725516542/09B4BE1E5487C3B11C0178B0B6FFD51620BE6AA6/" + }, + { + Name = "Eastside 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725516744/9B7F54E99D9B85884D5E363B97B25DA2DD3F03CC/" + }, + { + Name = "French Hill", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725516949/8BFEF09FDB6608173280F887C1BA3906427678CC/" + }, + { + Name = "Generic 1", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725517086/93E00AA823FBA1C6531BBA143408E1E7D89BE3F0/" + }, + { + Name = "Generic 2", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725517270/1450BCB6698058F833FAE770D31D0D064B82F5C2/" + }, + { + Name = "Generic 3", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725517434/5B529D9DEF3550E898744CE19AAD4CC0AB3F12DF/" + }, + { + Name = "Generic 4", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725517622/FE0C331881B776E66D3A2C60D70147A0CABFDAC6/" + }, + { + Name = "Generic 5", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725517833/A123F1A2D1B8BE960AAB371D9FD06F27C282CB9B/" + }, + { + Name = "Generic 6", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725518026/10D4F06C8A1AEC3ACAEC5C3B9DA142D3BA5818FE/" + }, + { + Name = "Generic 7", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725518144/72D4A60264C2DD201AAA5FFDCA95C6FF04EF8AC8/" + }, + { + Name = "Generic 8", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725518292/A1848A68389FBECA5BC847F90A921C18133B17D6/" + }, + { + Name = "Merchant District", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725518454/BD6694DCCD12E31997202B2020B4A29FDC96FC7B/" + }, + { + Name = "Miskatonic University", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725518846/79D6BEB0D8C274E3D308A67CD3181418B02D3A7E/" + }, + { + Name = "Northside", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725519012/E4B527768AFEFE0E4FB4518CA2AFDD69A98AB5D1/" + }, + { + Name = "Rivertown", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725519190/7A9A09861EECE2D98B5C1EB694E88C2073ABDFDF/" + }, + { + Name = "Southside", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725519353/FE43349A25231F48662309FEB331DB2C418A5E80/" + }, + { + Name = "Uptown", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725519551/3630457608AD2DB605EC4BCF4332C1D0983305C0/" + } + }, + ["Default Image"] = { + { + Name = "Default Image", + URL = "http://cloud-3.steamusercontent.com/ugc/998015670465071049/FFAE162920D67CF38045EFBD3B85AD0F916147B2/" + } + }, + ["Unsorted"] = { + { + Name = "Kingsport", + URL = "http://cloud-3.steamusercontent.com/ugc/2279446315725522594/1EA2C0AF5D4D346AD3FFDC38215BB20AAA72CE8D/" + }, + { + Name = "Devil", + URL = "http://cloud-3.steamusercontent.com/ugc/2115062479282248687/DD84A3CB3C4A475A5D093CB413A16A5CEA5FBF79/" + }, + { + Name = "Mystic Board", + URL = "http://cloud-3.steamusercontent.com/ugc/2115062479282248488/EC27B1215F558A39954C27477D8B4F916CA211E5/" + } + } + } +} +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Playmat Image Swapper b7b45b.yaml b/unpacked/Custom_Token Playmat Image Swapper b7b45b.yaml index 9f155fbba..8e87a947e 100644 --- a/unpacked/Custom_Token Playmat Image Swapper b7b45b.yaml +++ b/unpacked/Custom_Token Playmat Image Swapper b7b45b.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.374519944 - g: 0.374519944 - r: 0.374519944 + b: 0.37452 + g: 0.37452 + r: 0.37452 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: https://i.imgur.com/gs1mtXJ.png - WidthScale: 0.0 + WidthScale: 0 Description: Allows changing of the playmat image. Provide URL to the image or leave empty for default image. DragSelectable: true @@ -30,7 +30,7 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true LuaScript: !include 'Custom_Token Playmat Image Swapper b7b45b.ttslua' -LuaScriptState: '' +LuaScriptState: '{"selectionIndex":1,"typeIndex":1}' MeasureMovement: false Name: Custom_Token Nickname: Playmat Image Swapper @@ -45,11 +45,11 @@ Transform: posX: -10.36 posY: 1.5 posZ: 17.06 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 0.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.5 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Resources 4406f0.ttslua b/unpacked/Custom_Token Resources 4406f0.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Resources 4406f0.ttslua +++ b/unpacked/Custom_Token Resources 4406f0.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Resources 4406f0.yaml b/unpacked/Custom_Token Resources 4406f0.yaml index dc5d82383..96837a47c 100644 --- a/unpacked/Custom_Token Resources 4406f0.yaml +++ b/unpacked/Custom_Token Resources 4406f0.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663401115/EAA6D40FC6E15204BBE551BCDED35CC8C75111BF/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -42,11 +42,11 @@ Transform: posX: -59.82 posY: 1.52 posZ: 7.62 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Resources 816d84.ttslua b/unpacked/Custom_Token Resources 816d84.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Resources 816d84.ttslua +++ b/unpacked/Custom_Token Resources 816d84.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Resources 816d84.yaml b/unpacked/Custom_Token Resources 816d84.yaml index 629832d25..70598870f 100644 --- a/unpacked/Custom_Token Resources 816d84.yaml +++ b/unpacked/Custom_Token Resources 816d84.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663401115/EAA6D40FC6E15204BBE551BCDED35CC8C75111BF/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -42,11 +42,11 @@ Transform: posX: -59.8 posY: 1.52 posZ: -24.57 - rotX: 0.0 - rotY: 280.0 - rotZ: 0.0 + rotX: 0 + rotY: 280 + rotZ: 0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Resources a4b60d.ttslua b/unpacked/Custom_Token Resources a4b60d.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Resources a4b60d.ttslua +++ b/unpacked/Custom_Token Resources a4b60d.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Resources a4b60d.yaml b/unpacked/Custom_Token Resources a4b60d.yaml index 45df1986e..06ea179f7 100644 --- a/unpacked/Custom_Token Resources a4b60d.yaml +++ b/unpacked/Custom_Token Resources a4b60d.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663401115/EAA6D40FC6E15204BBE551BCDED35CC8C75111BF/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -46,7 +46,7 @@ Transform: rotY: 280.0 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Resources cd15ac.ttslua b/unpacked/Custom_Token Resources cd15ac.ttslua index a59a46ab9..3e8cdcc2f 100644 --- a/unpacked/Custom_Token Resources cd15ac.ttslua +++ b/unpacked/Custom_Token Resources cd15ac.ttslua @@ -63,6 +63,8 @@ function onLoad(savedData) position = { 0, 0.06, 0.1 } elseif name == "Horror" then position = { -0.025, 0.06, -0.025 } + elseif name == "Elder Sign Counter" or name == "Auto-fail Counter" then + position = { 0, 0.1, 0 } else position = { 0, 0.06, 0 } end diff --git a/unpacked/Custom_Token Resources cd15ac.yaml b/unpacked/Custom_Token Resources cd15ac.yaml index 67b9a39c1..85a013bde 100644 --- a/unpacked/Custom_Token Resources cd15ac.yaml +++ b/unpacked/Custom_Token Resources cd15ac.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 5.0 + MergeDistancePixels: 5 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/949599153663401115/EAA6D40FC6E15204BBE551BCDED35CC8C75111BF/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Left click - Increase Right click - Decrease' @@ -46,7 +46,7 @@ Transform: rotY: 280.0 rotZ: 0.0 scaleX: 0.26 - scaleY: 1.0 + scaleY: 1 scaleZ: 0.26 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Search-A-Card 24051a.ttslua b/unpacked/Custom_Token Search-A-Card 24051a.ttslua index cb95beffb..d5a5c118d 100644 --- a/unpacked/Custom_Token Search-A-Card 24051a.ttslua +++ b/unpacked/Custom_Token Search-A-Card 24051a.ttslua @@ -45,16 +45,10 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("playercards/CardSearch") end) __bundle_register("playercards/CardSearch", function(require, _LOADED, __bundle_register, __bundle_modules) --- Search-A-Card --- made by: Chr1Z --- description: spawns the card(s) with the specified name -information = { - version = "1.2", - last_updated = "12.11.2022" -} - require("playercards/PlayerCardSpawner") +local allCardsBagApi = require("playercards/AllCardsBagApi") + local buttonParameters = {} buttonParameters.function_owner = self buttonParameters.height = 200 @@ -62,9 +56,11 @@ buttonParameters.width = 1200 buttonParameters.font_size = 75 local BUTTON_LABELS = {} + BUTTON_LABELS["spawn"] = {} BUTTON_LABELS["spawn"][true] = "Mode: Spawn all matching cards " BUTTON_LABELS["spawn"][false] = "Mode: Spawn first matching card" + BUTTON_LABELS["search"] = {} BUTTON_LABELS["search"][true] = "Mode: Name matches search term" BUTTON_LABELS["search"][false] = "Mode: Name contains search term" @@ -79,16 +75,16 @@ inputParameters.width = 1200 inputParameters.height = 130 inputParameters.font_size = 107 -local ALL_CARDS_GUID = "15bb07" - -- main code -function onSave() return JSON.encode({ spawnAll, searchExact, inputParameters.value }) end +function onSave() + return JSON.encode({ spawnAll, searchExact, inputParameters.value }) +end -function onLoad(saved_data) - local loaded_data = JSON.decode(saved_data) - spawnAll = loaded_data[1] or false - searchExact = loaded_data[2] or false - inputParameters.value = loaded_data[3] or "" +function onLoad(savedData) + local loadedData = JSON.decode(savedData) + spawnAll = loadedData[1] or false + searchExact = loadedData[2] or false + inputParameters.value = loadedData[3] or "" -- index 0: button for spawn mode buttonParameters.click_function = "search" @@ -109,11 +105,6 @@ function onLoad(saved_data) self.createButton(buttonParameters) self.createInput(inputParameters) - self.addContextMenuItem("More Information", function() - printToAll("------------------------------", "White") - printToAll("Search-A-Card v" .. information["version"] .. " by Chr1Z", "Orange") - printToAll("last updated: " .. information["last_updated"], "White") - end) end function spawnMode() @@ -148,15 +139,14 @@ function search() printToAll("Please enter a longer search string.", "Yellow") return end - - local allCardsBag = getObjectFromGUID(ALL_CARDS_GUID) - if allCardsBag == nil then + + if not allCardsBagApi.isBagPresent() then printToAll("Player card bag couldn't be found.", "Red") return end -- search all objects in bag - local cardList = allCardsBag.call("getCardsByName", { name = inputParameters.value, exact = searchExact }) + local cardList = allCardsBagApi.getCardsByName(inputParameters.value, searchExact) if cardList == nil or #cardList == 0 then printToAll("No match found.", "Red") return @@ -174,8 +164,83 @@ function search() Spawner.spawnCards(cardList, pos, rot, true) end end) -__bundle_register("playercards/PlayerCardSpawner", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("playercards/AllCardsBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local AllCardsBagApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local function getAllCardsBag() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "AllCardsBag") + end + + -- Returns a specific card from the bag, based on ArkhamDB ID + ---@param id table String ID of the card to retrieve + ---@return table table + -- If the indexes are still being constructed, an empty table is + -- returned. Otherwise, a single table with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardById = function(id) + return getAllCardsBag().call("getCardById", {id = id}) + end + + -- Gets a random basic weakness from the bag. Once a given ID has been returned + -- it will be removed from the list and cannot be selected again until a reload + -- occurs or the indexes are rebuilt, which will refresh the list to include all + -- weaknesses. + ---@return id String ID of the selected weakness. + AllCardsBagApi.getRandomWeaknessId = function() + return getAllCardsBag().call("getRandomWeaknessId") + end + + AllCardsBagApi.isIndexReady = function() + return getAllCardsBag().call("isIndexReady") + end + + -- Called by Hotfix bags when they load. If we are still loading indexes, then + -- the all cards and hotfix bags are being loaded together, and we can ignore + -- this call as the hotfix will be included in the initial indexing. If it is + -- called once indexing is complete it means the hotfix bag has been added + -- later, and we should rebuild the index to integrate the hotfix bag. + AllCardsBagApi.rebuildIndexForHotfix = function() + return getAllCardsBag().call("rebuildIndexForHotfix") + end + + -- Searches the bag for cards which match the given name and returns a list. Note that this is + -- an O(n) search without index support. It may be slow. + ---@param name String or string fragment to search for names + ---@param exact Boolean Whether the name match should be exact + AllCardsBagApi.getCardsByName = function(name, exact) + return getAllCardsBag().call("getCardsByName", {name = name, exact = exact}) + end + + AllCardsBagApi.isBagPresent = function() + return getAllCardsBag() and true + end + + -- Returns a list of cards from the bag matching a class and level (0 or upgraded) + ---@param class String class to retrieve ("Guardian", "Seeker", etc) + ---@param upgraded Boolean true for upgraded cards (Level 1-5), false for Level 0 + ---@return: If the indexes are still being constructed, returns an empty table. + -- Otherwise, a list of tables, each with the following fields + -- cardData: TTS object data, suitable for spawning the card + -- cardMetadata: Table of parsed metadata + AllCardsBagApi.getCardsByClassAndLevel = function(class, upgraded) + return getAllCardsBag().call("getCardsByClassAndLevel", {class = class, upgraded = upgraded}) + end + + AllCardsBagApi.getCardsByCycle = function(cycle) + return getAllCardsBag().call("getCardsByCycle", cycle) + end + + AllCardsBagApi.getUniqueWeaknesses = function() + return getAllCardsBag().call("getUniqueWeaknesses") + end + + return AllCardsBagApi +end +end) +__bundle_register("playercards/PlayerCardSpawner", function(require, _LOADED, __bundle_register, __bundle_modules) -- Amount to shift for the next card (zShift) or next row of cards (xShift) -- Note that the table rotation is weird, and the X axis is vertical while the -- Z axis is horizontal @@ -309,7 +374,7 @@ end -- "CustomDeck" field is a list of all CustomDecks used by cards within the -- deck, keyed by the DeckID and referencing the custom deck table ---@param deck: TTS deck data structure to add to ----@param card: Data for the card to be inserted +---@param cardData: Data for the card to be inserted Spawner.addCardToDeck = function(deck, cardData) for customDeckId, customDeckData in pairs(cardData.CustomDeck) do if (deck.CustomDeck[customDeckId] == nil) then @@ -418,4 +483,46 @@ Spawner.cardComparator = function(card1, card2) end end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Search-A-Card 24051a.yaml b/unpacked/Custom_Token Search-A-Card 24051a.yaml index 288b0669f..5d852592c 100644 --- a/unpacked/Custom_Token Search-A-Card 24051a.yaml +++ b/unpacked/Custom_Token Search-A-Card 24051a.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1857193769888710611/7DFDDFD0F0AFB7A31F29843D196BE9E36D89A60F/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Allows searching for card(s) by name. Use the buttons to toggle the spawn / search mode. @@ -41,14 +41,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 60.0 + posX: 60 posY: 1.53 - posZ: 56.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 56 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 1.25 - scaleY: 1.0 + scaleY: 1 scaleZ: 1.35 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token TentacleStand 7bff34.yaml b/unpacked/Custom_Token TentacleStand 7bff34.yaml index c32228337..7d4b94153 100644 --- a/unpacked/Custom_Token TentacleStand 7bff34.yaml +++ b/unpacked/Custom_Token TentacleStand 7bff34.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: false ColorDiffuse: b: 0.8027 - g: 1.0 + g: 1 r: 0.92692 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.2 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://i.imgur.com/sWdnG71.png - WidthScale: 0.0 + WidthScale: 0 Description: '' DragSelectable: true GMNotes: '' @@ -35,27 +35,27 @@ Name: Custom_Token Nickname: TentacleStand PhysicsMaterial: BounceCombine: 0 - Bounciness: 0.0 - DynamicFriction: 0.0 + Bounciness: 0 + DynamicFriction: 0 FrictionCombine: 0 - StaticFriction: 0.0 + StaticFriction: 0 Rigidbody: - AngularDrag: 0.0 - Drag: 0.0 - Mass: 0.0 + AngularDrag: 0 + Drag: 0 + Mass: 0 UseGravity: false Snap: false Sticky: false Tooltip: false Transform: posX: 76.39 - posY: 26.0 + posY: 26 posZ: 0.56 - rotX: 90.0 - rotY: 270.0 - rotZ: 0.0 + rotX: 90 + rotY: 270 + rotZ: 0 scaleX: 20.4 - scaleY: 1.0 + scaleY: 1 scaleZ: 16.79 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Token Arranger 022907.ttslua b/unpacked/Custom_Token Token Arranger 022907.ttslua index 3393f88bd..f81acc3ea 100644 --- a/unpacked/Custom_Token Token Arranger 022907.ttslua +++ b/unpacked/Custom_Token Token Arranger 022907.ttslua @@ -45,6 +45,7 @@ __bundle_register("__root", function(require, _LOADED, __bundle_register, __bund require("accessories/TokenArranger") end) __bundle_register("accessories/TokenArranger", function(require, _LOADED, __bundle_register, __bundle_modules) +local chaosBagApi = require("chaosbag/ChaosBagApi") local mythosAreaApi = require("core/MythosAreaApi") -- common parameters @@ -65,13 +66,20 @@ inputParameters.alignment = 3 inputParameters.validation = 2 inputParameters.tab = 2 +local percentageLabel = {} +percentageLabel.function_owner = self +percentageLabel.click_function = "none" +percentageLabel.width = 0 +percentageLabel.height = 0 + -- variables with save function -local tokenPrecedence = {} -local percentage = false +local tokenPrecedence = {} +local percentage = false +local includeDrawnTokens = true -- variables without save function -local updating = false -local TOKEN_NAMES = { +local updating = false +local TOKEN_NAMES = { "Elder Sign", "Skull", "Cultist", @@ -87,17 +95,19 @@ local TOKEN_NAMES = { -- saving the precedence settings and information on the most recently loaded data function onSave() return JSON.encode({ - tokenPrecedence = tokenPrecedence, - percentage = percentage + tokenPrecedence = tokenPrecedence, + percentage = percentage, + includeDrawnTokens = includeDrawnTokens }) end -- loading data, button creation and initial layouting function onLoad(saveState) if saveState ~= nil and saveState ~= "" then - local loadedData = JSON.decode(saveState) - tokenPrecedence = loadedData.tokenPrecedence - percentage = loadedData.percentage + local loadedData = JSON.decode(saveState) + tokenPrecedence = loadedData.tokenPrecedence + percentage = loadedData.percentage + includeDrawnTokens = loadedData.includeDrawnTokens else loadDefaultValues() @@ -105,8 +115,14 @@ function onLoad(saveState) Wait.time(function() onTokenDataChanged(mythosAreaApi.returnTokenData()) end, 0.2) end - createButtonsAndInputs(true) - + createButtonsAndInputs() + + -- maybe trigger layout() to draw percentage buttons + local objList = getObjectsWithTag("tempToken") + if #objList > 0 then + Wait.time(layout, 0.5) + end + -- context menu items self.addContextMenuItem("Load default values", function() loadDefaultValues() @@ -114,7 +130,14 @@ function onLoad(saveState) layout() end) - self.addContextMenuItem("Toggle percentages", function() + self.addContextMenuItem("Include drawn tokens", function() + includeDrawnTokens = not includeDrawnTokens + local text = includeDrawnTokens and " " or " not " + broadcastToAll("Token Arranger will" .. text .. "include currently drawn chaos tokens.", "Orange") + layout() + end) + + self.addContextMenuItem("Toggle percentages", function() if percentage then percentage = false else @@ -124,7 +147,7 @@ function onLoad(saveState) layout() end) - self.addContextMenuItem("Toggle cumulative", function() + self.addContextMenuItem("Toggle cumulative", function() if percentage == "cumulative" then percentage = "basic" else @@ -144,23 +167,6 @@ function onDrop() Wait.time(layout, 1.5) end -- delete temporary tokens when picked up function onPickUp() deleteCopiedTokens() end --- helper functions to carry index -function attachIndex(click_function, index) - local fn_name = click_function .. index - _G[fn_name] = function(_, _, isRightClick) - _G[click_function](isRightClick, index) - end - return fn_name -end - -function attachIndex2(input_function, index) - local fn_name = input_function .. index - _G[fn_name] = function(_, _, input, selected) - _G[input_function](input, selected, index) - end - return fn_name -end - -- click_function for buttons on chaos tokens function tokenClick(isRightClick, index) local change = tonumber(isRightClick and "-1" or "1") @@ -201,8 +207,8 @@ function loadDefaultValues() } end --- creates buttons and inputs (if argument is true) -function createButtonsAndInputs(loadInputs) +-- creates buttons and inputs +function createButtonsAndInputs() local offset = 0.725 local pos = { x = { -1.067, 0.377 }, z = -2.175 } @@ -213,18 +219,20 @@ function createButtonsAndInputs(loadInputs) inputParameters.position = { pos.x[1] + offset, 0.1, pos.z + i * offset } else buttonParameters.position = { pos.x[2], 0, pos.z + (i - 5) * offset } - inputParameters.position = { pos.x[2] + offset, 0.1, pos.z + (i - 5) * offset } + inputParameters.position = { pos.x[2] + offset, 0.1, pos.z + (i - 5) * offset } end - buttonParameters.click_function = attachIndex("tokenClick", i) + buttonParameters.click_function = "tokenClick" .. i + inputParameters.input_function = "tokenInput" .. i + inputParameters.value = tokenPrecedence[TOKEN_NAMES[i]][1] + + -- setting click-/inputfunction + self.setVar(buttonParameters.click_function, function(_, _, isRightClick) tokenClick(isRightClick, i) end) + self.setVar(inputParameters.input_function, function(_, _, input, selected) tokenInput(input, selected, i) end) + + -- button/input creation self.createButton(buttonParameters) - - -- only create inputs on initial load - if loadInputs then - inputParameters.input_function = attachIndex2("tokenInput", i) - inputParameters.value = tokenPrecedence[TOKEN_NAMES[i]][1] - self.createInput(inputParameters) - end + self.createInput(inputParameters) end -- index 10: "Update / Hide" button @@ -252,7 +260,7 @@ end -- order function for data sorting function tokenValueComparator(left, right) - if (left.value ~= right.value) then + if left.value ~= right.value then return left.value > right.value elseif left.order ~= right.order then return left.order < right.order @@ -267,38 +275,37 @@ function deleteCopiedTokens() token.destruct() end - -- this removes the percentage buttons - self.clearButtons() - createButtonsAndInputs() + -- this removes the percentage buttons (by index 11+) + local buttonCount = #self.getButtons() + if buttonCount < 12 then return end + + for i = buttonCount, 12, -1 do + self.removeButton(i - 1) + end end -- creates buttons as labels as display for percentage values function createPercentageButton(tokenCount, valueCount, tokenName) - -- parameters for button creation - local percentageLabel = {} - percentageLabel.click_function = "none" - percentageLabel.width = 0 - percentageLabel.height = 0 - local startPos = Vector(2.3, -0.05, 0.875 * valueCount) + local startPos = Vector(2.3, -0.04, 0.875 * valueCount) if percentage == "cumulative" then - percentageLabel.scale = {1.5, 1.5, 1.5} + percentageLabel.scale = { 1.5, 1.5, 1.5 } percentageLabel.position = startPos - Vector(0, 0, 2.85) else - percentageLabel.scale = {2, 2, 2} + percentageLabel.scale = { 2, 2, 2 } percentageLabel.position = startPos - Vector(0, 0, 2.675) end -- determine font_color if tokenName == "Elder Sign" then - percentageLabel.font_color = {0.35, 0.71, 0.85} + percentageLabel.font_color = { 0.35, 0.71, 0.85 } elseif tokenName == "Auto-fail" then - percentageLabel.font_color = {0.86, 0.1, 0.1} - -- check if the tokenName contains letters (e.g. symbol token) + percentageLabel.font_color = { 0.86, 0.1, 0.1 } + -- check if the tokenName contains letters (e.g. symbol token) elseif string.match(tokenName, "%a") ~= nil then - percentageLabel.font_color = {0.68, 0.53, 0.86} + percentageLabel.font_color = { 0.68, 0.53, 0.86 } else - percentageLabel.font_color = {0.85, 0.67, 0.33} + percentageLabel.font_color = { 0.85, 0.67, 0.33 } end -- create label for base percentage @@ -309,8 +316,8 @@ function createPercentageButton(tokenCount, valueCount, tokenName) -- optionally create label for cumulative percentage if percentage == "cumulative" then percentageLabel.position = startPos - Vector(0, 0, 2.45) - percentageLabel.font_color = {1, 1, 1} - + percentageLabel.font_color = { 1, 1, 1 } + -- only display one digit for 100% if tokenCount.sum == tokenCount.total then percentageLabel.label = "100.0%" @@ -334,21 +341,36 @@ function layout(_, _, isRightClick) return end - local chaosBag = Global.call("findChaosBag") - local data = {} + -- get ChaosBag and stop if not found + local chaosBag = chaosBagApi.findChaosBag() + if not chaosBag then + updating = false + return + end -- clone tokens from chaos bag (default position above trash can) - for i, obj in ipairs(chaosBag.getData().ContainedObjects) do - obj["Tags"] = { "tempToken" } - local value = tonumber(obj.Nickname) - local precedence = tokenPrecedence[obj.Nickname] - local spawnedObj = spawnObjectData({ - data = obj, - position = { 0.49, 3, 0 } - }) + local rawData = chaosBag.getData().ContainedObjects + -- optionally get the data for tokens in play + if includeDrawnTokens then + for _, token in pairs(chaosBagApi.getTokensInPlay()) do + if token ~= nil then table.insert(rawData, token.getData()) end + end + end + + -- generate layout data + local data = {} + for i, objData in ipairs(rawData) do + objData["Tags"] = { "tempToken" } + local value = tonumber(objData.Nickname) + local precedence = tokenPrecedence[objData.Nickname] + + -- remove GUID to avoid issues for high latency clients + objData["GUID"] = nil + + -- store data with value / precendence data[i] = { - token = spawnedObj, + token = objData, value = value or precedence[1] } @@ -368,9 +390,10 @@ function layout(_, _, isRightClick) if percentage then pos.z = pos.z - 3.05 end local location = { x = pos.x, y = pos.y, z = pos.z } + local rotation = self.getRotation() local currentValue = data[1].value local tokenCount = { row = 0, sum = 0, total = #data } - local valueCount = 1 + local valueCount = 1 local tokenName = false for i, item in ipairs(data) do @@ -381,18 +404,20 @@ function layout(_, _, isRightClick) createPercentageButton(tokenCount, valueCount, tokenName) end - location.x = location.x - 1.75 - location.z = pos.z - currentValue = item.value - valueCount = valueCount + 1 + location.x = location.x - 1.75 + location.z = pos.z + currentValue = item.value + valueCount = valueCount + 1 tokenCount.row = 0 end - - item.token.setPosition(location) - item.token.setRotation(self.getRotation()) - item.token.setLock(true) + + spawnObjectData({ + data = item.token, + position = location, + rotation = rotation + }) + tokenName = item.token.Nickname location.z = location.z - 1.75 - tokenName = item.token.getName() tokenCount.row = tokenCount.row + 1 end @@ -423,17 +448,155 @@ function onTokenDataChanged(parameters) layout() end end) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local ChaosBagApi = {} + + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) + end + return chaosBagContents + end + + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi +end +end) __bundle_register("core/MythosAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) do local MythosAreaApi = {} - local MYTHOS_AREA_GUID = "9f334f" + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getMythosArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "MythosArea") + end -- returns the chaos token metadata (if provided through scenario reference card) MythosAreaApi.returnTokenData = function() - return getObjectFromGUID(MYTHOS_AREA_GUID).call("returnTokenData") + return getMythosArea().call("returnTokenData") + end + + -- returns an object reference to the encounter deck + MythosAreaApi.getEncounterDeck = function() + return getMythosArea().call("getEncounterDeck") + end + + -- draw an encounter card for the requesting mat + MythosAreaApi.drawEncounterCard = function(mat, alwaysFaceUp) + getMythosArea().call("drawEncounterCard", {mat = mat, alwaysFaceUp = alwaysFaceUp}) end return MythosAreaApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Token Arranger 022907.yaml b/unpacked/Custom_Token Token Arranger 022907.yaml index 4a2e6f06b..6220ed80b 100644 --- a/unpacked/Custom_Token Token Arranger 022907.yaml +++ b/unpacked/Custom_Token Token Arranger 022907.yaml @@ -1,22 +1,22 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.100000009 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/1838054223124059668/0BF8F541309E717BA84987BD554675A2FD06AF9F/ - WidthScale: 0.0 + WidthScale: 0 Description: 'Displays the content of the chaos bag in tabular fashion. @@ -32,25 +32,23 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true LuaScript: !include 'Custom_Token Token Arranger 022907.ttslua' -LuaScriptState: '{"percentage":false,"tokenPrecedence":{"":[0,11],"Auto-fail":[-100,7],"Bless":[101,8],"Cultist":[-2,4],"Curse":[-101,9],"Elder +LuaScriptState: '{"includeDrawnTokens":true,"percentage":false,"tokenPrecedence":{"":[0,11],"Auto-fail":[-100,7],"Bless":[101,8],"Cultist":[-2,4],"Curse":[-101,9],"Elder Sign":[100,2],"Elder Thing":[-4,6],"Frost":[-99,10],"Skull":[-1,3],"Tablet":[-3,5]}}' MeasureMovement: false Name: Custom_Token Nickname: Token Arranger Snap: true Sticky: true -Tags: -- TokenArranger Tooltip: true Transform: posX: -42.3 posY: 1.53 posZ: -46.5 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 2.0 - scaleY: 1.0 - scaleZ: 2.0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 2 + scaleY: 1 + scaleZ: 2 Value: 0 XmlUI: '' diff --git a/unpacked/Custom_Token Victory Display 6ccd6d.ttslua b/unpacked/Custom_Token Victory Display 6ccd6d.ttslua index 429a8936e..562b6c28e 100644 --- a/unpacked/Custom_Token Victory Display 6ccd6d.ttslua +++ b/unpacked/Custom_Token Victory Display 6ccd6d.ttslua @@ -41,25 +41,295 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + return GUIDReferenceApi +end +end) +__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local PlayAreaApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getPlayArea() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "PlayArea") + end + + local function getInvestigatorCounter() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "InvestigatorCounter") + end + + -- Returns the current value of the investigator counter from the playmat + ---@return Integer. Number of investigators currently set on the counter + PlayAreaApi.getInvestigatorCount = function() + return getInvestigatorCounter().getVar("val") + end + + -- Updates the current value of the investigator counter from the playmat + ---@param count Number of investigators to set on the counter + PlayAreaApi.setInvestigatorCount = function(count) + getInvestigatorCounter().call("updateVal", count) + end + + -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain + -- fixed objects will be ignored, as will anything the player has tagged with 'displacement_excluded' + ---@param playerColor Color Color of the player requesting the shift for messages + PlayAreaApi.shiftContentsUp = function(playerColor) + return getPlayArea().call("shiftContentsUp", playerColor) + end + + PlayAreaApi.shiftContentsDown = function(playerColor) + return getPlayArea().call("shiftContentsDown", playerColor) + end + + PlayAreaApi.shiftContentsLeft = function(playerColor) + return getPlayArea().call("shiftContentsLeft", playerColor) + end + + PlayAreaApi.shiftContentsRight = function(playerColor) + return getPlayArea().call("shiftContentsRight", playerColor) + end + + -- Reset the play area's tracking of which cards have had tokens spawned. + PlayAreaApi.resetSpawnedCards = function() + return getPlayArea().call("resetSpawnedCards") + end + + -- Sets whether location connections should be drawn + PlayAreaApi.setConnectionDrawState = function(state) + getPlayArea().call("setConnectionDrawState", state) + end + + -- Sets the connection color + PlayAreaApi.setConnectionColor = function(color) + getPlayArea().call("setConnectionColor", color) + end + + -- Event to be called when the current scenario has changed. + ---@param scenarioName Name of the new scenario + PlayAreaApi.onScenarioChanged = function(scenarioName) + getPlayArea().call("onScenarioChanged", scenarioName) + end + + -- Sets this playmat's snap points to limit snapping to locations or not. + -- 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. + PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) + getPlayArea().call("setLimitSnapsByType", matchCardTypes) + end + + -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged + -- cards before they're destroyed by entering the container + PlayAreaApi.tryObjectEnterContainer = function(container, object) + getPlayArea().call("tryObjectEnterContainer", { container = container, object = object }) + end + + -- counts the VP on locations in the play area + PlayAreaApi.countVP = function() + return getPlayArea().call("countVP") + end + + -- highlights all locations in the play area without metadata + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightMissingData = function(state) + return getPlayArea().call("highlightMissingData", state) + end + + -- highlights all locations in the play area with VP + ---@param state Boolean True if highlighting should be enabled + PlayAreaApi.highlightCountedVP = function(state) + return getPlayArea().call("countVP", state) + end + + -- Checks if an object is in the play area (returns true or false) + PlayAreaApi.isInPlayArea = function(object) + return getPlayArea().call("isInPlayArea", object) + end + + PlayAreaApi.getSurface = function() + return getPlayArea().getCustomObject().image + end + + PlayAreaApi.updateSurface = function(url) + return getPlayArea().call("updateSurface", url) + end + + -- Called by Custom Data Helpers to push their location data into the Data Helper. This adds the + -- data to the local token manager instance. + ---@param args Table Single-value array holding the GUID of the Custom Data Helper making the call + PlayAreaApi.updateLocations = function(args) + getPlayArea().call("updateLocations", args) + end + + PlayAreaApi.getCustomDataHelper = function() + return getPlayArea().getVar("customDataHelper") + end + + return PlayAreaApi +end +end) +__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local CHAOS_TOKEN_NAMES = { + ["Elder Sign"] = true, + ["+1"] = true, + ["0"] = true, + ["-1"] = true, + ["-2"] = true, + ["-3"] = true, + ["-4"] = true, + ["-5"] = true, + ["-6"] = true, + ["-7"] = true, + ["-8"] = true, + ["Skull"] = true, + ["Cultist"] = true, + ["Tablet"] = true, + ["Elder Thing"] = true, + ["Auto-fail"] = true, + ["Bless"] = true, + ["Curse"] = true, + ["Frost"] = true + } + + local TokenChecker = {} + + -- returns true if the passed object is a chaos token (by name) + TokenChecker.isChaosToken = function(obj) + if CHAOS_TOKEN_NAMES[obj.getName()] then + return true + else + return false + end + end + + return TokenChecker +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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/VictoryDisplay") end) __bundle_register("core/VictoryDisplay", function(require, _LOADED, __bundle_register, __bundle_modules) -local playAreaApi = require("core/PlayAreaApi") -local tokenChecker = require("core/token/TokenChecker") -local pendingCall = false -local messageSent = {} -local missingData = {} -local countedVP = {} +local searchLib = require("util/SearchLib") +local chaosBagApi = require("chaosbag/ChaosBagApi") +local guidReferenceApi = require("core/GUIDReferenceApi") +local playAreaApi = require("core/PlayAreaApi") +local tokenChecker = require("core/token/TokenChecker") + +local pendingCall = false +local missingData = {} +local countedVP = {} + local highlightMissing = false local highlightCounted = false -local TRASHCAN -local TRASHCAN_GUID = "70b9f6" -- button creation when loading the game function onLoad() - TRASHCAN = getObjectFromGUID(TRASHCAN_GUID) - -- index 0: VP - "Display" local buttonParameters = {} buttonParameters.label = "0" @@ -82,34 +352,23 @@ function onLoad() self.createButton(buttonParameters) -- index 3: highlighting button (missing data) - self.createButton({ - label = "!", - click_function = "highlightMissingData", - tooltip = "Enable highlighting of cards without metadata (VP on these is not counted).", - function_owner = self, - scale = { 0.15, 0.15, 0.15 }, - color = { 1, 0, 0 }, - width = 700, - height = 800, - font_size = 700, - font_color = { 1, 1, 1 }, - position = { x = 1.82, y = 0.06, z = -1.32 } - }) + buttonParameters.label = "!" + buttonParameters.click_function = "highlightMissingData" + buttonParameters.tooltip = "Enable highlighting of cards without metadata (VP on these is not counted)." + buttonParameters.color = { 1, 0, 0 } + buttonParameters.width = 700 + buttonParameters.height = 800 + buttonParameters.font_size = 700 + buttonParameters.position = { x = 1.82, y = 0.06, z = -1.32 } + self.createButton(buttonParameters) -- index 4: highlighting button (counted VP) - self.createButton({ - label = "?", - click_function = "highlightCountedVP", - tooltip = "Enable highlighting of cards with VP.", - function_owner = self, - scale = { 0.15, 0.15, 0.15 }, - color = { 0, 1, 0 }, - width = 700, - height = 800, - font_size = 700, - font_color = { 1, 1, 1 }, - position = { x = 1.5, y = 0.06, z = -1.32 } - }) + buttonParameters.label = "?" + buttonParameters.click_function = "highlightCountedVP" + buttonParameters.tooltip = "Enable highlighting of cards with VP." + buttonParameters.color = { 0, 1, 0 } + buttonParameters.position.x = 1.5 + self.createButton(buttonParameters) -- update the display label once Wait.time(updateCount, 1) @@ -194,19 +453,17 @@ function updateCount() victoryPoints.playArea = playAreaApi.countVP() -- count cards in victory display - for _, v in ipairs(searchOnObj(self)) do - local obj = v.hit_object - + for _, obj in ipairs(searchLib.onObject(self, "isCardOrDeck")) do -- check metadata for VP - if obj.tag == "Card" then + if obj.type == "Card" then local VP = getCardVP(obj, JSON.decode(obj.getGMNotes())) victoryPoints.display = victoryPoints.display + VP if VP > 0 then table.insert(countedVP, obj) end - -- handling for stacked cards - elseif obj.tag == "Deck" then + -- handling for stacked cards + elseif obj.type == "Deck" then local VP = 0 for _, deepObj in ipairs(obj.getObjects()) do local deepVP = getCardVP(obj, JSON.decode(deepObj.gm_notes)) @@ -259,9 +516,7 @@ end function highlightMissingData() self.editButton({ index = 3, - tooltip = (highlightMissing and "Enable" or "Disable") .. - " highlighting of cards without metadata (VP on these is not counted)." - }) + tooltip = (highlightMissing and "Enable" or "Disable") .. " highlighting of cards without metadata (VP on these is not counted)." }) for _, obj in pairs(missingData) do if obj ~= nil then if highlightMissing then @@ -279,8 +534,7 @@ end function highlightCountedVP() self.editButton({ index = 4, - tooltip = (highlightCounted and "Enable" or "Disable") .. - " highlighting of cards with VP." + tooltip = (highlightCounted and "Enable" or "Disable") .. " highlighting of cards with VP." }) for _, obj in pairs(countedVP) do if obj ~= nil then @@ -297,6 +551,8 @@ end -- places the provided card in the first empty spot function placeCard(card) + local trash = guidReferenceApi.getObjectByOwnerAndType("Mythos", "Trash") + -- check snap point states local snaps = self.getSnapPoints() table.sort(snaps, function(a, b) return a.position.x > b.position.x end) @@ -307,29 +563,23 @@ function placeCard(card) local positions = {} for i, snap in ipairs(snaps) do positions[i] = self.positionToWorld(snap.position) - local hits = checkSnapPointState(positions[i]) - - -- first hit is self, additional hits must be cards / decks - if #hits > 1 then - fullSlots[i] = true - end + local searchResult = searchLib.atPosition(positions[i], "isCardOrDeck") + fullSlots[i] = #searchResult > 0 end -- remove tokens from the card - for _, v in ipairs(searchOnObj(card)) do - local obj = v.hit_object - + for _, obj in ipairs(searchLib.onObject(card)) do -- don't touch decks / cards - if obj.tag == "Deck" or obj.tag == "Card" then - -- put chaos tokens back into bag + if obj.type == "Deck" or obj.type == "Card" then + -- put chaos tokens back into bag elseif tokenChecker.isChaosToken(obj) then - local chaosBag = Global.call("findChaosBag") + local chaosBag = chaosBagApi.findChaosBag() chaosBag.putObject(obj) elseif obj.memo ~= nil and obj.getLock() == false then - TRASHCAN.putObject(obj) + trash.putObject(obj) end end - + -- place the card local name = card.getName() or "Unnamed card" for i = 1, 10 do @@ -345,177 +595,87 @@ function placeCard(card) broadcastToAll("Victory Display is full! " .. name .. " placed into slot 1.", "Orange") card.setPositionSmooth(positions[1], false, true) end - ---------------------------------------------------------- --- utility functions ---------------------------------------------------------- - --- searches on an object -function searchOnObj(obj) - return Physics.cast({ - direction = { 0, 1, 0 }, - max_distance = 0.5, - type = 3, - size = obj.getBounds().size, - origin = obj.getPosition() - }) -end - -function checkSnapPointState(pos) - return Physics.cast({ - direction = { 0, 1, 0 }, - max_distance = 0.1, - type = 3, - size = { 0.1, 0.1, 0.1 }, - origin = pos - }) -end - --- search a table for a value, return true if found (else returns false) -function tableContains(table, value) - for _, v in ipairs(table) do - if v == value then - return true - end - end - return false -end end) -__bundle_register("core/PlayAreaApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("chaosbag/ChaosBagApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlayAreaApi = { } + local ChaosBagApi = {} - local PLAY_AREA_GUID = "721ba2" - - local IMAGE_SWAPPER = "b7b45b" - - -- Returns the current value of the investigator counter from the playmat - ---@return Integer. Number of investigators currently set on the counter - PlayAreaApi.getInvestigatorCount = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("getInvestigatorCount") + -- respawns the chaos bag with a new state of tokens + ---@param tokenList Table List of chaos token ids + ChaosBagApi.setChaosBagState = function(tokenList) + return Global.call("setChaosBagState", tokenList) end - -- Updates the current value of the investigator counter from the playmat - ---@param count Number of investigators to set on the counter - PlayAreaApi.setInvestigatorCount = function(count) - return getObjectFromGUID(PLAY_AREA_GUID).call("setInvestigatorCount", count) - end - - -- Move all contents on the play area (cards, tokens, etc) one slot in the given direction. Certain - -- fixed objects will be ignored, as will anything the player has tagged with - -- 'displacement_excluded' - ---@param playerColor Color of the player requesting the shift. Used solely to send an error - --- message in the unlikely case that the scripting zone has been deleted - PlayAreaApi.shiftContentsUp = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsUp", playerColor) - end - - PlayAreaApi.shiftContentsDown = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsDown", playerColor) - end - - PlayAreaApi.shiftContentsLeft = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsLeft", playerColor) - end - - PlayAreaApi.shiftContentsRight = function(playerColor) - return getObjectFromGUID(PLAY_AREA_GUID).call("shiftContentsRight", playerColor) - end - - -- Reset the play area's tracking of which cards have had tokens spawned. - PlayAreaApi.resetSpawnedCards = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("resetSpawnedCards") - end - - -- Event to be called when the current scenario has changed. - ---@param scenarioName Name of the new scenario - PlayAreaApi.onScenarioChanged = function(scenarioName) - getObjectFromGUID(PLAY_AREA_GUID).call("onScenarioChanged", scenarioName) - end - - -- Sets this playmat's snap points to limit snapping to locations or not. - -- If matchTypes is false, snap points will be reset to snap all cards. - ---@param matchTypes Boolean Whether snap points should only snap for the matching card types. - PlayAreaApi.setLimitSnapsByType = function(matchCardTypes) - getObjectFromGUID(PLAY_AREA_GUID).call("setLimitSnapsByType", matchCardTypes) - end - - -- Receiver for the Global tryObjectEnterContainer event. Used to clear vector lines from dragged - -- cards before they're destroyed by entering the container - PlayAreaApi.tryObjectEnterContainer = function(container, object) - getObjectFromGUID(PLAY_AREA_GUID).call("tryObjectEnterContainer", - { container = container, object = object }) - end - - -- counts the VP on locations in the play area - PlayAreaApi.countVP = function() - return getObjectFromGUID(PLAY_AREA_GUID).call("countVP") - end - - -- highlights all locations in the play area without metadata - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightMissingData = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightMissingData", state) - end - - -- highlights all locations in the play area with VP - ---@param state Boolean True if highlighting should be enabled - PlayAreaApi.highlightCountedVP = function(state) - return getObjectFromGUID(PLAY_AREA_GUID).call("highlightCountedVP", state) - end - - -- Checks if an object is in the play area (returns true or false) - PlayAreaApi.isInPlayArea = function(object) - return getObjectFromGUID(PLAY_AREA_GUID).call("isInPlayArea", object) - end - - PlayAreaApi.getSurface = function() - return getObjectFromGUID(PLAY_AREA_GUID).getCustomObject().image - end - - PlayAreaApi.updateSurface = function(url) - return getObjectFromGUID(IMAGE_SWAPPER).call("updateSurface", url) - end - - return PlayAreaApi -end -end) -__bundle_register("core/token/TokenChecker", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local CHAOS_TOKEN_NAMES = { - ["Elder Sign"] = true, - ["+1"] = true, - ["0"] = true, - ["-1"] = true, - ["-2"] = true, - ["-3"] = true, - ["-4"] = true, - ["-5"] = true, - ["-6"] = true, - ["-7"] = true, - ["-8"] = true, - ["Skull"] = true, - ["Cultist"] = true, - ["Tablet"] = true, - ["Elder Thing"] = true, - ["Auto-fail"] = true, - ["Bless"] = true, - ["Curse"] = true, - ["Frost"] = true - } - - local TokenChecker = {} - - -- returns true if the passed object is a chaos token (by name) - TokenChecker.isChaosToken = function(obj) - if CHAOS_TOKEN_NAMES[obj.getName()] then - return true - else - return false + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getChaosBagState = function() + local chaosBagContentsCatcher = Global.call("getChaosBagState") + local chaosBagContents = {} + for _, v in ipairs(chaosBagContentsCatcher) do + table.insert(chaosBagContents, v) end + return chaosBagContents end - return TokenChecker + -- checks scripting zone for chaos bag (also called by a lot of objects!) + ChaosBagApi.findChaosBag = function() + return Global.call("findChaosBag") + end + + -- returns a table of object references to the tokens in play (does not include sealed tokens!) + ChaosBagApi.getTokensInPlay = function() + return Global.call("getChaosTokensinPlay") + end + + -- returns all sealed tokens on cards to the chaos bag + ChaosBagApi.releaseAllSealedTokens = function(playerColor) + return Global.call("releaseAllSealedTokens", playerColor) + end + + -- returns all drawn tokens to the chaos bag + ChaosBagApi.returnChaosTokens = function(playerColor) + return Global.call("returnChaosTokens", playerColor) + end + + -- removes the specified chaos token from the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.removeChaosToken = function(id) + return Global.call("removeChaosToken", id) + end + + -- returns a chaos token to the bag and calls all relevant functions + ---@param token TTSObject Chaos Token to return + ChaosBagApi.returnChaosTokenToBag = function(token) + return Global.call("returnChaosTokenToBag", token) + end + + -- spawns the specified chaos token and puts it into the chaos bag + ---@param id String ID of the chaos token + ChaosBagApi.spawnChaosToken = function(id) + return Global.call("spawnChaosToken", id) + end + + -- Checks to see if the chaos bag can be manipulated. If a player is searching the bag when tokens + -- are drawn or replaced a TTS bug can cause those tokens to vanish. Any functions which change the + -- contents of the bag should check this method before doing so. + -- This method will broadcast a message to all players if the bag is being searched. + ---@return Boolean. True if the bag is manipulated, false if it should be blocked. + ChaosBagApi.canTouchChaosTokens = function() + return Global.call("canTouchChaosTokens") + end + + -- called by playermats (by the "Draw chaos token" button) + ChaosBagApi.drawChaosToken = function(mat, drawAdditional) + return Global.call("drawChaosToken", {mat = mat, drawAdditional = drawAdditional}) + end + + -- returns a Table List of chaos token ids in the current chaos bag + -- requires copying the data into a new table because TTS is weird about handling table return values in Global + ChaosBagApi.getIdUrlMap = function() + return Global.getTable("ID_URL_MAP") + end + + return ChaosBagApi end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/Custom_Token Victory Display 6ccd6d.yaml b/unpacked/Custom_Token Victory Display 6ccd6d.yaml index 3a3482fc8..95492ab9a 100644 --- a/unpacked/Custom_Token Victory Display 6ccd6d.yaml +++ b/unpacked/Custom_Token Victory Display 6ccd6d.yaml @@ -1,103 +1,103 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 AttachedSnapPoints: - Position: - x: 0.0 + x: 0 y: 0.05 z: 0.05 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.8 y: 0.05 - z: 1.0 + z: 1 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: - x: 0.0 + x: 0 y: 0.05 - z: 1.0 + z: 1 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 1.6 y: 0.05 z: 0.05 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 1.6 y: 0.05 - z: 1.0 + z: 1 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.8 y: 0.05 z: 0.05 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -0.8 y: 0.05 - z: 1.0 + z: 1 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.6 y: 0.05 z: 0.05 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: -1.6 y: 0.05 - z: 1.0 + z: 1 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 - Position: x: 0.8 y: 0.05 z: 0.05 Rotation: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 CustomImage: CustomToken: - MergeDistancePixels: 15.0 + MergeDistancePixels: 15 Stackable: false StandUp: false Thickness: 0.1 - ImageScalar: 1.0 + ImageScalar: 1 ImageSecondaryURL: '' ImageURL: http://cloud-3.steamusercontent.com/ugc/2053113893674531758/8E71AC0C7F8198A791AB4EA4ED9D301904F9A752/ - WidthScale: 0.0 + WidthScale: 0 Description: Automatically counts the earned VP from cards in the victory display and locations in the play area without clues on them. DragSelectable: true @@ -125,12 +125,12 @@ Tooltip: true Transform: posX: -1.5 posY: 1.53 - posZ: 30.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 + posZ: 30 + rotX: 0 + rotY: 270 + rotZ: 0 scaleX: 4.5 - scaleY: 1.0 + scaleY: 1 scaleZ: 4.5 Value: 0 XmlUI: '' diff --git a/unpacked/Deck Tarot Deck 77f1e5.yaml b/unpacked/Deck Tarot Deck 77f1e5.yaml index c9755d9f3..629ffcf79 100644 --- a/unpacked/Deck Tarot Deck 77f1e5.yaml +++ b/unpacked/Deck Tarot Deck 77f1e5.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.713235259 - g: 0.713235259 - r: 0.713235259 + b: 0.71324 + g: 0.71324 + r: 0.71324 ContainedObjects: - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266300 ColorDiffuse: @@ -53,14 +53,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -73,18 +72,18 @@ ContainedObjects: posX: 12.25 posY: 1.739 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266301 ColorDiffuse: @@ -123,17 +122,16 @@ ContainedObjects: to require ' .. identifier .. ', but no such module has been registered')\n\t\t\t\telse\n\t\t\t\t\treturn superRequire(name)\n\t\t\t\tend\n\t\t\tend\n\n\t\t\tloaded[name] = loadingPlaceholder\n\t\t\tloadedModule = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn - loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"playercards/Tarotcard\", + loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", + function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\n__bundle_register(\"__root\", - function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -146,18 +144,18 @@ ContainedObjects: posX: 12.25 posY: 1.718 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266302 ColorDiffuse: @@ -198,13 +196,13 @@ ContainedObjects: = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\n__bundle_register(\"__root\", + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' @@ -219,18 +217,18 @@ ContainedObjects: posX: 12.25 posY: 1.71 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266303 ColorDiffuse: @@ -272,14 +270,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -292,18 +289,18 @@ ContainedObjects: posX: 12.25 posY: 1.702 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266304 ColorDiffuse: @@ -345,14 +342,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -365,18 +361,18 @@ ContainedObjects: posX: 12.25 posY: 1.689 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266305 ColorDiffuse: @@ -415,16 +411,16 @@ ContainedObjects: to require ' .. identifier .. ', but no such module has been registered')\n\t\t\t\telse\n\t\t\t\t\treturn superRequire(name)\n\t\t\t\tend\n\t\t\tend\n\n\t\t\tloaded[name] = loadingPlaceholder\n\t\t\tloadedModule = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn - loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", - function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", + loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\n__bundle_register(\"__root\", + function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false @@ -438,18 +434,18 @@ ContainedObjects: posX: 12.25 posY: 1.686 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266306 ColorDiffuse: @@ -491,14 +487,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -511,18 +506,18 @@ ContainedObjects: posX: 12.25 posY: 1.676 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266307 ColorDiffuse: @@ -564,14 +559,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -584,18 +578,18 @@ ContainedObjects: posX: 12.25 posY: 1.662 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266308 ColorDiffuse: @@ -637,14 +631,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -657,18 +650,18 @@ ContainedObjects: posX: 12.25 posY: 1.665 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266309 ColorDiffuse: @@ -710,14 +703,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -730,18 +722,18 @@ ContainedObjects: posX: 12.25 posY: 1.641 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266310 ColorDiffuse: @@ -783,14 +775,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -803,18 +794,18 @@ ContainedObjects: posX: 12.25 posY: 1.64 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266311 ColorDiffuse: @@ -856,14 +847,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -876,18 +866,18 @@ ContainedObjects: posX: 12.25 posY: 1.636 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266312 ColorDiffuse: @@ -929,14 +919,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -949,18 +938,18 @@ ContainedObjects: posX: 12.25 posY: 1.612 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266313 ColorDiffuse: @@ -1002,14 +991,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -1022,18 +1010,18 @@ ContainedObjects: posX: 12.25 posY: 1.617 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266314 ColorDiffuse: @@ -1075,14 +1063,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -1095,18 +1082,18 @@ ContainedObjects: posX: 12.25 posY: 1.608 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266315 ColorDiffuse: @@ -1148,14 +1135,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -1168,18 +1154,18 @@ ContainedObjects: posX: 12.25 posY: 1.583 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266316 ColorDiffuse: @@ -1221,14 +1207,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -1241,18 +1226,18 @@ ContainedObjects: posX: 12.25 posY: 1.573 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266317 ColorDiffuse: @@ -1294,14 +1279,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -1314,18 +1298,18 @@ ContainedObjects: posX: 12.25 posY: 1.571 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266318 ColorDiffuse: @@ -1364,17 +1348,16 @@ ContainedObjects: to require ' .. identifier .. ', but no such module has been registered')\n\t\t\t\telse\n\t\t\t\t\treturn superRequire(name)\n\t\t\t\tend\n\t\t\tend\n\n\t\t\tloaded[name] = loadingPlaceholder\n\t\t\tloadedModule = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn - loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"playercards/Tarotcard\", + loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", + function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\n__bundle_register(\"__root\", - function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -1387,18 +1370,18 @@ ContainedObjects: posX: 12.25 posY: 1.554 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266319 ColorDiffuse: @@ -1437,16 +1420,16 @@ ContainedObjects: to require ' .. identifier .. ', but no such module has been registered')\n\t\t\t\telse\n\t\t\t\t\treturn superRequire(name)\n\t\t\t\tend\n\t\t\tend\n\n\t\t\tloaded[name] = loadingPlaceholder\n\t\t\tloadedModule = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn - loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", - function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", + loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\n__bundle_register(\"__root\", + function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false @@ -1460,18 +1443,18 @@ ContainedObjects: posX: 12.25 posY: 1.544 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266320 ColorDiffuse: @@ -1510,16 +1493,16 @@ ContainedObjects: to require ' .. identifier .. ', but no such module has been registered')\n\t\t\t\telse\n\t\t\t\t\treturn superRequire(name)\n\t\t\t\tend\n\t\t\tend\n\n\t\t\tloaded[name] = loadingPlaceholder\n\t\t\tloadedModule = modules[name](require, loaded, register, modules)\n\t\t\tloaded[name] = loadedModule\n\t\tend\n\n\t\treturn - loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", - function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", + loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\n__bundle_register(\"__root\", + function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false @@ -1533,18 +1516,18 @@ ContainedObjects: posX: 12.25 posY: 1.51 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true CardID: 266321 ColorDiffuse: @@ -1586,14 +1569,13 @@ ContainedObjects: loadedModule\n\tend\n\n\treturn require, loaded, register, modules\nend)(nil)\n__bundle_register(\"__root\", function(require, _LOADED, __bundle_register, __bundle_modules)\nrequire(\"playercards/Tarotcard\")\nend)\n__bundle_register(\"playercards/Tarotcard\", function(require, _LOADED, __bundle_register, __bundle_modules)\n-- context menu - to manually fix rotation\r\nfunction onLoad()\r\n self.addContextMenuItem(\"Rotate - Preview\", rotatePreview)\r\n self.addContextMenuItem(\"Rotate Card+Preview\", - rotateSelfAndPreview)\r\nend\r\n\r\n-- rotates the alt_view_angle\r\nfunction - rotatePreview()\r\n local angle = self.alt_view_angle\r\n if angle.y == 0 then\r\n - \ angle.y = 180\r\n else\r\n angle.y = 0\r\n end\r\n self.alt_view_angle - = angle\r\nend\r\n\r\n-- rotates this card and the preview\r\nfunction rotateSelfAndPreview()\r\n - \ self.setRotationSmooth(self.getRotation() + Vector(0, 180, 0))\r\n rotatePreview()\r\nend\r\nend)\nreturn - __bundle_require(\"__root\")" + to manually fix rotation\nfunction onLoad()\n self.addContextMenuItem(\"Rotate + Preview\", rotatePreview)\n self.addContextMenuItem(\"Rotate Card+Preview\", + rotateSelfAndPreview)\nend\n\n-- rotates the alt_view_angle\nfunction rotatePreview()\n + \ local angle = self.alt_view_angle\n if angle.y == 0 then\n angle.y = 180\n + \ else\n angle.y = 0\n end\n self.alt_view_angle = angle\nend\n\n-- rotates + this card and the preview\nfunction rotateSelfAndPreview()\n self.setRotationSmooth(self.getRotation() + + Vector(0, 180, 0))\n rotatePreview()\nend\nend)\nreturn __bundle_require(\"__root\")" LuaScriptState: '' MeasureMovement: false Name: Card @@ -1606,12 +1588,12 @@ ContainedObjects: posX: 12.25 posY: 1.479 posZ: 3.986 - rotX: 0.0 - rotY: 270.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 270 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' CustomDeck: @@ -1670,11 +1652,11 @@ Transform: posX: -56.24 posY: 1.62 posZ: -80.19 - rotX: 0.0 - rotY: 315.0 - rotZ: 180.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + rotX: 0 + rotY: 315 + rotZ: 180 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/FogOfWarTrigger 3aab97.yaml b/unpacked/FogOfWarTrigger 3aab97.yaml index 7bc44ad7b..acc9ece09 100644 --- a/unpacked/FogOfWarTrigger 3aab97.yaml +++ b/unpacked/FogOfWarTrigger 3aab97.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.75 - b: 0.167999953 + a: 0.25 + b: 0.168 g: 0.701 - r: 0.191999972 + r: 0.192 Description: '' DragSelectable: true FogColor: Green @@ -35,9 +35,9 @@ Transform: posX: -21.65 posY: 0.87 posZ: 22.44 - rotX: 0.0 - rotY: 180.0 - rotZ: 0.0 + rotX: 0 + rotY: 180 + rotZ: 0 scaleX: 2.8 scaleY: 0.55 scaleZ: 3.8 diff --git a/unpacked/FogOfWarTrigger Game Data 3dbe47.yaml b/unpacked/FogOfWarTrigger Game Data 3dbe47.yaml index 907295070..dd53c1bfc 100644 --- a/unpacked/FogOfWarTrigger Game Data 3dbe47.yaml +++ b/unpacked/FogOfWarTrigger Game Data 3dbe47.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.75 - b: 0.24999997 - g: 0.24999997 - r: 0.24999997 + a: 0.25 + b: 0.25 + g: 0.25 + r: 0.25 Description: Objects in this zone support game functionality and should not be touched DragSelectable: true FogColor: Black @@ -32,14 +32,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 - posY: 1.9 - posZ: 0.0 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 84.0 - scaleY: 1.5 - scaleZ: 3.0 + posX: 78 + posY: 2.4 + posZ: 0 + rotX: 0 + rotY: 270 + rotZ: 0 + scaleX: 84 + scaleY: 2.5 + scaleZ: 3 Value: 0 XmlUI: '' diff --git a/unpacked/HandTrigger 0285cc.yaml b/unpacked/HandTrigger 0285cc.yaml index 7f5aa2dea..4efdfc5f0 100644 --- a/unpacked/HandTrigger 0285cc.yaml +++ b/unpacked/HandTrigger 0285cc.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 0.167999953 + a: 0 + b: 0.168 g: 0.701 - r: 0.191999972 + r: 0.192 Description: '' DragSelectable: true FogColor: Green diff --git a/unpacked/HandTrigger 5fe087.yaml b/unpacked/HandTrigger 5fe087.yaml index 25ee57e6f..86cbc8864 100644 --- a/unpacked/HandTrigger 5fe087.yaml +++ b/unpacked/HandTrigger 5fe087.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 0.112999953 - g: 0.39199996 - r: 0.9559999 + a: 0 + b: 0.113 + g: 0.392 + r: 0.956 Description: '' DragSelectable: true FogColor: Orange diff --git a/unpacked/HandTrigger a70eee.yaml b/unpacked/HandTrigger a70eee.yaml index 2f980ef4e..07445c2d7 100644 --- a/unpacked/HandTrigger a70eee.yaml +++ b/unpacked/HandTrigger a70eee.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true FogColor: White diff --git a/unpacked/HandTrigger be2f17.yaml b/unpacked/HandTrigger be2f17.yaml index 09c663945..1fa0946b9 100644 --- a/unpacked/HandTrigger be2f17.yaml +++ b/unpacked/HandTrigger be2f17.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.0 - b: 0.09399996 - g: 0.09999997 + a: 0 + b: 0.094 + g: 0.1 r: 0.856 Description: '' DragSelectable: true diff --git a/unpacked/Notecard d8d357.yaml b/unpacked/Notecard d8d357.yaml index 44455495d..f7b2ce581 100644 --- a/unpacked/Notecard d8d357.yaml +++ b/unpacked/Notecard d8d357.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 + b: 1 + g: 1 + r: 1 Description: lua setNotes(getObjectFromGUID('the objects guid').getJSON()) DragSelectable: true GMNotes: '' @@ -27,12 +27,12 @@ Snap: true Sticky: true Tooltip: false Transform: - posX: 78.0 + posX: 78 posY: 1.24 posZ: 33.58 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 + rotX: 0 + rotY: 90 + rotZ: 0 scaleX: 0.25 scaleY: 0.25 scaleZ: 0.25 diff --git a/unpacked/Notecard Arkham SCE 3.2.0 - 8262023 - Page 1 964222.yaml b/unpacked/Notecard Arkham SCE 3.2.0 - 8262023 - Page 1 964222.yaml deleted file mode 100644 index 7ae006a4f..000000000 --- a/unpacked/Notecard Arkham SCE 3.2.0 - 8262023 - Page 1 964222.yaml +++ /dev/null @@ -1,192 +0,0 @@ -AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 -Autoraise: true -ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 -Description: '- Thanks for downloading Arkham SCE 3.2.0! This update adds many new - features including new resource tokens, a campaign exporter, and new hotkeys! - - - - Added fan-made campaign: Unofficial Return to Innsmouth Conspiracy by DerBK! - - - Added fan-made campaigns: Half-Life and Circus Ex Mortis by The Beard!' -DragSelectable: true -GMNotes: '' -GUID: '964222' -Grid: true -GridProjection: false -Hands: false -HideWhenFaceDown: false -IgnoreFoW: false -LayoutGroupSortIndex: 0 -Locked: false -LuaScript: '' -LuaScriptState: '' -MeasureMovement: false -Name: Notecard -Nickname: Arkham SCE 3.2.0 - 8/26/2023 - Page 1 -Snap: true -States: - '2': - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 - Description: '- Resource tokens spawned automatically now have different states - for commonly used special types like Ammo, Charges, etc. - - - New campaign importer/exporter by Entrox Licher allows saving of campaign - state as a saveable object! - - - Added Subject 5U-21 and Parallel "Ashcan" Pete! - - - Added new hotkeys for taking a clue and moving cards to the victory display.' - DragSelectable: true - GMNotes: '' - GUID: 22e0fe - Grid: true - GridProjection: false - Hands: false - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Notecard - Nickname: Arkham SCE 3.2.0 - 8/26/2023 - Page 2 - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 9.088579 - posY: 1.551499 - posZ: -31.51038 - rotX: 3.48307424e-07 - rotY: 89.90733 - rotZ: 6.263613e-08 - scaleX: 3.0 - scaleY: 1.0 - scaleZ: 3.0 - Value: 0 - XmlUI: '' - '3': - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 - Description: '- Updated the Chaos Bag Manager and Token Arranger, and promoted - them to be placed on the table by default. - - - Updated functionality of upkeep auto-rotate to allow for "double-exhausted" - cards. - - - Sealing cards now survive save/load. - - - Other miscellaneous bugfixes. - - ' - DragSelectable: true - GMNotes: '' - GUID: 752c91 - Grid: true - GridProjection: false - Hands: false - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Notecard - Nickname: Arkham SCE 3.2.0 - 8/26/2023 - Page 3 - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 9.088582 - posY: 1.551499 - posZ: -31.51038 - rotX: 4.213519e-07 - rotY: 89.9073257 - rotZ: 2.25048439e-07 - scaleX: 3.0 - scaleY: 1.0 - scaleZ: 3.0 - Value: 0 - XmlUI: '' - '4': - AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 - Autoraise: true - ColorDiffuse: - b: 1.0 - g: 1.0 - r: 1.0 - Description: '- In the coming weeks, we''ll add another update adding new community - content to the remote repository. If you have content you would like us to add, - please repost it in the #player-contributions channel with the hashtag #3.2.xContent - - - Thank you to everyone for continuing to play and develop for the mod!' - DragSelectable: true - GMNotes: '' - GUID: 0e1fb2 - Grid: true - GridProjection: false - Hands: false - HideWhenFaceDown: false - IgnoreFoW: false - LayoutGroupSortIndex: 0 - Locked: false - LuaScript: '' - LuaScriptState: '' - MeasureMovement: false - Name: Notecard - Nickname: Arkham SCE 3.2.0 - 8/26/2023 - Page 4 - Snap: true - Sticky: true - Tooltip: true - Transform: - posX: 9.088561 - posY: 1.55150378 - posZ: -31.5103912 - rotX: 1.85548761e-05 - rotY: 89.90725 - rotZ: 2.71951e-05 - scaleX: 3.0 - scaleY: 1.0 - scaleZ: 3.0 - Value: 0 - XmlUI: '' -Sticky: true -Tooltip: true -Transform: - posX: -27.0 - posY: 1.55 - posZ: -56.16 - rotX: 0.0 - rotY: 89.98 - rotZ: 0.0 - scaleX: 3.0 - scaleY: 1.0 - scaleZ: 3.0 -Value: 0 -XmlUI: '' diff --git a/unpacked/Notecard Arkham SCE 3.5.0 - 1252024 - Page 1 2d0dbb.yaml b/unpacked/Notecard Arkham SCE 3.5.0 - 1252024 - Page 1 2d0dbb.yaml new file mode 100644 index 000000000..ca3661761 --- /dev/null +++ b/unpacked/Notecard Arkham SCE 3.5.0 - 1252024 - Page 1 2d0dbb.yaml @@ -0,0 +1,196 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 1 + g: 1 + r: 1 +Description: 'Thanks for downloading Arkham SCE 3.5.0! + + + - Added all officially-previewed Feast of Hemlock Vale player cards! + + - Added Parallel Monterey Jack! + + - The options panel has many new settings available. + + - Added new scripting to Empirical Hypothesis, accessible via right-clicking the + card. + + ' +DragSelectable: true +GMNotes: '' +GUID: 2d0dbb +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: false +LuaScript: '' +LuaScriptState: '' +MeasureMovement: false +Name: Notecard +Nickname: Arkham SCE 3.5.0 - 1/25/2024 - Page 1 +Snap: true +States: + '2': + AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + Description: '- The Deck Importer now supports custom cards! Requires using the + Additional Player Cards bag and the nearby ArkhamDB instruction generator. Only + works with cards with Zoop metadata or an ''id'' field in metadata. + + - Added a reshuffle button under the encounter card discard. + + - The Doom Counter now also prints the doom threshold when updated.' + DragSelectable: true + GMNotes: '' + GUID: 313b1d + Grid: true + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: '' + LuaScriptState: '' + MeasureMovement: false + Name: Notecard + Nickname: Arkham SCE 3.5.0 - 1/25/2024 - Page 2 + Snap: true + Sticky: true + Tooltip: true + Transform: + posX: -6.36890459 + posY: 1.55641556 + posZ: -34.33106 + rotX: 3.95979223e-05 + rotY: 90.00111 + rotZ: 0.027191259 + scaleX: 3 + scaleY: 1 + scaleZ: 3 + Value: 0 + XmlUI: '' + '3': + AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + Description: '- Bless/Curse manager has been slimmed down. All cards that would + have needed "take/remove" have proper right-click menus. + + - Drawing another color''s player cards using hotkeys draws them to the corresponding + hand. + + - Added hotkeys for changing seats. Only seats with an investigator card present + are included.' + DragSelectable: true + GMNotes: '' + GUID: 3c1fdd + Grid: true + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: '' + LuaScriptState: '' + MeasureMovement: false + Name: Notecard + Nickname: Arkham SCE 3.5.0 - 1/25/2024 - Page 3 + Snap: true + Sticky: true + Tooltip: true + Transform: + posX: -6.36890554 + posY: 1.55641556 + posZ: -34.33106 + rotX: 3.961793e-05 + rotY: 90.00111 + rotZ: 0.02719125 + scaleX: 3 + scaleY: 1 + scaleZ: 3 + Value: 0 + XmlUI: '' + '4': + AltLookAngle: + x: 0 + y: 0 + z: 0 + Autoraise: true + ColorDiffuse: + b: 1 + g: 1 + r: 1 + Description: '- Campaign Exporter updated with bugfixes and additional features + such as support for the new Additional Player Cards bag. + + - Many more miscellaneous bugfixes. Thanks for reporting them! + + + - Special thanks to everyone helping out others with any questions they have + with the mod. We see and appreciate you!' + DragSelectable: true + GMNotes: '' + GUID: c677b8 + Grid: true + GridProjection: false + Hands: false + HideWhenFaceDown: false + IgnoreFoW: false + LayoutGroupSortIndex: 0 + Locked: false + LuaScript: '' + LuaScriptState: '' + MeasureMovement: false + Name: Notecard + Nickname: Arkham SCE 3.5.0 - 1/25/2024 - Page 4 + Snap: true + Sticky: true + Tooltip: true + Transform: + posX: -6.3689065 + posY: 1.55641556 + posZ: -34.33106 + rotX: 3.95979223e-05 + rotY: 90.00111 + rotZ: 0.0271912515 + scaleX: 3 + scaleY: 1 + scaleZ: 3 + Value: 0 + XmlUI: '' +Sticky: true +Tooltip: true +Transform: + posX: -27 + posY: 1.55 + posZ: -56.16 + rotX: 0 + rotY: 90 + rotZ: 0 + scaleX: 3 + scaleY: 1 + scaleZ: 3 +Value: 0 +XmlUI: '' diff --git a/unpacked/ScriptingTrigger a2f932.yaml b/unpacked/ScriptingTrigger a2f932.yaml index 3bb9b251e..331e5d668 100644 --- a/unpacked/ScriptingTrigger a2f932.yaml +++ b/unpacked/ScriptingTrigger a2f932.yaml @@ -1,13 +1,13 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.509803951 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0.5098 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' @@ -30,12 +30,12 @@ Tooltip: true Transform: posX: -27.94 posY: 3.5 - posZ: 0.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 37.0 - scaleY: 4.0 - scaleZ: 37.0 + posZ: 0 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 37 + scaleY: 4 + scaleZ: 37 Value: 0 XmlUI: '' diff --git a/unpacked/ScriptingTrigger fb28e1.yaml b/unpacked/ScriptingTrigger ChaosBagZone 83ef06.yaml similarity index 83% rename from unpacked/ScriptingTrigger fb28e1.yaml rename to unpacked/ScriptingTrigger ChaosBagZone 83ef06.yaml index 6495db1dd..d4bc50f24 100644 --- a/unpacked/ScriptingTrigger fb28e1.yaml +++ b/unpacked/ScriptingTrigger ChaosBagZone 83ef06.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.509803951 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0.5098 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' -GUID: fb28e1 +GUID: 83ef06 Grid: true GridProjection: false Hands: false @@ -23,7 +23,7 @@ LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: ScriptingTrigger -Nickname: '' +Nickname: ChaosBagZone Snap: true Sticky: true Tooltip: true diff --git a/unpacked/ScriptingTrigger 18538f.yaml b/unpacked/ScriptingTrigger TokenDiscardZone 457de3.yaml similarity index 80% rename from unpacked/ScriptingTrigger 18538f.yaml rename to unpacked/ScriptingTrigger TokenDiscardZone 457de3.yaml index 030a0260a..b921204cd 100644 --- a/unpacked/ScriptingTrigger 18538f.yaml +++ b/unpacked/ScriptingTrigger TokenDiscardZone 457de3.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.509803951 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0.5098 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' -GUID: 18538f +GUID: 457de3 Grid: true GridProjection: false Hands: false @@ -23,10 +23,10 @@ LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: ScriptingTrigger -Nickname: '' +Nickname: TokenDiscardZone Snap: true Sticky: true -Tooltip: true +Tooltip: false Transform: posX: -28.29 posY: 1.49 diff --git a/unpacked/ScriptingTrigger 83ef06.yaml b/unpacked/ScriptingTrigger TokenDiscardZone 457de4.yaml similarity index 60% rename from unpacked/ScriptingTrigger 83ef06.yaml rename to unpacked/ScriptingTrigger TokenDiscardZone 457de4.yaml index 911d73feb..955817fee 100644 --- a/unpacked/ScriptingTrigger 83ef06.yaml +++ b/unpacked/ScriptingTrigger TokenDiscardZone 457de4.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.509803951 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0.5098 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' -GUID: 83ef06 +GUID: 457de4 Grid: true GridProjection: false Hands: false @@ -23,19 +23,19 @@ LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: ScriptingTrigger -Nickname: '' +Nickname: TokenDiscardZone Snap: true Sticky: true -Tooltip: true +Tooltip: false Transform: - posX: 1.4 - posY: 2.87 - posZ: -13.4 - rotX: 0.0 - rotY: 90.0 - rotZ: 0.0 - scaleX: 6.0 - scaleY: 2.0 - scaleZ: 6.0 + posX: -65 + posY: 1.5 + posZ: -16.1 + rotX: 0 + rotY: 90 + rotZ: 0 + scaleX: 22 + scaleY: 0.5 + scaleZ: 5 Value: 0 XmlUI: '' diff --git a/unpacked/ScriptingTrigger 7af2cf.yaml b/unpacked/ScriptingTrigger TokenDiscardZone 457de5.yaml similarity index 60% rename from unpacked/ScriptingTrigger 7af2cf.yaml rename to unpacked/ScriptingTrigger TokenDiscardZone 457de5.yaml index 2a8b9c0cb..3150d3034 100644 --- a/unpacked/ScriptingTrigger 7af2cf.yaml +++ b/unpacked/ScriptingTrigger TokenDiscardZone 457de5.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.509803951 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0.5098 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' -GUID: 7af2cf +GUID: 457de5 Grid: true GridProjection: false Hands: false @@ -23,19 +23,19 @@ LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: ScriptingTrigger -Nickname: '' +Nickname: TokenDiscardZone Snap: true Sticky: true -Tooltip: true +Tooltip: false Transform: - posX: -57.0 - posY: 1.54 - posZ: 4.54 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 3.0 - scaleY: 5.0 - scaleZ: 8.0 + posX: -30.35 + posY: 1.5 + posZ: 36.6 + rotX: 0 + rotY: 180 + rotZ: 0 + scaleX: 22 + scaleY: 0.5 + scaleZ: 5 Value: 0 XmlUI: '' diff --git a/unpacked/ScriptingTrigger b047f8.yaml b/unpacked/ScriptingTrigger TokenDiscardZone 457de6.yaml similarity index 60% rename from unpacked/ScriptingTrigger b047f8.yaml rename to unpacked/ScriptingTrigger TokenDiscardZone 457de6.yaml index e4d8c6fed..a64a49a0c 100644 --- a/unpacked/ScriptingTrigger b047f8.yaml +++ b/unpacked/ScriptingTrigger TokenDiscardZone 457de6.yaml @@ -1,17 +1,17 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - a: 0.509803951 - b: 1.0 - g: 1.0 - r: 1.0 + a: 0.5098 + b: 1 + g: 1 + r: 1 Description: '' DragSelectable: true GMNotes: '' -GUID: b047f8 +GUID: 457de6 Grid: true GridProjection: false Hands: false @@ -23,19 +23,19 @@ LuaScript: '' LuaScriptState: '' MeasureMovement: false Name: ScriptingTrigger -Nickname: '' +Nickname: TokenDiscardZone Snap: true Sticky: true -Tooltip: true +Tooltip: false Transform: - posX: -57.0 - posY: 1.54 - posZ: -27.65 - rotX: 0.0 - rotY: 270.0 - rotZ: 0.0 - scaleX: 3.0 - scaleY: 5.0 - scaleZ: 8.0 + posX: -30.35 + posY: 1.5 + posZ: -36.6 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 22 + scaleY: 0.5 + scaleZ: 5 Value: 0 XmlUI: '' diff --git a/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.ttslua b/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.ttslua index 5602e5638..0538b90b6 100644 --- a/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.ttslua +++ b/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.ttslua @@ -113,6 +113,7 @@ local settingsOpenForColor local visibility = {} local claims = {} local pitch = {} +local distance = {} --------------------------------------------------------- -- save/load functionality @@ -122,7 +123,8 @@ function onSave() return JSON.encode({ visibility = visibility, claims = claims, - pitch = pitch + pitch = pitch, + distance = distance }) end @@ -132,6 +134,7 @@ function onLoad(savedData) visibility = loadedData.visibility claims = loadedData.claims pitch = loadedData.pitch + distance = loadedData.distance else local allColors = Player.getColors() @@ -304,9 +307,6 @@ function getDynamicViewBounds(objList) } for _, obj in pairs(objList) do - -- handling for Physics.cast() results - if not obj.type then obj = obj.hit_object end - if not obj.hasTag("CameraZoom_ignore") and not obj.hasTag("CampaignLog") then count = count + 1 local bounds = obj.getBounds() @@ -338,9 +338,30 @@ function getDynamicViewBounds(objList) return totalBounds end +function loadCameraFromApi(params) + loadCamera(params.player, params.camera) +end + -- loads the specified camera for a player -function loadCamera(player, index) - local lookHere +---@param player TTSPlayerInstance Player whose camera should be moved +---@param camera Variant If number: Index of the camera view to load | If string: Color of the playermat to swap to +function loadCamera(player, camera) + local lookHere, index, matColor + local matColorList = { "White", "Orange", "Green", "Red" } + local indexList = { + White = 3, + Orange = 4, + Green = 5, + Red = 6 + } + + if tonumber(camera) then + index = tonumber(camera) + matColor = matColorList[index - 2] -- mat index 1 - 4 + else + index = indexList[camera] + matColor = camera + end -- dynamic view of the play area if index == 2 then @@ -354,9 +375,6 @@ function loadCamera(player, index) } -- dynamic view of the clicked play mat elseif index >= 3 and index <= 6 then - local matColorList = { "White", "Orange", "Green", "Red" } - local matColor = matColorList[index - 2] -- mat index 1 - 4 - -- check if anyone (except for yourself) has claimed this color local isClaimed = false @@ -372,10 +390,11 @@ function loadCamera(player, index) local newPlayerColor = playmatApi.getPlayerColor(matColor) copyVisibility({ startColor = player.color, targetColor = newPlayerColor }) player.changeColor(newPlayerColor) + player = Player[newPlayerColor] end -- search on the playmat for objects - local bounds = getDynamicViewBounds(playmatApi.searchPlaymat(matColor)) + local bounds = getDynamicViewBounds(playmatApi.searchAroundPlaymat(matColor)) lookHere = { position = { bounds.middleX, 0, bounds.middleZ }, @@ -393,6 +412,9 @@ function loadCamera(player, index) -- set pitch to default if not edited lookHere.pitch = pitch[player.color] or 75 + -- update distance based on selected multiplier + lookHere.distance = lookHere.distance * (distance[player.color] or 100) / 100 + -- delay is to account for colorswap Wait.frames(function() player.lookAt(lookHere) end, 2) end @@ -413,8 +435,9 @@ function loadDefaultSettings(player) claims[player.color][color] = (player.color == color) end - -- reset pitch for that player + -- reset pitch/distance for that player pitch[player.color] = nil + distance[player.color] = nil -- update the UI accordingly updateSettingsUI(player) @@ -436,15 +459,21 @@ function toggleSettings(player) end end --- called by the slider +-- called by the navigation overlay options function updatePitch(player, number) pitch[player.color] = number end +-- called by the navigation overlay options +function updateDistance(player, number) + distance[player.color] = number +end + -- updates the settings UI for the provided player function updateSettingsUI(player) - -- update the slider + -- update the sliders UI.setAttribute("sliderPitch", "value", pitch[player.color] or 75) + UI.setAttribute("sliderDistance", "value", distance[player.color] or 100) -- update the claims local matColorList = { "White", "Orange", "Green", "Red" } @@ -455,219 +484,389 @@ end end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi end end) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local GUIDReferenceApi = {} + + local function getGuidHandler() + return getObjectFromGUID("123456") + end + + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + 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 + 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 + 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 + + 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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") \ No newline at end of file diff --git a/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.yaml b/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.yaml index b1ed6cf32..b92cc04cb 100644 --- a/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.yaml +++ b/unpacked/go_game_piece_black Navigation Overlay Handler 797ede.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.0 - g: 0.0 - r: 0.0 + b: 0 + g: 0 + r: 0 Description: This object contains the code for the "Navigation Overlay". DragSelectable: true GMNotes: '' @@ -19,7 +19,7 @@ IgnoreFoW: false LayoutGroupSortIndex: 0 Locked: true LuaScript: !include 'go_game_piece_black Navigation Overlay Handler 797ede.ttslua' -LuaScriptState: '{"claims":{"Black":[],"Blue":[],"Brown":[],"Green":[],"Grey":[],"Orange":[],"Pink":[],"Purple":[],"Red":[],"Teal":[],"White":[],"Yellow":[]},"pitch":[],"visibility":{"Black":{"full":false,"play":false},"Blue":{"full":false,"play":false},"Brown":{"full":false,"play":false},"Green":{"full":false,"play":false},"Grey":{"full":false,"play":false},"Orange":{"full":false,"play":false},"Pink":{"full":false,"play":false},"Purple":{"full":false,"play":false},"Red":{"full":false,"play":false},"Teal":{"full":false,"play":false},"White":{"full":false,"play":false},"Yellow":{"full":false,"play":false}}}' +LuaScriptState: '{"claims":{"Black":[],"Blue":[],"Brown":[],"Green":[],"Grey":[],"Orange":[],"Pink":[],"Purple":[],"Red":[],"Teal":[],"White":[],"Yellow":[]},"distance":[],"pitch":[],"visibility":{"Black":{"full":false,"play":false},"Blue":{"full":false,"play":false},"Brown":{"full":false,"play":false},"Green":{"full":false,"play":false},"Grey":{"full":false,"play":false},"Orange":{"full":false,"play":false},"Pink":{"full":false,"play":false},"Purple":{"full":false,"play":false},"Red":{"full":false,"play":false},"Teal":{"full":false,"play":false},"White":{"full":false,"play":false},"Yellow":{"full":false,"play":false}}}' MeasureMovement: false Name: go_game_piece_black Nickname: Navigation Overlay Handler @@ -27,14 +27,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.33 - posZ: -12.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posZ: -12 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: '' diff --git a/unpacked/go_game_piece_white GUID Reference Handler 123456.ttslua b/unpacked/go_game_piece_white GUID Reference Handler 123456.ttslua new file mode 100644 index 000000000..9768d8571 --- /dev/null +++ b/unpacked/go_game_piece_white GUID Reference Handler 123456.ttslua @@ -0,0 +1,207 @@ +-- Bundled by luabundle {"version":"1.6.0"} +local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) + local loadingPlaceholder = {[{}] = true} + + local register + local modules = {} + + local require + local loaded = {} + + register = function(name, body) + if not modules[name] then + modules[name] = body + end + end + + require = function(name) + local loadedModule = loaded[name] + + if loadedModule then + if loadedModule == loadingPlaceholder then + return nil + end + else + if not modules[name] then + if not superRequire then + local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) + error('Tried to require ' .. identifier .. ', but no such module has been registered') + else + return superRequire(name) + end + end + + loaded[name] = loadingPlaceholder + loadedModule = modules[name](require, loaded, register, modules) + loaded[name] = loadedModule + end + + return loadedModule + end + + return require, loaded, register, modules +end)(nil) +__bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) +require("core/GUIDReferenceHandler") +end) +__bundle_register("core/GUIDReferenceHandler", function(require, _LOADED, __bundle_register, __bundle_modules) +local GuidReferences = { + White = { + ClueCounter = "d86b7c", + ClickableClueCounter = "db85d6", + DamageCounter = "eb08d6", + HandZone = "a70eee", + HorrorCounter = "468e88", + InvestigatorSkillTracker = "e598c2", + Playermat = "8b081b", + ResourceCounter = "4406f0", + TokenDiscardZone = "457de3", + Trash = "147e80" + }, + Orange = { + ClueCounter = "1769ed", + ClickableClueCounter = "3f22e5", + DamageCounter = "e64eec", + HandZone = "5fe087", + HorrorCounter = "0257d9", + InvestigatorSkillTracker = "b4a5f7", + Playermat = "bd0ff4", + ResourceCounter = "816d84", + TokenDiscardZone = "457de4", + Trash = "f7b6c8" + }, + Green = { + ClueCounter = "032300", + ClickableClueCounter = "891403", + DamageCounter = "1f5a0a", + HandZone = "0285cc", + HorrorCounter = "7b5729", + InvestigatorSkillTracker = "af7ed7", + PoolResources = "0168ae", + PoolDamage = "b0ef6c", + PoolHorror = "ae1a4e", + PoolClues = "fae2f6", + PoolDoom = "16724b", + Playermat = "383d8b", + ResourceCounter = "cd15ac", + TokenDiscardZone = "457de5", + TokenRemover = "2ba7a5", + Trash = "5f896a" + }, + Red = { + ClueCounter = "37be78", + ClickableClueCounter = "4111de", + DamageCounter = "591a45", + HandZone = "be2f17", + HorrorCounter = "beb964", + InvestigatorSkillTracker = "e74881", + PoolResources = "fd617a", + PoolDamage = "93f4a0", + PoolHorror = "7bd2a0", + PoolClues = "3b2550", + PoolDoom = "16fcd6", + Playermat = "0840d5", + ResourceCounter = "a4b60d", + TokenDiscardZone = "457de6", + TokenRemover = "39b175", + Trash = "4b8594" + }, + Mythos = { + AdditionalPlayerCardsBag = "2cba6b", + AllCardsBag = "15bb07", + BlessCurseManager = "5933fb", + CampaignThePathToCarcosa = "aca04c", + ChaosBagZone = "83ef06", + DataHelper = "708279", + DeckImporter = "a28140", + DoomCounter = "85c4c6", + DoomInPlayCounter = "652ff3", + InvestigatorCounter = "f182ee", + MasterClueCounter = "4a3aa4", + MythosArea = "9f334f", + NavigationOverlayHandler = "797ede", + OptionPanelSource = "830bd0", + PlaceholderBoxDummy = "a93466", + PlayArea = "721ba2", + PlayAreaImageSelector = "b7b45b", + PlayAreaZone = "a2f932", + PlayerCardPanel = "2d30ee", + ResourceTokenBag = "9fadf9", + RulesReference = "d99993", + SoundCube = "3c988f", + TokenArranger = "022907", + TokenSource = "124381", + TokenSpawnTracker = "e3ffc9", + TourStarter = "0e5aa8", + Trash = "70b9f6", + VictoryDisplay = "6ccd6d" + } +} + +local editsToIndex = { + White = {}, + Orange = {}, + Green = {}, + Red = {}, + Mythos = {} +} + +-- save function to keep edits to the index +function onSave() return JSON.encode({ editsToIndex = editsToIndex }) end + +-- load function to restore edits to the index +function onLoad(savedData) + if savedData and savedData ~= "" then + local loadedData = JSON.decode(savedData) + editsToIndex = loadedData.editsToIndex + updateMainIndex() + end +end + +-- merges the main index and the edits +function updateMainIndex() + for owner, subTable in pairs(editsToIndex) do + for type, guid in pairs(subTable) do + GuidReferences[owner][type] = guid + end + end +end + +-- returns an object reference for the requested owner and type +function getObjectByOwnerAndType(params) + local owner = params.owner or "Mythos" + local type = params.type + return getObjectFromGUID(GuidReferences[owner][type]) +end + +-- returns a list of objects for the requested type +function getObjectsByType(type) + local objList = {} + for owner, objects in pairs(GuidReferences) do + local obj = getObjectFromGUID(objects[type]) + if obj then + objList[owner] = obj + end + end + return objList +end + +-- returns a list of objects for the requested owner +function getObjectsByOwner(owner) + local objList = {} + for type, guid in pairs(GuidReferences[owner]) do + local obj = getObjectFromGUID(guid) + if obj then + objList[type] = obj + end + end + return objList +end + +-- makes an edit to the main index +function editIndex(params) + editsToIndex[params.owner][params.type] = params.guid + updateMainIndex() +end +end) +return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/go_game_piece_white GUID Reference Handler 123456.yaml b/unpacked/go_game_piece_white GUID Reference Handler 123456.yaml new file mode 100644 index 000000000..22da0fd11 --- /dev/null +++ b/unpacked/go_game_piece_white GUID Reference Handler 123456.yaml @@ -0,0 +1,40 @@ +AltLookAngle: + x: 0 + y: 0 + z: 0 +Autoraise: true +ColorDiffuse: + b: 0.116 + g: 0.116 + r: 0.716 +Description: This object handles GUID references to objects. +DragSelectable: true +GMNotes: '' +GUID: '123456' +Grid: true +GridProjection: false +Hands: false +HideWhenFaceDown: false +IgnoreFoW: false +LayoutGroupSortIndex: 0 +Locked: true +LuaScript: !include 'go_game_piece_white GUID Reference Handler 123456.ttslua' +LuaScriptState: '{"editsToIndex":{"Green":[],"Mythos":[],"Orange":[],"Red":[],"White":[]}}' +MeasureMovement: false +Name: go_game_piece_white +Nickname: GUID Reference Handler +Snap: true +Sticky: true +Tooltip: true +Transform: + posX: 78 + posY: 1.33 + posZ: -8 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 +Value: 0 +XmlUI: '' diff --git a/unpacked/go_game_piece_white Game Key Handler fce69c.ttslua b/unpacked/go_game_piece_white Game Key Handler fce69c.ttslua index 486ca9562..61c0d2233 100644 --- a/unpacked/go_game_piece_white Game Key Handler fce69c.ttslua +++ b/unpacked/go_game_piece_white Game Key Handler fce69c.ttslua @@ -41,239 +41,512 @@ local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = ( return require, loaded, register, modules end)(nil) +__bundle_register("core/NavigationOverlayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local NavigationOverlayApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getNOHandler() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "NavigationOverlayHandler") + end + + -- Copies the visibility for the Navigation overlay + ---@param startColor String Color of the player to copy from + ---@param targetColor String Color of the targeted player + NavigationOverlayApi.copyVisibility = function(startColor, targetColor) + getNOHandler().call("copyVisibility", { + startColor = startColor, + targetColor = targetColor + }) + end + + -- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.) + ---@param playerColor String Color of the player to update the visibility for + NavigationOverlayApi.cycleVisibility = function(playerColor) + getNOHandler().call("cycleVisibility", playerColor) + end + + -- loads the specified camera for a player + ---@param player TTSPlayerInstance Player whose camera should be moved + ---@param camera Variant If number: Index of the camera view to load | If string: Color of the playermat to swap to + NavigationOverlayApi.loadCamera = function(player, camera) + getNOHandler().call("loadCameraFromApi", { + player = player, + camera = camera + }) + end + + return NavigationOverlayApi +end +end) __bundle_register("playermat/PlaymatApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local PlaymatApi = { } - local internal = { } + local PlaymatApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + local searchLib = require("util/SearchLib") - local MAT_IDS = { - White = "8b081b", - Orange = "bd0ff4", - Green = "383d8b", - Red = "0840d5" - } - - local CLUE_COUNTER_GUIDS = { - White = "37be78", - Orange = "1769ed", - Green = "032300", - Red = "d86b7c" - } - - local CLUE_CLICKER_GUIDS = { - White = "db85d6", - Orange = "3f22e5", - Green = "891403", - Red = "4111de" - } - - -- Returns the color of the by position requested playermat as string - ---@param startPos Table Position of the search, table get's roughly cut into 4 quarters to assign a playermat - PlaymatApi.getMatColorByPosition = function(startPos) - if startPos.x < -42 then - if startPos.z > 0 then - return "White" - else - return "Orange" - end + -- 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 array Table Single-element if only single playmat is requested + local function getMatForColor(matColor) + if matColor == "All" then + return guidReferenceApi.getObjectsByType("Playermat") else - if startPos.z > 0 then - return "Green" - else - return "Red" + 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 the color of the player's hand that is seated next to the playermat - ---@param matColor String Color of the playermat - PlaymatApi.getPlayerColor = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("playerColor") - end - - -- Returns the color of the playermat that owns the playercolor's hand - ---@param handColor String Color of the playermat - PlaymatApi.getMatColor = function(handColor) - local matColors = {"White", "Orange", "Green", "Red"} - for i, mat in ipairs(internal.getMatForColor("All")) do - local color = mat.getVar("playerColor") - if color == handColor then return matColors[i] end - end - return "NOT_FOUND" - end - - -- Returns the result of a cast in the specificed playermat's area - ---@param matColor String Color of the playermat - PlaymatApi.searchPlaymat = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("searchAroundSelf") - end - - -- Returns if there is the card "Dream-Enhancing Serum" on the requested playermat - ---@param matColor String Color of the playermat + -- 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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("isDES") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("isDES") + end end - -- Returns the draw deck of the requested playmat - ---@param matColor String Color of the playermat - PlaymatApi.getDrawDeck = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - mat.call("getDrawDiscardDecks") - return mat.getVar("drawDeck") + -- 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.getDiscardPosition = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("returnGlobalDiscardPosition") + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.transformLocalPosition = function(localPos, matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.positionToWorld(localPos) + 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnRotation = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getRotation() + 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 playermat + ---@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) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.call("doUpkeepFromHotkey", 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 playermat + ---@param matColor String Color of the playmat - White, Orange, Green or Red (does not support "All") PlaymatApi.returnInvestigatorId = function(matColor) - local mat = getObjectFromGUID(MAT_IDS[matColor]) - return mat.getVar("activeInvestigatorId") + for _, mat in pairs(getMatForColor(matColor)) do + return mat.getVar("activeInvestigatorId") + end end - -- Sets the requested playermat's snap points to limit snapping to matching card types or not. If + -- Sets the requested playmat's snap points to limit snapping to matching card types or not. If -- matchTypes is true, the main card slot snap points will only snap assets, while the -- 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 for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + ---@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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("setLimitSnapsByType", matchCardTypes) end end - -- Sets the requested playermat's draw 1 button to visible - ---@param isDrawButtonVisible Boolean. Whether the draw 1 button should be visible or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("showDrawButton", isDrawButtonVisible) end end - -- Shows or hides the clickable clue counter for the requested playermat - ---@param showCounter Boolean. Whether the clickable counter should be present or not - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + 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 playermat - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will apply the setting to all four mats. + -- 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("removeClues") end end - -- Reports the clue count for the requested playermat + -- 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 ipairs(internal.getMatForColor(matColor)) do - count = count + tonumber(mat.call("getClueCount", useClickableCounters)) + for _, mat in pairs(getMatForColor(matColor)) do + count = count + mat.call("getClueCount", useClickableCounters) end return count end - -- Adds the specified amount of resources to the requested playermat's resource counter - PlaymatApi.gainResources = function(amount, matColor) - for _, mat in ipairs(internal.getMatForColor(matColor)) do - mat.call("gainResources", amount) + -- 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 _, mat in pairs(getMatForColor(matColor)) do + for _, obj in ipairs(mat.call("searchAroundSelf", filter)) do + table.insert(objList, obj) + 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 ipairs(internal.getMatForColor(matColor)) do + for _, mat in pairs(getMatForColor(matColor)) do mat.call("doDiscardOne") end end + -- Triggers the metadata sync for all playmats PlaymatApi.syncAllCustomizableCards = function() - for _, mat in ipairs(internal.getMatForColor("All")) do + for _, mat in pairs(getMatForColor("All")) do mat.call("syncAllCustomizableCards") end end - -- Convenience function to look up a mat's object by color, or get all mats. - ---@param matColor String for one of the active player colors - White, Orange, Green, Red. Also - -- accepts "All" as a special value which will return all four mats. - ---@return: Array of playermat objects. If a single mat is requested, will return a single-element - -- array to simplify processing by consumers. - internal.getMatForColor = function(matColor) - local targetMatGuid = MAT_IDS[matColor] - if targetMatGuid != nil then - return { getObjectFromGUID(targetMatGuid) } - end - if matColor == "All" then - return { - getObjectFromGUID(MAT_IDS.White), - getObjectFromGUID(MAT_IDS.Orange), - getObjectFromGUID(MAT_IDS.Green), - getObjectFromGUID(MAT_IDS.Red), - } - end - end - return PlaymatApi 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 Table Global position + ---@param rot Table 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) + if filter then filter = 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 filter(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("core/GameKeyHandler") 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) + 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) + 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) + 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 TTSObject Hovered object + BlessCurseManagerApi.addBlurseSealingMenu = function(playerColor, hoveredObject) + getManager().call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) + end + + return BlessCurseManagerApi +end +end) +__bundle_register("core/OptionPanelApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local OptionPanelApi = {} + + -- loads saved options + ---@param options Table New options table + OptionPanelApi.loadSettings = function(options) + return Global.call("loadSettings", options) + end + + -- returns option panel table + OptionPanelApi.getOptions = function() + return Global.getTable("optionPanel") + end + + return OptionPanelApi +end +end) +__bundle_register("core/VictoryDisplayApi", function(require, _LOADED, __bundle_register, __bundle_modules) +do + local VictoryDisplayApi = {} + local guidReferenceApi = require("core/GUIDReferenceApi") + + local function getVictoryDisplay() + return guidReferenceApi.getObjectByOwnerAndType("Mythos", "VictoryDisplay") + end + + -- triggers an update of the Victory count + ---@param delay Number Delay in seconds after which the update call is executed + VictoryDisplayApi.update = function(delay) + getVictoryDisplay().call("startUpdate", delay) + end + + -- moves a card to the victory display (in the first empty spot) + ---@param object Object Object that should be checked and potentially moved + VictoryDisplayApi.placeCard = function(object) + if object ~= nil and object.tag == "Card" then + getVictoryDisplay().call("placeCard", object) + end + end + + return VictoryDisplayApi +end +end) __bundle_register("core/GameKeyHandler", function(require, _LOADED, __bundle_register, __bundle_modules) local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") +local guidReferenceApi = require("core/GUIDReferenceApi") +local navigationOverlayApi = require("core/NavigationOverlayApi") +local optionPanelApi = require("core/OptionPanelApi") local playmatApi = require("playermat/PlaymatApi") +local searchLib = require("util/SearchLib") local victoryDisplayApi = require("core/VictoryDisplayApi") function onLoad() - addHotkey("Add Doom to Agenda", addDoomToAgenda) - addHotkey("Bless/Curse Status", showBlessCurseStatus) + addHotkey("Add doom to agenda", addDoomToAgenda) + addHotkey("Add Bless/Curse context menu", addBlurseSealingMenu) + addHotkey("Discard object", discardObject) + addHotkey("Discard top card", discardTopDeck) + addHotkey("Display Bless/Curse status", showBlessCurseStatus) addHotkey("Move card to Victory Display", moveCardToVictoryDisplay) + addHotkey("Remove a use", removeOneUse) + addHotkey("Switch seat clockwise", switchSeatClockwise) + addHotkey("Switch seat counter-clockwise", switchSeatCounterClockwise) addHotkey("Take clue from location", takeClueFromLocation) addHotkey("Upkeep", triggerUpkeep) addHotkey("Upkeep (Multi-handed)", triggerUpkeepMultihanded) - addHotkey("Wendy's Menu", addWendysMenu) end -- triggers the "Upkeep" function of the calling player's playmat @@ -304,7 +577,80 @@ end -- adds 1 doom to the agenda function addDoomToAgenda() - getObjectFromGUID("85c4c6").call("addVal", 1) + local doomCounter = guidReferenceApi.getObjectByOwnerAndType("Mythos", "DoomCounter") + doomCounter.call("addVal", 1) +end + +-- discard the hovered object to the respective trashcan and discard tokens on it if it was a card +function discardObject(playerColor, hoveredObject) + -- only continue if an unlocked card, deck or tile was hovered + if hoveredObject == nil + or (hoveredObject.type ~= "Card" and hoveredObject.type ~= "Deck" and hoveredObject.type ~= "Tile") + or hoveredObject.locked then + broadcastToColor("Hover a token/tile or a card/deck and try again.", playerColor, "Yellow") + return + end + + -- warning for locations since these are usually not meant to be discarded + if hoveredObject.hasTag("Location") then + broadcastToAll("Watch out: A location was discarded.", "Yellow") + end + + -- initialize list of objects to discard + local discardTheseObjects = { hoveredObject } + + -- discard tokens / tiles on cards / decks + if hoveredObject.type ~= "Tile" then + for _, obj in ipairs(searchLib.onObject(hoveredObject, "isTileOrToken")) do + table.insert(discardTheseObjects, obj) + end + end + + local discardForMatColor = getColorToDiscardFor(hoveredObject, playerColor) + playmatApi.discardListOfObjects(discardForMatColor, discardTheseObjects) +end + +-- discard the top card of hovered deck, calling discardObject function +function discardTopDeck(playerColor, hoveredObject) + -- only continue if an unlocked card or deck was hovered + if hoveredObject == nil + or (hoveredObject.type ~= "Card" and hoveredObject.type ~= "Deck") + or hoveredObject.locked then + broadcastToColor("Hover a deck/card and try again.", playerColor, "Yellow") + return + end + if hoveredObject.type == "Deck" then + takenCard = hoveredObject.takeObject({index = 0}) + else + takenCard = hoveredObject + end + Wait.frames(function() discardObject(playerColor, takenCard) end, 1) +end + +-- helper function to get the player to trigger the discard function for +function getColorToDiscardFor(hoveredObject, playerColor) + local pos = hoveredObject.getPosition() + local closestMatColor = playmatApi.getMatColorByPosition(pos) + + -- check if actually on the closest playmat + local closestMat = guidReferenceApi.getObjectByOwnerAndType(closestMatColor, "Playermat") + local bounds = closestMat.getBounds() + + -- define the area "near" the playmat + local bufferAroundPlaymat = 2 + local areaNearPlaymat = {} + areaNearPlaymat.minX = bounds.center.x - bounds.size.x / 2 - bufferAroundPlaymat + areaNearPlaymat.maxX = bounds.center.x + bounds.size.x / 2 + bufferAroundPlaymat + areaNearPlaymat.minZ = bounds.center.z - bounds.size.z / 2 - bufferAroundPlaymat + areaNearPlaymat.maxZ = bounds.center.z + bounds.size.z / 2 + bufferAroundPlaymat + + -- discard to closest mat if near it, use triggering playmat if not + local discardForMatColor + if inArea(pos, areaNearPlaymat) then + return closestMatColor + else + return playmatApi.getMatColor(playerColor) + end end -- moves the hovered card to the victory display @@ -312,6 +658,132 @@ function moveCardToVictoryDisplay(_, hoveredObject) victoryDisplayApi.placeCard(hoveredObject) end +-- removes a use from a card (or a token if hovered) +function removeOneUse(playerColor, hoveredObject) + -- only continue if an unlocked card or tile was hovered + if hoveredObject == nil + or (hoveredObject.type ~= "Card" and hoveredObject.type ~= "Tile") + or hoveredObject.locked then + broadcastToColor("Hover a token/tile or a card and try again.", playerColor, "Yellow") + return + end + + local targetObject = nil + + -- discard hovered token / tile + if hoveredObject.type == "Tile" then + targetObject = hoveredObject + elseif hoveredObject.type == "Card" then + -- grab the first use type from the metadata (or nil) + local notes = JSON.decode(hoveredObject.getGMNotes()) or {} + local usesData = notes.uses or {} + local useInfo = usesData[1] or {} + local searchForType = useInfo.type + if searchForType then searchForType = searchForType:lower() end + + for _, obj in ipairs(searchLib.onObject(hoveredObject, "isTileOrToken")) do + if not obj.locked and obj.memo ~= "resourceCounter" then + -- check for matching object, otherwise use the first hit + if obj.memo == searchForType then + targetObject = obj + break + elseif not targetObject then + targetObject = obj + end + end + end + end + + -- error handling + if not targetObject then + broadcastToColor("No tokens found!", playerColor, "Yellow") + return + end + + -- handling for stacked tokens + if targetObject.getQuantity() > 1 then + targetObject = targetObject.takeObject() + end + + -- feedback message + local tokenName = targetObject.getName() + if tokenName == "" then + if targetObject.memo ~= "" then + -- name handling for clue / doom + if targetObject.memo == "clueDoom" then + if targetObject.is_face_down then + tokenName = "Doom" + else + tokenName = "Clue" + end + else + tokenName = titleCase(targetObject.memo) + end + else + tokenName = "Unknown" + end + end + + local playerName = Player[playerColor].steam_name + broadcastToAll(playerName .. " removed a token: " .. tokenName, playerColor) + + local discardForMatColor = getColorToDiscardFor(hoveredObject, playerColor) + playmatApi.discardListOfObjects(discardForMatColor, { targetObject }) +end + +-- switches the triggering player to the next seat (clockwise) +function switchSeatClockwise(playerColor) + switchSeat(playerColor, "clockwise") +end + +-- switches the triggering player to the next seat (counter-clockwise) +function switchSeatCounterClockwise(playerColor) + switchSeat(playerColor, "counter-clockwise") +end + +-- handles seat switching in the given direction +function switchSeat(playerColor, direction) + if playerColor == "Black" or playerColor == "Grey" then + broadcastToColor("This hotkey is only available to seated players.", playerColor, "Orange") + return + end + + -- sort function for matcolors based on hand position (Green, White, Orange, Red) + local function sortByHandPosition(color1, color2) + local pos1 = Player[color1].getHandTransform().position + local pos2 = Player[color2].getHandTransform().position + return pos1.z > pos2.z + end + + -- get used playermats + local usedColors = playmatApi.getUsedMatColors() + table.sort(usedColors, sortByHandPosition) + + -- get current seat index + local index + for i, color in ipairs(usedColors) do + if color == playerColor then + index = i + break + end + end + if not index then + broadcastToColor("Couldn't detect investigator.", playerColor, "Orange") + return + end + + -- get next color + index = index + ((direction == "clockwise") and -1 or 1) + if index == 0 then + index = #usedColors + elseif index > #usedColors then + index = 1 + end + + -- swap color + navigationOverlayApi.loadCamera(Player[playerColor], usedColors[index]) +end + -- takes a clue from a location, player needs to hover the clue directly or the location function takeClueFromLocation(playerColor, hoveredObject) local cardName, clue @@ -319,20 +791,15 @@ function takeClueFromLocation(playerColor, hoveredObject) if hoveredObject == nil then broadcastToColor("Hover a clue or card with clues and try again.", playerColor, "Yellow") return - elseif hoveredObject.tag == "Card" then + elseif hoveredObject.type == "Card" then cardName = hoveredObject.getName() + local searchResult = searchLib.onObject(hoveredObject, "isClue") - for _, v in ipairs(searchOnObj(hoveredObject)) do - local obj = v.hit_object - if obj.memo == "clueDoom" and obj.is_face_down == false then - clue = obj - break - end - end - - if clue == nil then + if #searchResult == 0 then broadcastToColor("This card does not have any clues on it.", playerColor, "Yellow") return + else + clue = searchResult[1] end elseif hoveredObject.memo == "clueDoom" then if hoveredObject.is_face_down then @@ -341,35 +808,28 @@ function takeClueFromLocation(playerColor, hoveredObject) end clue = hoveredObject + local searchResult = searchLib.belowPosition(clue.getPosition(), "isCard") - local search = Physics.cast({ - direction = { 0, -1, 0 }, - max_distance = 0.1, - type = 3, - size = { 0.1, 0.1, 0.1 }, - origin = clue.getPosition() - }) - - for _, v in ipairs(search) do - local obj = v.hit_object - if obj.tag == "Card" then - cardName = obj.getName() - break - end + if #searchResult ~= 0 then + cardName = searchResult[1].getName() end else broadcastToColor("Hover a clue or card with clues and try again.", playerColor, "Yellow") return end + local clickableClues = optionPanelApi.getOptions()["useClueClickers"] local playerName = Player[playerColor].steam_name - local matColor = playmatApi.getMatColor(playerColor) - local pos = playmatApi.transformLocalPosition({x = -1.12, y = 0.05, z = 0.7}, matColor) - local rot = playmatApi.returnRotation(matColor) - - if cardName == "" or cardName == nil then - cardName = "nameless card" + local matColor = playmatApi.getMatColor(playerColor) + local pos = nil + if clickableClues then + pos = {x = 0.49, y = 2.66, z = 0.00} + playmatApi.updateCounter(matColor, "ClickableClueCounter", _, 1) + else + pos = playmatApi.transformLocalPosition({x = -1.12, y = 0.05, z = 0.7}, matColor) end + + local rot = playmatApi.returnRotation(matColor) -- check if found clue is a stack or single token if clue.getQuantity() > 1 then @@ -380,9 +840,9 @@ function takeClueFromLocation(playerColor, hoveredObject) end if cardName then - broadcastToAll(playerName .. " took one clue from " .. cardName .. ".", playerColor) + broadcastToAll(playerName .. " took one clue from " .. cardName .. ".", "White") else - broadcastToAll(playerName .. " took one clue.", "Green") + broadcastToAll(playerName .. " took one clue.", "White") end victoryDisplayApi.update() @@ -394,86 +854,67 @@ function showBlessCurseStatus(playerColor) end -- adds Wendy's menu to the hovered card -function addWendysMenu(playerColor, hoveredObject) - blessCurseManagerApi.addWendysMenu(playerColor, hoveredObject) +function addBlurseSealingMenu(playerColor, hoveredObject) + blessCurseManagerApi.addBlurseSealingMenu(playerColor, hoveredObject) end --- searches on an object (by using its bounds) ----@param obj Object Object to search on -function searchOnObj(obj) - return Physics.cast({ - direction = { 0, 1, 0 }, - max_distance = 0.5, - type = 3, - size = obj.getBounds().size, - origin = obj.getPosition() - }) +-- Simple method to check if the given point is in a specified area +---@param point Vector Point to check, only x and z values are relevant +---@param bounds Table Defined area to see if the point is within +function inArea(point, bounds) + return (point.x > bounds.minX + and point.x < bounds.maxX + and point.z > bounds.minZ + and point.z < bounds.maxZ) +end + +-- capitalizes the first letter +function titleCase(str) + local first = str:sub(1, 1) + local rest = str:sub(2) + return first:upper() .. rest:lower() end end) -__bundle_register("chaosbag/BlessCurseManagerApi", function(require, _LOADED, __bundle_register, __bundle_modules) +__bundle_register("core/GUIDReferenceApi", function(require, _LOADED, __bundle_register, __bundle_modules) do - local BlessCurseManagerApi = {} - local MANAGER_GUID = "5933fb" + local GUIDReferenceApi = {} - -- removes all taken tokens and resets the counts - BlessCurseManagerApi.removeTakenTokensAndReset = function() - local BlessCurseManager = getObjectFromGUID(MANAGER_GUID) - 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) + local function getGuidHandler() + return getObjectFromGUID("123456") end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.sealedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("sealedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectByOwnerAndType = function(owner, type) + return getGuidHandler().call("getObjectByOwnerAndType", { owner = owner, type = type }) end - -- updates the internal count (called by cards that seal bless/curse tokens) - BlessCurseManagerApi.releasedToken = function(type, guid) - getObjectFromGUID(MANAGER_GUID).call("releasedToken", { type = type, guid = guid }) + -- returns all matching objects as a table with references + ---@param type String Type of object to search for + GUIDReferenceApi.getObjectsByType = function(type) + return getGuidHandler().call("getObjectsByType", type) 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) - getObjectFromGUID(MANAGER_GUID).call("broadcastStatus", playerColor) + -- returns all matching objects as a table with references + ---@param owner String Parent object for this search + GUIDReferenceApi.getObjectsByOwner = function(owner) + return getGuidHandler().call("getObjectsByOwner", owner) 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) - getObjectFromGUID(MANAGER_GUID).call("doRemove", playerColor) + -- 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 - -- adds Wendy's menu to the hovered card (allows sealing of tokens) - ---@param color String Color of the player to show the broadcast to - BlessCurseManagerApi.addWendysMenu = function(playerColor, hoveredObject) - getObjectFromGUID(MANAGER_GUID).call("addMenuOptions", { playerColor = playerColor, hoveredObject = hoveredObject }) - end - - return BlessCurseManagerApi -end -end) -__bundle_register("core/VictoryDisplayApi", function(require, _LOADED, __bundle_register, __bundle_modules) -do - local VictoryDisplayApi = {} - local VD_GUID = "6ccd6d" - - -- triggers an update of the Victory count - ---@param delay Number Delay in seconds after which the update call is executed - VictoryDisplayApi.update = function(delay) - getObjectFromGUID(VD_GUID).call("startUpdate", delay) - end - - -- moves a card to the victory display (in the first empty spot) - ---@param object Object Object that should be checked and potentially moved - VictoryDisplayApi.placeCard = function(object) - if object ~= nil and object.tag == "Card" then - getObjectFromGUID(VD_GUID).call("placeCard", object) - end - end - - return VictoryDisplayApi + return GUIDReferenceApi end end) return __bundle_require("__root") \ No newline at end of file diff --git a/unpacked/go_game_piece_white Game Key Handler fce69c.yaml b/unpacked/go_game_piece_white Game Key Handler fce69c.yaml index 8746f4166..f1a6902bb 100644 --- a/unpacked/go_game_piece_white Game Key Handler fce69c.yaml +++ b/unpacked/go_game_piece_white Game Key Handler fce69c.yaml @@ -1,12 +1,12 @@ AltLookAngle: - x: 0.0 - y: 0.0 - z: 0.0 + x: 0 + y: 0 + z: 0 Autoraise: true ColorDiffuse: - b: 0.6617647 - g: 0.6617647 - r: 0.6617647 + b: 0.66176 + g: 0.66176 + r: 0.66176 Description: This object contains "Game Keys" that can be assigned via Options --> Game Keys. DragSelectable: true @@ -28,14 +28,14 @@ Snap: true Sticky: true Tooltip: true Transform: - posX: 78.0 + posX: 78 posY: 1.33 - posZ: -10.0 - rotX: 0.0 - rotY: 0.0 - rotZ: 0.0 - scaleX: 1.0 - scaleY: 1.0 - scaleZ: 1.0 + posZ: -10 + rotX: 0 + rotY: 0 + rotZ: 0 + scaleX: 1 + scaleY: 1 + scaleZ: 1 Value: 0 XmlUI: ''