608 lines
35 KiB
JSON
608 lines
35 KiB
JSON
{
|
|
"GUID": "3ae6e1",
|
|
"Name": "Custom_Model_Bag",
|
|
"Transform": {
|
|
"posX": 0.269882232,
|
|
"posY": 1.48960686,
|
|
"posZ": 28.776968,
|
|
"rotX": 359.920135,
|
|
"rotY": 270.000031,
|
|
"rotZ": 0.01687535,
|
|
"scaleX": 1.3633405,
|
|
"scaleY": 0.2837723,
|
|
"scaleZ": 1.49288893
|
|
},
|
|
"Nickname": "Maximillion Pegasus Custom Investigator",
|
|
"Description": "By Game#0398",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 1.0,
|
|
"g": 1.0,
|
|
"b": 1.0
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": false,
|
|
"Hands": false,
|
|
"MaterialIndex": -1,
|
|
"MeshIndex": -1,
|
|
"CustomMesh": {
|
|
"MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj",
|
|
"DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/1684870715280907223/1E9DE758F089D7F880ADC8CA594F9AA938743F8B/",
|
|
"NormalURL": "",
|
|
"ColliderURL": "",
|
|
"Convex": true,
|
|
"MaterialIndex": 3,
|
|
"TypeIndex": 6,
|
|
"CustomShader": {
|
|
"SpecularColor": {
|
|
"r": 1.0,
|
|
"g": 1.0,
|
|
"b": 1.0
|
|
},
|
|
"SpecularIntensity": 0.0,
|
|
"SpecularSharpness": 2.0,
|
|
"FresnelStrength": 0.0
|
|
},
|
|
"CastShadows": true
|
|
},
|
|
"Bag": {
|
|
"Order": 0
|
|
},
|
|
"LuaScript": "-- Utility memory bag by Directsun\r\n-- Version 2.5.2\r\n-- Fork of Memory Bag 2.0 by MrStump\r\n\r\nfunction updateSave()\r\n local data_to_save = {[\"ml\"]=memoryList}\r\n saved_data = JSON.encode(data_to_save)\r\n self.script_state = saved_data\r\nend\r\n\r\nfunction combineMemoryFromBagsWithin()\r\n local bagObjList = self.getObjects()\r\n for _, bagObj in ipairs(bagObjList) do\r\n local data = bagObj.lua_script_state\r\n if data ~= nil then\r\n local j = JSON.decode(data)\r\n if j ~= nil and j.ml ~= nil then\r\n for guid, entry in pairs(j.ml) do\r\n memoryList[guid] = entry\r\n end\r\n end\r\n end\r\n end\r\nend\r\n\r\nfunction updateMemoryWithMoves()\r\n memoryList = memoryListBackup\r\n --get the first transposed object's coordinates\r\n local obj = getObjectFromGUID(moveGuid)\r\n\r\n -- p1 is where needs to go, p2 is where it was\r\n local refObjPos = memoryList[moveGuid].pos\r\n local deltaPos = findOffsetDistance(obj.getPosition(), refObjPos, nil)\r\n local movedRotation = obj.getRotation()\r\n for guid, entry in pairs(memoryList) do\r\n memoryList[guid].pos.x = entry.pos.x - deltaPos.x\r\n memoryList[guid].pos.y = entry.pos.y - deltaPos.y\r\n memoryList[guid].pos.z = entry.pos.z - deltaPos.z\r\n -- memoryList[guid].rot.x = movedRotation.x\r\n -- memoryList[guid].rot.y = movedRotation.y\r\n -- memoryList[guid].rot.z = movedRotation.z\r\n end\r\n\r\n --theList[obj.getGUID()] = {\r\n -- pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n -- rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n -- lock=obj.getLock()\r\n --}\r\n moveList = {}\r\nend\r\n\r\nfunction onload(saved_data)\r\n fresh = true\r\n if saved_data ~= \"\" then\r\n local loaded_data = JSON.decode(saved_data)\r\n --Set up information off of loaded_data\r\n memoryList = loaded_data.ml\r\n else\r\n --Set up information for if there is no saved saved data\r\n memoryList = {}\r\n end\r\n\r\n moveList = {}\r\n moveGuid = nil\r\n\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n fresh = false\r\n createMemoryActionButtons()\r\n end\r\nend\r\n\r\n\r\n--Beginning Setup\r\n\r\n\r\n--Make setup button\r\nfunction createSetupButton()\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n--Triggered by Transpose button\r\nfunction buttonClick_transpose()\r\n moveGuid = nil\r\n broadcastToAll(\"Select one object and move it- all objects will move relative to the new location\", {0.75, 0.75, 1})\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n moveList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(true)\r\n createSetupActionButtons(true)\r\nend\r\n\r\n--Triggered by setup button,\r\nfunction buttonClick_setup()\r\n memoryListBackup = duplicateTable(memoryList)\r\n memoryList = {}\r\n self.clearButtons()\r\n createButtonsOnAllObjects(false)\r\n createSetupActionButtons(false)\r\nend\r\n\r\nfunction getAllObjectsInMemory()\r\n local objTable = {}\r\n local curObj = {}\r\n\r\n for guid in pairs(memoryListBackup) do\r\n curObj = getObjectFromGUID(guid)\r\n table.insert(objTable, curObj)\r\n end\r\n\r\n return objTable\r\n -- return getAllObjects()\r\nend\r\n\r\n--Creates selection buttons on objects\r\nfunction createButtonsOnAllObjects(move)\r\n local howManyButtons = 0\r\n\r\n local objsToHaveButtons = {}\r\n if move == true then\r\n objsToHaveButtons = getAllObjectsInMemory()\r\n else\r\n objsToHaveButtons = getAllObjects()\r\n end\r\n\r\n for _, obj in ipairs(objsToHaveButtons) do\r\n if obj ~= self then\r\n local dummyIndex = howManyButtons\r\n --On a normal bag, the button positions aren't the same size as the bag.\r\n globalScaleFactor = 1 * 1/self.getScale().x\r\n --Super sweet math to set button positions\r\n local selfPos = self.getPosition()\r\n local objPos = obj.getPosition()\r\n local deltaPos = findOffsetDistance(selfPos, objPos, obj)\r\n local objPos = rotateLocalCoordinates(deltaPos, self)\r\n objPos.x = -objPos.x * globalScaleFactor\r\n objPos.y = objPos.y * globalScaleFactor + 2\r\n objPos.z = objPos.z * globalScaleFactor * 0.9\r\n --Offset rotation of bag\r\n local rot = self.getRotation()\r\n rot.y = -rot.y + 180\r\n --Create function\r\n local funcName = \"selectButton_\" .. howManyButtons\r\n local func = function() buttonClick_selection(dummyIndex, obj, move) end\r\n local color = {0.75,0.25,0.25,0.6}\r\n local colorMove = {0,0,1,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.setVar(funcName, func)\r\n self.createButton({\r\n click_function=funcName, function_owner=self,\r\n position=objPos, rotation=rot, height=500, width=500,\r\n color=color,\r\n })\r\n howManyButtons = howManyButtons + 1\r\n end\r\n end\r\nend\r\n\r\n--Creates submit and cancel buttons\r\nfunction createSetupActionButtons(move)\r\n self.createButton({\r\n label=\"Cancel\", click_function=\"buttonClick_cancel\", function_owner=self,\r\n position={-0.6,0.1,-2.1}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n self.createButton({\r\n label=\"Submit\", click_function=\"buttonClick_submit\", function_owner=self,\r\n position={-0.6,0.3,-2.5}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n\r\n if move == false then\r\n self.createButton({\r\n label=\"Add\", click_function=\"buttonClick_add\", function_owner=self,\r\n position={0.6,0.3,-2.1}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={0.25,1,0.25}\r\n })\r\n\r\n if fresh == false then\r\n self.createButton({\r\n label=\"Set New\", click_function=\"buttonClick_setNew\", function_owner=self,\r\n position={0.6,0.3,-2.9}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={0.75,0.75,1}\r\n })\r\n self.createButton({\r\n label=\"Remove\", click_function=\"buttonClick_remove\", function_owner=self,\r\n position={0.6,0.3,-2.5}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,0.25,0.25}\r\n })\r\n end\r\n end\r\n\r\n self.createButton({\r\n label=\"Reset\", click_function=\"buttonClick_reset\", function_owner=self,\r\n position={-0.6,0.3,-2.9}, rotation={0,0,0}, height=220, width=550,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\nend\r\n\r\n\r\n--During Setup\r\n\r\n\r\n--Checks or unchecks buttons\r\nfunction buttonClick_selection(index, obj, move)\r\n local colorMove = {0,0,1,0.6}\r\n local color = {0,1,0,0.6}\r\n\r\n previousGuid = selectedGuid\r\n selectedGuid = obj.getGUID()\r\n\r\n theList = memoryList\r\n if move == true then\r\n theList = moveList\r\n if previousGuid ~= nil and previousGuid ~= selectedGuid then\r\n local prevObj = getObjectFromGUID(previousGuid)\r\n prevObj.highlightOff()\r\n self.editButton({index=previousIndex, color=colorMove})\r\n theList[previousGuid] = nil\r\n end\r\n previousIndex = index\r\n end\r\n\r\n if theList[selectedGuid] == nil then\r\n self.editButton({index=index, color=color})\r\n --Adding pos/rot to memory table\r\n local pos, rot = obj.getPosition(), obj.getRotation()\r\n --I need to add it like this or it won't save due to indexing issue\r\n theList[obj.getGUID()] = {\r\n pos={x=round(pos.x,4), y=round(pos.y,4), z=round(pos.z,4)},\r\n rot={x=round(rot.x,4), y=round(rot.y,4), z=round(rot.z,4)},\r\n lock=obj.getLock()\r\n }\r\n obj.highlightOn({0,1,0})\r\n else\r\n color = {0.75,0.25,0.25,0.6}\r\n if move == true then\r\n color = colorMove\r\n end\r\n self.editButton({index=index, color=color})\r\n theList[obj.getGUID()] = nil\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Cancels selection process\r\nfunction buttonClick_cancel()\r\n memoryList = memoryListBackup\r\n moveList = {}\r\n self.clearButtons()\r\n if next(memoryList) == nil then\r\n createSetupButton()\r\n else\r\n createMemoryActionButtons()\r\n end\r\n removeAllHighlights()\r\n broadcastToAll(\"Selection Canceled\", {1,1,1})\r\n moveGuid = nil\r\nend\r\n\r\n--Saves selections\r\nfunction buttonClick_submit()\r\n fresh = false\r\n if next(moveList) ~= nil then\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n end\r\n if memoryListBackup[moveGuid] == nil then\r\n broadcastToAll(\"Item selected for moving is not already in memory\", {1, 0.25, 0.25})\r\n else\r\n broadcastToAll(\"Moving all items in memory relative to new objects position!\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(moveList) do\r\n moveGuid = guid\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n updateMemoryWithMoves()\r\n updateSave()\r\n buttonClick_place()\r\n end\r\n elseif next(memoryList) == nil and moveGuid == nil then\r\n memoryList = memoryListBackup\r\n broadcastToAll(\"No selections made.\", {0.75, 0.25, 0.25})\r\n end\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\n moveGuid = nil\r\nend\r\n\r\nfunction combineTables(first_table, second_table)\r\n for k,v in pairs(second_table) do first_table[k] = v end\r\nend\r\n\r\nfunction buttonClick_add()\r\n fresh = false\r\n combineTables(memoryList, memoryListBackup)\r\n broadcastToAll(\"Adding internal bags and selections to existing memory\", {0.25, 0.75, 0.25})\r\n combineMemoryFromBagsWithin()\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_remove()\r\n broadcastToAll(\"Removing Selected Entries From Memory\", {1.0, 0.25, 0.25})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for guid in pairs(memoryList) do\r\n count = count + 1\r\n memoryListBackup[guid] = nil\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then obj.highlightOff() end\r\n end\r\n broadcastToAll(count..\" Objects Removed\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\nfunction buttonClick_setNew()\r\n broadcastToAll(\"Setting new position relative to items in memory\", {0.75, 0.75, 1})\r\n self.clearButtons()\r\n createMemoryActionButtons()\r\n local count = 0\r\n for _, obj in ipairs(getAllObjects()) do\r\n guid = obj.guid\r\n if memoryListBackup[guid] ~= nil then\r\n count = count + 1\r\n memoryListBackup[guid].pos = obj.getPosition()\r\n memoryListBackup[guid].rot = obj.getRotation()\r\n memoryListBackup[guid].lock = obj.getLock()\r\n end\r\n end\r\n broadcastToAll(count..\" Objects Saved\", {1,1,1})\r\n memoryList = memoryListBackup\r\n updateSave()\r\nend\r\n\r\n--Resets bag to starting status\r\nfunction buttonClick_reset()\r\n fresh = true\r\n memoryList = {}\r\n self.clearButtons()\r\n createSetupButton()\r\n removeAllHighlights()\r\n broadcastToAll(\"Tool Reset\", {1,1,1})\r\n updateSave()\r\nend\r\n\r\n\r\n--After Setup\r\n\r\n\r\n--Creates recall and place buttons\r\nfunction createMemoryActionButtons()\r\n self.createButton({\r\n label=\"Place\", click_function=\"buttonClick_place\", function_owner=self,\r\n position={0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Recall\", click_function=\"buttonClick_recall\", function_owner=self,\r\n position={-0.6,0.1,2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n self.createButton({\r\n label=\"Setup\", click_function=\"buttonClick_setup\", function_owner=self,\r\n position={0,0.1,-2.1}, rotation={0,0,0}, height=220, width=500,\r\n font_size=130, color={0,0,0}, font_color={1,1,1}\r\n })\r\n--- self.createButton({\r\n--- label=\"Move\", click_function=\"buttonClick_transpose\", function_owner=self,\r\n--- position={-2.8,0.3,0}, rotation={0,0,0}, height=350, width=800,\r\n--- font_size=250, color={0,0,0}, font_color={0.75,0.75,1}\r\n--- })\r\nend\r\n\r\n--Sends objects from bag/table to their saved position/rotation\r\nfunction buttonClick_place()\r\n local bagObjList = self.getObjects()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n --If obj is out on the table, move it to the saved pos/rot\r\n if obj ~= nil then\r\n obj.setPositionSmooth(entry.pos)\r\n obj.setRotationSmooth(entry.rot)\r\n obj.setLock(entry.lock)\r\n else\r\n --If obj is inside of the bag\r\n for _, bagObj in ipairs(bagObjList) do\r\n if bagObj.guid == guid then\r\n local item = self.takeObject({\r\n guid=guid, position=entry.pos, rotation=entry.rot, smooth=false\r\n })\r\n item.setLock(entry.lock)\r\n break\r\n end\r\n end\r\n end\r\n end\r\n broadcastToAll(\"Objects Placed\", {1,1,1})\r\nend\r\n\r\n--Recalls objects to bag from table\r\nfunction buttonClick_recall()\r\n for guid, entry in pairs(memoryList) do\r\n local obj = getObjectFromGUID(guid)\r\n if obj ~= nil then self.putObject(obj) end\r\n end\r\n broadcastToAll(\"Objects Recalled\", {1,1,1})\r\nend\r\n\r\n\r\n--Utility functions\r\n\r\n\r\n--Find delta (difference) between 2 x/y/z coordinates\r\nfunction findOffsetDistance(p1, p2, obj)\r\n local yOffset = 0\r\n if obj ~= nil then\r\n local bounds = obj.getBounds()\r\n yOffset = (bounds.size.y - bounds.offset.y)\r\n end\r\n local deltaPos = {}\r\n deltaPos.x = (p2.x-p1.x)\r\n deltaPos.y = (p2.y-p1.y) + yOffset\r\n deltaPos.z = (p2.z-p1.z)\r\n return deltaPos\r\nend\r\n\r\n--Used to rotate a set of coordinates by an angle\r\nfunction rotateLocalCoordinates(desiredPos, obj)\r\n\tlocal objPos, objRot = obj.getPosition(), obj.getRotation()\r\n local angle = math.rad(objRot.y)\r\n\tlocal x = desiredPos.x * math.cos(angle) - desiredPos.z * math.sin(angle)\r\n\tlocal z = desiredPos.x * math.sin(angle) + desiredPos.z * math.cos(angle)\r\n\t--return {x=objPos.x+x, y=objPos.y+desiredPos.y, z=objPos.z+z}\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\nfunction rotateMyCoordinates(desiredPos, obj)\r\n\tlocal angle = math.rad(obj.getRotation().y)\r\n local x = desiredPos.x * math.sin(angle)\r\n\tlocal z = desiredPos.z * math.cos(angle)\r\n return {x=x, y=desiredPos.y, z=z}\r\nend\r\n\r\n--Coroutine delay, in seconds\r\nfunction wait(time)\r\n local start = os.time()\r\n repeat coroutine.yield(0) until os.time() > start + time\r\nend\r\n\r\n--Duplicates a table (needed to prevent it making reference to the same objects)\r\nfunction duplicateTable(oldTable)\r\n local newTable = {}\r\n for k, v in pairs(oldTable) do\r\n newTable[k] = v\r\n end\r\n return newTable\r\nend\r\n\r\n--Moves scripted highlight from all objects\r\nfunction removeAllHighlights()\r\n for _, obj in ipairs(getAllObjects()) do\r\n obj.highlightOff()\r\n end\r\nend\r\n\r\n--Round number (num) to the Nth decimal (dec)\r\nfunction round(num, dec)\r\n local mult = 10^(dec or 0)\r\n return math.floor(num * mult + 0.5) / mult\r\nend",
|
|
"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}}}}",
|
|
"XmlUI": "",
|
|
"ContainedObjects": [
|
|
{
|
|
"GUID": "e1aefa",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": -16.6402912,
|
|
"posY": 1.313166,
|
|
"posZ": -69.0602951,
|
|
"rotX": 0.0208082553,
|
|
"rotY": 270.000031,
|
|
"rotZ": 0.0167675074,
|
|
"scaleX": 0.6,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 0.6
|
|
},
|
|
"Nickname": "Maximillion Pegasus",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": false,
|
|
"Snap": false,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": false,
|
|
"Hands": true,
|
|
"CardID": 449700,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"4497": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252068502/92BF63967B972576C8E21BC1FE1369E498464B50/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252069122/3F3B498F86C6EF207BC57E0AD9E3C43EB7DF21D6/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
},
|
|
{
|
|
"GUID": "043636",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": -19.2958832,
|
|
"posY": 1.3122015,
|
|
"posZ": -69.06071,
|
|
"rotX": 0.0208086651,
|
|
"rotY": 270.0,
|
|
"rotZ": 0.0167712048,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "Maximillion Pegasus",
|
|
"Description": "The President",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": true,
|
|
"CardID": 449900,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"4499": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1654475400986171911/E037EEF31267670DE4BC2C25FC8E2F2D2D1CD6A8/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1654475400986172232/83A4AF0E8BC2643FAB3F9FAD1353B506184B81EC/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
},
|
|
{
|
|
"GUID": "38e58a",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": -22.6156921,
|
|
"posY": 1.31099141,
|
|
"posZ": -69.0756149,
|
|
"rotX": 0.020809425,
|
|
"rotY": 269.9999,
|
|
"rotZ": 0.01677172,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "Millennium Eye",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": true,
|
|
"CardID": 449800,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"4498": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1654475400986112256/431EDF2AAFEAF763C72A34662933177D0A3FA94F/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
},
|
|
{
|
|
"GUID": "728c1e",
|
|
"Name": "Deck",
|
|
"Transform": {
|
|
"posX": -26.3002033,
|
|
"posY": 1.34105361,
|
|
"posZ": -69.0606,
|
|
"rotX": 0.0208094791,
|
|
"rotY": 270.003632,
|
|
"rotZ": 0.01677301,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": false,
|
|
"SidewaysCard": false,
|
|
"DeckIDs": [
|
|
449500,
|
|
266200,
|
|
449200,
|
|
449300,
|
|
449600
|
|
],
|
|
"CustomDeck": {
|
|
"4495": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252063059/69B5F2FAA828441094DA4DE8F426B4F45AC17B7A/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
},
|
|
"2662": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252206440/995858C7E13C73B0B1086787545BCB5762485328/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
},
|
|
"4492": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060096/BA684DE42B16B7E87E340A66897A9B83F63487DE/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
},
|
|
"4493": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252061132/AC54B36A247B76AAF6D985AA6E8A618E5114DE68/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
},
|
|
"4496": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252064060/465A6F8629964DC2D6CCF899E82C0CBE21039A81/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": "",
|
|
"ContainedObjects": [
|
|
{
|
|
"GUID": "ede645",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": 2.72325325,
|
|
"posY": 1.26792717,
|
|
"posZ": -7.14389372,
|
|
"rotX": -0.000615941652,
|
|
"rotY": 269.9785,
|
|
"rotZ": -0.000314327364,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": true,
|
|
"CardID": 449500,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"4495": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252063059/69B5F2FAA828441094DA4DE8F426B4F45AC17B7A/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
},
|
|
{
|
|
"GUID": "2b213a",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": 2.289918,
|
|
"posY": 1.30661857,
|
|
"posZ": -7.06455,
|
|
"rotX": 0.00286251516,
|
|
"rotY": 269.999573,
|
|
"rotZ": -0.00293424679,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": true,
|
|
"CardID": 266200,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"2662": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252206440/995858C7E13C73B0B1086787545BCB5762485328/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
},
|
|
{
|
|
"GUID": "9347f0",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": 2.68533039,
|
|
"posY": 1.343085,
|
|
"posZ": -7.31761456,
|
|
"rotX": 359.975677,
|
|
"rotY": 269.9796,
|
|
"rotZ": 0.06802794,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": true,
|
|
"CardID": 449200,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"4492": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060096/BA684DE42B16B7E87E340A66897A9B83F63487DE/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
},
|
|
{
|
|
"GUID": "2ea333",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": 2.34053469,
|
|
"posY": 1.3615061,
|
|
"posZ": -7.67604637,
|
|
"rotX": 359.9,
|
|
"rotY": 269.999573,
|
|
"rotZ": 0.190538883,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": true,
|
|
"CardID": 449300,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"4493": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252061132/AC54B36A247B76AAF6D985AA6E8A618E5114DE68/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
},
|
|
{
|
|
"GUID": "bda18f",
|
|
"Name": "CardCustom",
|
|
"Transform": {
|
|
"posX": -26.5874023,
|
|
"posY": 1.40300155,
|
|
"posZ": -66.2226944,
|
|
"rotX": 0.0184624419,
|
|
"rotY": 270.0035,
|
|
"rotZ": 359.5657,
|
|
"scaleX": 1.0,
|
|
"scaleY": 1.0,
|
|
"scaleZ": 1.0
|
|
},
|
|
"Nickname": "",
|
|
"Description": "",
|
|
"GMNotes": "",
|
|
"ColorDiffuse": {
|
|
"r": 0.713235259,
|
|
"g": 0.713235259,
|
|
"b": 0.713235259
|
|
},
|
|
"LayoutGroupSortIndex": 0,
|
|
"Value": 0,
|
|
"Locked": false,
|
|
"Grid": true,
|
|
"Snap": true,
|
|
"IgnoreFoW": false,
|
|
"MeasureMovement": false,
|
|
"DragSelectable": true,
|
|
"Autoraise": true,
|
|
"Sticky": true,
|
|
"Tooltip": true,
|
|
"GridProjection": false,
|
|
"HideWhenFaceDown": true,
|
|
"Hands": true,
|
|
"CardID": 449600,
|
|
"SidewaysCard": false,
|
|
"CustomDeck": {
|
|
"4496": {
|
|
"FaceURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252064060/465A6F8629964DC2D6CCF899E82C0CBE21039A81/",
|
|
"BackURL": "http://cloud-3.steamusercontent.com/ugc/1016069769252060389/A2C325CF1EE748C46F0C4D8C57EB842E838B2659/",
|
|
"NumWidth": 1,
|
|
"NumHeight": 1,
|
|
"BackIsHidden": true,
|
|
"UniqueBack": false,
|
|
"Type": 0
|
|
}
|
|
},
|
|
"LuaScript": "",
|
|
"LuaScriptState": "",
|
|
"XmlUI": ""
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"AttachedDecals": [
|
|
{
|
|
"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
|
|
},
|
|
"CustomDecal": {
|
|
"Name": "dunwich_back",
|
|
"ImageURL": "http://cloud-3.steamusercontent.com/ugc/959719855119695911/931B9829687A20F4DEADB36DA57B7E6D76792231/",
|
|
"Size": 7.4
|
|
}
|
|
}
|
|
]
|
|
} |