diff --git a/config.json b/config.json index 61fdf6ab..e29aed88 100644 --- a/config.json +++ b/config.json @@ -199,9 +199,8 @@ "CampaignImporterExporter.334ee3", "TokenArranger.022907", "ChaosBagManager.023240", - "Half-Life.b46db2", - "CircusExMortisCampaign.93b8cb", - "ArkhamSCE320-8262023-Page1.964222" + "ArkhamSCE330-1092023-Page1.964222" + "SoulsofDarkness.a94e6b" ], "PlayArea": 1, "PlayerCounts": [ @@ -212,7 +211,7 @@ 0, 0 ], - "SaveName": "Arkham SCE - 3.2.0", + "SaveName": "Arkham SCE - 3.3.0", "Sky": "Sky_Museum", "SkyURL": "https://i.imgur.com/GkQqaOF.jpg", "SnapPoints_path": "SnapPoints.json", diff --git a/objects/AllPlayerCards.15bb07/AncientStone4.3289b0.gmnotes b/objects/AllPlayerCards.15bb07/AncientStone4.3289b0.gmnotes index 45819aa6..8ce61bed 100644 --- a/objects/AllPlayerCards.15bb07/AncientStone4.3289b0.gmnotes +++ b/objects/AllPlayerCards.15bb07/AncientStone4.3289b0.gmnotes @@ -6,5 +6,12 @@ "level": 4, "traits": "Item. Relic.", "agilityIcons": 2, + "uses": [ + { + "count": 0, + "type": "Secret", + "token": "resource" + } + ], "cycle": "Return to the Forgotten Age" } diff --git a/objects/AllPlayerCards.15bb07/AncientStone4.863f91.gmnotes b/objects/AllPlayerCards.15bb07/AncientStone4.863f91.gmnotes index 80dbf480..8362275a 100644 --- a/objects/AllPlayerCards.15bb07/AncientStone4.863f91.gmnotes +++ b/objects/AllPlayerCards.15bb07/AncientStone4.863f91.gmnotes @@ -6,5 +6,12 @@ "level": 4, "traits": "Item. Relic.", "intellectIcons": 2, + "uses": [ + { + "count": 0, + "type": "Secret", + "token": "resource" + } + ], "cycle": "The Forgotten Age" } diff --git a/objects/AllPlayerCards.15bb07/AncientStone4.9c56d3.gmnotes b/objects/AllPlayerCards.15bb07/AncientStone4.9c56d3.gmnotes index ba52904b..b7aba6d8 100644 --- a/objects/AllPlayerCards.15bb07/AncientStone4.9c56d3.gmnotes +++ b/objects/AllPlayerCards.15bb07/AncientStone4.9c56d3.gmnotes @@ -6,5 +6,12 @@ "level": 4, "traits": "Item. Relic.", "willpowerIcons": 2, + "uses": [ + { + "count": 0, + "type": "Secret", + "token": "resource" + } + ], "cycle": "The Forgotten Age" } diff --git a/objects/AllPlayerCards.15bb07/CustomAmmunition3.f03baa.gmnotes b/objects/AllPlayerCards.15bb07/CustomAmmunition3.f03baa.gmnotes index 982a1112..52502924 100644 --- a/objects/AllPlayerCards.15bb07/CustomAmmunition3.f03baa.gmnotes +++ b/objects/AllPlayerCards.15bb07/CustomAmmunition3.f03baa.gmnotes @@ -7,5 +7,12 @@ "traits": "Upgrade. Supply. Blessed.", "combatIcons": 1, "agilityIcons": 1, + "uses": [ + { + "count": 2, + "type": "Ammo", + "token": "resource" + } + ], "cycle": "The Forgotten Age" } diff --git a/objects/AllPlayerCards.15bb07/EmbezzledTreasure.8fd043.gmnotes b/objects/AllPlayerCards.15bb07/EmbezzledTreasure.8fd043.gmnotes index 220ea0aa..85a55c38 100644 --- a/objects/AllPlayerCards.15bb07/EmbezzledTreasure.8fd043.gmnotes +++ b/objects/AllPlayerCards.15bb07/EmbezzledTreasure.8fd043.gmnotes @@ -6,5 +6,12 @@ "level": 0, "traits": "Item. Illicit.", "intellectIcons": 1, + "uses": [ + { + "count": 0, + "type": "Resource", + "token": "resource" + } + ], "cycle": "The Scarlet Keys" } diff --git a/objects/AllPlayerCards.15bb07/FamilyInheritance.394603.gmnotes b/objects/AllPlayerCards.15bb07/FamilyInheritance.394603.gmnotes index ffcc7508..41a47d9f 100644 --- a/objects/AllPlayerCards.15bb07/FamilyInheritance.394603.gmnotes +++ b/objects/AllPlayerCards.15bb07/FamilyInheritance.394603.gmnotes @@ -4,5 +4,12 @@ "class": "Neutral", "traits": "Boon.", "permanent": true, + "uses": [ + { + "count": 0, + "type": "Resource", + "token": "resource" + } + ], "cycle": "The Circle Undone" } diff --git a/objects/AllPlayerCards.15bb07/ResearchNotesTaboo.085c08.gmnotes b/objects/AllPlayerCards.15bb07/ResearchNotesTaboo.085c08.gmnotes index 8fce51dd..8cae36d6 100644 --- a/objects/AllPlayerCards.15bb07/ResearchNotesTaboo.085c08.gmnotes +++ b/objects/AllPlayerCards.15bb07/ResearchNotesTaboo.085c08.gmnotes @@ -6,5 +6,12 @@ "level": 0, "traits": "Item. Tome. Science.", "intellectIcons": 1, + "uses": [ + { + "count": 0, + "type": "Evidence", + "token": "resource" + } + ], "cycle": "The Scarlet Keys" } diff --git a/objects/AllPlayerCards.15bb07/SparrowMask.975d79.gmnotes b/objects/AllPlayerCards.15bb07/SparrowMask.975d79.gmnotes index 10f7d8fc..2cbf0281 100644 --- a/objects/AllPlayerCards.15bb07/SparrowMask.975d79.gmnotes +++ b/objects/AllPlayerCards.15bb07/SparrowMask.975d79.gmnotes @@ -7,5 +7,12 @@ "traits": "Item. Charm. Mask.", "willpowerIcons": 1, "agilityIcons": 1, + "uses": [ + { + "count": 2, + "type": "Offering", + "token": "resource" + } + ], "cycle": "The Feast of Hemlock Vale" } diff --git a/objects/AllPlayerCards.15bb07/WindsofPower1.bcdfde.gmnotes b/objects/AllPlayerCards.15bb07/WindsofPower1.bcdfde.gmnotes index eea5c5c4..cba0ef55 100644 --- a/objects/AllPlayerCards.15bb07/WindsofPower1.bcdfde.gmnotes +++ b/objects/AllPlayerCards.15bb07/WindsofPower1.bcdfde.gmnotes @@ -6,5 +6,12 @@ "level": 1, "traits": "Spirit.", "willpowerIcons": 2, + "uses": [ + { + "count": 2, + "type": "Charge", + "token": "resource" + } + ], "cycle": "Edge of the Earth" } diff --git a/objects/ArkhamSCE320-8262023-Page1.964222.json b/objects/ArkhamSCE320-8262023-Page1.964222.json deleted file mode 100644 index 4ab8b9fb..00000000 --- a/objects/ArkhamSCE320-8262023-Page1.964222.json +++ /dev/null @@ -1,182 +0,0 @@ -{ - "AltLookAngle": { - "x": 0, - "y": 0, - "z": 0 - }, - "Autoraise": true, - "ColorDiffuse": { - "b": 1, - "g": 1, - "r": 1 - }, - "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!\n\n- Added fan-made campaign: Unofficial Return to Innsmouth Conspiracy by DerBK!\n- 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, - "y": 0, - "z": 0 - }, - "Autoraise": true, - "ColorDiffuse": { - "b": 1, - "g": 1, - "r": 1 - }, - "Description": "- Resource tokens spawned automatically now have different states for commonly used special types like Ammo, Charges, etc.\n- New campaign importer/exporter by Entrox Licher allows saving of campaign state as a saveable object!\n- Added Subject 5U-21 and Parallel \"Ashcan\" Pete!\n- 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-7, - "rotY": 89.90733, - "rotZ": 6.263613e-8, - "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": "- Updated the Chaos Bag Manager and Token Arranger, and promoted them to be placed on the table by default.\n- Updated functionality of upkeep auto-rotate to allow for \"double-exhausted\" cards.\n- Sealing cards now survive save/load.\n- Other miscellaneous bugfixes.\n", - "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-7, - "rotY": 89.9073257, - "rotZ": 2.25048439e-7, - "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": "- 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\n- 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": 0.0000185548761, - "rotY": 89.90725, - "rotZ": 0.0000271951, - "scaleX": 3, - "scaleY": 1, - "scaleZ": 3 - }, - "Value": 0, - "XmlUI": "" - } - }, - "Sticky": true, - "Tooltip": true, - "Transform": { - "posX": -27, - "posY": 1.551, - "posZ": -56.165, - "rotX": 0, - "rotY": 90, - "rotZ": 0, - "scaleX": 3, - "scaleY": 1, - "scaleZ": 3 - }, - "Value": 0, - "XmlUI": "" -} diff --git a/objects/ArkhamSCE330-1092023-Page1.964222.json b/objects/ArkhamSCE330-1092023-Page1.964222.json new file mode 100644 index 00000000..c7f95c1f --- /dev/null +++ b/objects/ArkhamSCE330-1092023-Page1.964222.json @@ -0,0 +1,227 @@ +{ + "AltLookAngle": { + "x": 0, + "y": 0, + "z": 0 + }, + "Autoraise": true, + "ColorDiffuse": { + "b": 1, + "g": 1, + "r": 1 + }, + "Description": "Thanks for downloading Arkham SCE 3.3.0!\n\n- Added 2023-08-30 taboo list. Note that the prior 2022-08-26 taboo list is no longer supported.\n- Added some of the previewed player cards from Feast of Hemlock Vale.\n- Removed broken content from and cleaned up the community player card/investigator box.", + "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.3.0 - 10/9/2023 - Page 1", + "Snap": true, + "States": { + "2": { + "AltLookAngle": { + "x": 0, + "y": 0, + "z": 0 + }, + "Autoraise": true, + "ColorDiffuse": { + "b": 1, + "g": 1, + "r": 1 + }, + "Description": "- Added the following community contributions:\n Buffy the Vampire Slayer by AtomicZ!\n City of Secrets by Exhaled Innards!\n Circus Ex Mortis Investigator Expansion by The\n Beard!\n Heart of Darkness by Vinn Quest!\n The Red Coterie Investigators by\n Mattastrophic!\n (continued)", + "DragSelectable": true, + "GMNotes": "", + "GUID": "d7faf7", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScript": "", + "LuaScriptState": "", + "MeasureMovement": false, + "Name": "Notecard", + "Nickname": "Arkham SCE 3.3.0 - 10/9/2023 - Page 2", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": -26.88849, + "posY": 1.551499, + "posZ": -60.2882576, + "rotX": 0, + "rotY": 90, + "rotZ": 0, + "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": " The Sands of Memphis by Myriad!\n Souls of Darkness by JackOfHearts!\n- The options panel has a new option to spawn clickable counters only on \"0 uses\" cards. Try the \"Chef's Selection\" option for the best of both worlds!\n- Increased readability of master Clue Counter's text.", + "DragSelectable": true, + "GMNotes": "", + "GUID": "50d85e", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScript": "", + "LuaScriptState": "", + "MeasureMovement": false, + "Name": "Notecard", + "Nickname": "Arkham SCE 3.3.0 - 10/9/2023 - Page 3", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": -26.88849, + "posY": 1.551499, + "posZ": -60.2882576, + "rotX": 0, + "rotY": 90, + "rotZ": 0, + "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": "- General refactoring of code involving encounter card drawing, metadata, and the deck importer.\n- Added context menu option to Well-Connected to auto-calculate its skill bonus.\n- Fixed clues not spawning properly at very high clue counts.\n- Underworld Market helper no longer breaks when saving and loading.", + "DragSelectable": true, + "GMNotes": "", + "GUID": "e4e509", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScript": "", + "LuaScriptState": "", + "MeasureMovement": false, + "Name": "Notecard", + "Nickname": "Arkham SCE 3.3.0 - 10/9/2023 - Page 4", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": -26.88849, + "posY": 1.551499, + "posZ": -60.2882576, + "rotX": 0, + "rotY": 90, + "rotZ": 0, + "scaleX": 3, + "scaleY": 1, + "scaleZ": 3 + }, + "Value": 0, + "XmlUI": "" + }, + "5": { + "AltLookAngle": { + "x": 0, + "y": 0, + "z": 0 + }, + "Autoraise": true, + "ColorDiffuse": { + "b": 1, + "g": 1, + "r": 1 + }, + "Description": "- Fixed Token Arranger to be much less likely to \"explode\".\n- Resource spawning via hotkey on a card now auto-detects the right type of resource to spawn.\n- Various bits of community content have been updated to their most recent Workshop versions.\n\n- Thank you everyone for continuing to report bugs and create content for the mod!", + "DragSelectable": true, + "GMNotes": "", + "GUID": "c0ef49", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScript": "", + "LuaScriptState": "", + "MeasureMovement": false, + "Name": "Notecard", + "Nickname": "Arkham SCE 3.3.0 - 10/9/2023 - Page 5", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": -25.7359982, + "posY": 1.70084918, + "posZ": -59.9714432, + "rotX": 0, + "rotY": 90, + "rotZ": 0, + "scaleX": 3, + "scaleY": 1, + "scaleZ": 3 + }, + "Value": 0, + "XmlUI": "" + } + }, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": -26.978, + "posY": 1.551, + "posZ": -56.165, + "rotX": 0, + "rotY": 90, + "rotZ": 0, + "scaleX": 3, + "scaleY": 1, + "scaleZ": 3 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/Fan-MadeAccessories.aa8b38.json b/objects/Fan-MadeAccessories.aa8b38.json index 57375ea4..b6c3001c 100644 --- a/objects/Fan-MadeAccessories.aa8b38.json +++ b/objects/Fan-MadeAccessories.aa8b38.json @@ -20,7 +20,9 @@ "Double-SidedResource.bc81cb", "DescriptivePhaseTracker.b171c8", "CustomDataHelper.2547b3", - "UnderworldMarketHelper.3650ea" + "UnderworldMarketHelper.3650ea", + "Auto-failCounter.a9a321", + "ElderSignCounter.e62cb5" ], "ContainedObjects_path": "Fan-MadeAccessories.aa8b38", "CustomMesh": { diff --git a/objects/Fan-MadeAccessories.aa8b38/Auto-failCounter.a9a321.json b/objects/Fan-MadeAccessories.aa8b38/Auto-failCounter.a9a321.json new file mode 100644 index 00000000..c7b63814 --- /dev/null +++ b/objects/Fan-MadeAccessories.aa8b38/Auto-failCounter.a9a321.json @@ -0,0 +1,57 @@ +{ + "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": "require(\"core/GenericCounter\")", + "LuaScriptState": "0", + "MeasureMovement": false, + "Name": "Custom_Tile", + "Nickname": "Auto-fail Counter", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": -60.946, + "posY": 4.823, + "posZ": -74.885, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 0.81, + "scaleY": 1, + "scaleZ": 0.81 + }, + "Value": 0, + "XmlUI": "" +} \ No newline at end of file diff --git a/objects/Fan-MadeAccessories.aa8b38/ElderSignCounter.e62cb5.json b/objects/Fan-MadeAccessories.aa8b38/ElderSignCounter.e62cb5.json new file mode 100644 index 00000000..bfd05186 --- /dev/null +++ b/objects/Fan-MadeAccessories.aa8b38/ElderSignCounter.e62cb5.json @@ -0,0 +1,57 @@ +{ + "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": "require(\"core/GenericCounter\")", + "LuaScriptState": "0", + "MeasureMovement": false, + "Name": "Custom_Tile", + "Nickname": "Elder Sign Counter", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": -60.81, + "posY": 4.823, + "posZ": -75.121, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 0.81, + "scaleY": 1, + "scaleZ": 0.81 + }, + "Value": 0, + "XmlUI": "" +} \ No newline at end of file diff --git a/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c.json b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c.json index a2ab2af8..5c2387dc 100644 --- a/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c.json +++ b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c.json @@ -25,6 +25,7 @@ "TheNephewCalls.3ddd12", "TheNamelessCity.9d3083", "TheLegendofSleepyHollow.0500f1", + "TheInvisibleMan.17d01a", "TheGrandOakHotel.5ccf55", "TheFestival.29d22a", "TheFalloftheHouseofUsher.42bdd3", @@ -33,6 +34,8 @@ "TheColouroutofSpace.5b81ff", "TheCollector.9810eb", "StrangerThings.408301", + "ReturntotheWendigo.33f0f3", + "ReturntoConsternationontheConstellation.34ec55", "MiskatonicMouse.6defb8", "MasksofNyarlathotepNewYork.94a1f8", "LastCallatRoxies.c6a1ca", diff --git a/objects/CircusExMortisCampaign.93b8cb.json b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/ReturntoConsternationontheConstellation.34ec55.json similarity index 73% rename from objects/CircusExMortisCampaign.93b8cb.json rename to objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/ReturntoConsternationontheConstellation.34ec55.json index 770542bd..6f91c034 100644 --- a/objects/CircusExMortisCampaign.93b8cb.json +++ b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/ReturntoConsternationontheConstellation.34ec55.json @@ -12,21 +12,21 @@ "Size": 7.4 }, "Transform": { - "posX": -0.0021877822, - "posY": -0.08963572, - "posZ": -0.00288731651, + "posX": 0, + "posY": 0, + "posZ": 0, "rotX": 270, - "rotY": 359.869568, + "rotY": 0, "rotZ": 0, - "scaleX": 2.00000215, - "scaleY": 2.00000238, - "scaleZ": 2.00000262 + "scaleX": 2, + "scaleY": 2, + "scaleZ": 2 } } ], "Autoraise": true, "ColorDiffuse": { - "a": 0.27843, + "a": 0.27451, "b": 1, "g": 1, "r": 1 @@ -45,7 +45,7 @@ "SpecularIntensity": 0, "SpecularSharpness": 2 }, - "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/2001337710389944099/BC4BADD35E9E87F6BC0BAC93F0FCEB168848AAAC/", + "DiffuseURL": "https://github.com/ArkhamDotCards/returntoconsternationontheconstellation/blob/main/product/enUS/constellation-boxart-difuse.png?raw=true", "MaterialIndex": 3, "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj", "NormalURL": "", @@ -53,8 +53,8 @@ }, "Description": "", "DragSelectable": true, - "GMNotes": "fancreations/campaign_circus_ex_mortis.json", - "GUID": "93b8cb", + "GMNotes": "fancreations/scenario_return_to_consternation_on_the_constellation.json", + "GUID": "34ec55", "Grid": true, "GridProjection": false, "Hands": false, @@ -66,14 +66,14 @@ "LuaScriptState": "", "MeasureMovement": false, "Name": "Custom_Model", - "Nickname": "Circus Ex Mortis Campaign", + "Nickname": "Return to Consternation on the Constellation", "Snap": true, "Sticky": true, "Tooltip": true, "Transform": { - "posX": -25.87, - "posY": 1.481, - "posZ": -80.485, + "posX": 20, + "posY": 1.5, + "posZ": -5, "rotX": 0, "rotY": 270, "rotZ": 0, @@ -83,4 +83,4 @@ }, "Value": 0, "XmlUI": "" -} +} \ No newline at end of file diff --git a/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/ReturntotheWendigo.33f0f3.json b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/ReturntotheWendigo.33f0f3.json new file mode 100644 index 00000000..1e3ff66b --- /dev/null +++ b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/ReturntotheWendigo.33f0f3.json @@ -0,0 +1,86 @@ +{ + "AltLookAngle": { + "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, + "posY": 0, + "posZ": 0, + "rotX": 270, + "rotY": 0, + "rotZ": 0, + "scaleX": 2, + "scaleY": 2, + "scaleZ": 2 + } + } + ], + "Autoraise": true, + "ColorDiffuse": { + "a": 0.27451, + "b": 1, + "g": 1, + "r": 1 + }, + "CustomMesh": { + "CastShadows": true, + "ColliderURL": "", + "Convex": true, + "CustomShader": { + "FresnelStrength": 0, + "SpecularColor": { + "b": 1, + "g": 1, + "r": 1 + }, + "SpecularIntensity": 0, + "SpecularSharpness": 2 + }, + "DiffuseURL": "https://github.com/ArkhamDotCards/returntothewendigo/blob/main/product/enUS/wendigo-boxart-difuse.png?raw=true", + "MaterialIndex": 3, + "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj", + "NormalURL": "", + "TypeIndex": 0 + }, + "Description": "", + "DragSelectable": true, + "GMNotes": "fancreations/scenario_return_to_the_wendigo.json", + "GUID": "33f0f3", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScript": "require(\"core/DownloadBox\")", + "LuaScriptState": "", + "MeasureMovement": false, + "Name": "Custom_Model", + "Nickname": "Return to the Wendigo", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": 20, + "posY": 1.5, + "posZ": 5, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 2.21, + "scaleY": 0.46, + "scaleZ": 2.42 + }, + "Value": 0, + "XmlUI": "" +} \ No newline at end of file diff --git a/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/TheInvisibleMan.17d01a.json b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/TheInvisibleMan.17d01a.json new file mode 100644 index 00000000..bd2c2831 --- /dev/null +++ b/objects/Fan-MadeScenariosCampaignsMiscellany.66e97c/Fan-MadeStandaloneScenarios.5db60c/TheInvisibleMan.17d01a.json @@ -0,0 +1,86 @@ +{ + "AltLookAngle": { + "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, + "posY": 0, + "posZ": 0, + "rotX": 270, + "rotY": 0, + "rotZ": 0, + "scaleX": 2, + "scaleY": 2, + "scaleZ": 2 + } + } + ], + "Autoraise": true, + "ColorDiffuse": { + "a": 0.27451, + "b": 1, + "g": 1, + "r": 1 + }, + "CustomMesh": { + "CastShadows": true, + "ColliderURL": "", + "Convex": true, + "CustomShader": { + "FresnelStrength": 0, + "SpecularColor": { + "b": 1, + "g": 1, + "r": 1 + }, + "SpecularIntensity": 0, + "SpecularSharpness": 2 + }, + "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/2005838139148126671/D2A8004B560ED3623F3326F3F97B8B181AEC6371/", + "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_invisible_man.json", + "GUID": "17d01a", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScript": "require(\"core/DownloadBox\")", + "LuaScriptState": "", + "MeasureMovement": false, + "Name": "Custom_Model", + "Nickname": "The Invisible Man", + "Snap": true, + "Sticky": true, + "Tooltip": true, + "Transform": { + "posX": 20, + "posY": 1.5, + "posZ": 0, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 2.21, + "scaleY": 0.46, + "scaleZ": 2.42 + }, + "Value": 0, + "XmlUI": "" +} \ No newline at end of file diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.json index 7eb1937e..2ff84190 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.json @@ -19,17 +19,20 @@ "06BTheWebofDreams.1bac4d", "05TheCircleUndone.20d53c", "ReturntoExpansions.2275ed", + "10TheFeastofHemlockVale.2e50cf", "02TheDunwichLegacy.38d1cd", "C1DarkMatter.3a08d9", "S2Stand-Alones2020-202.4c47d8", "01NightoftheZealot.56a91d", "P1ChallengeScenarios.8f7e04", + "UpdatingtoNewVersions.a1b358", "04TheForgottenAge.d5cd12", "S1Stand-Alones2016-2020.e227ad", "08EdgeoftheEarth.e32dc3", "C2AliceinWonderland.ed1d0c", "06ATheDream-Quest.f03c2d", - "07TheInnsmouthConspiracy.f5f3b5" + "07TheInnsmouthConspiracy.f5f3b5", + "C3CyclopeanFoundations.f72800" ], "ContainedObjects_path": "CYOACampaignGuides.e87ea2", "CustomMesh": { @@ -74,15 +77,15 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 21.012, - "posY": 3.161, - "posZ": -26.838, + "posX": 39.494, + "posY": 3.793, + "posZ": 41.744, "rotX": 0, "rotY": 270, "rotZ": 0, - "scaleX": 1, - "scaleY": 1, - "scaleZ": 1 + "scaleX": 1.25, + "scaleY": 1.25, + "scaleZ": 1.25 }, "Value": 0, "XmlUI": "" diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.luascriptstate b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.luascriptstate index 067ac090..1b44175c 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.luascriptstate +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2.luascriptstate @@ -1 +1 @@ -{"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}}}} +{"ml":{"06a742":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":16.0398769378662},"rot":{"x":0,"y":269.9891,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"11d148":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":-25.9601230621338},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"1bac4d":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":-7.96012306213379},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"20d53c":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":4.03987693786621},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"2275ed":{"lock":false,"pos":{"x":41.8248138427734,"y":1.56903828582764,"z":-32.9601230621338},"rot":{"x":0,"y":90.0118,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"2e50cf":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":-31.9601230621338},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"38d1cd":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":22.0398769378662},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"3a08d9":{"lock":false,"pos":{"x":39.8248138427734,"y":1.24943828582764,"z":28.0398769378662},"rot":{"x":0,"y":270.0101,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"4c47d8":{"lock":false,"pos":{"x":48.3248138427734,"y":1.24943828582764,"z":22.0398769378662},"rot":{"x":0,"y":270.0195,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"56a91d":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":28.0398769378662},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"8f7e04":{"lock":false,"pos":{"x":48.3248138427734,"y":1.24943828582764,"z":4.03987693786621},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"a1b358":{"lock":false,"pos":{"x":35.8248138427734,"y":1.56903828582764,"z":-32.9601230621338},"rot":{"x":0,"y":89.9871,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"d5cd12":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":10.0398769378662},"rot":{"x":0,"y":270.0119,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"e227ad":{"lock":false,"pos":{"x":48.3248138427734,"y":1.24943828582764,"z":28.0398769378662},"rot":{"x":0,"y":269.9818,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"e32dc3":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":-19.9601230621338},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"ed1d0c":{"lock":false,"pos":{"x":39.8248138427734,"y":1.24943828582764,"z":22.0398769378662},"rot":{"x":0,"y":269.9964,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"f03c2d":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":-1.96012306213379},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"f5f3b5":{"lock":false,"pos":{"x":56.8248138427734,"y":1.24943828582764,"z":-13.9601230621338},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}},"f72800":{"lock":false,"pos":{"x":39.8248138427734,"y":1.24943828582764,"z":16.0398769378662},"rot":{"x":0,"y":270,"z":0},"tint":{"a":1,"b":1,"g":1,"r":1}}}} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d.json index 76f29c63..dfbf69bd 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d.json @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 32.969, - "posY": 1.048, - "posZ": -73.104, + "posX": 56.825, + "posY": 1.249, + "posZ": 28.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.json index 5b18e14c..fa3e6c25 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.ttslua", "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, + "posX": 66.463, + "posY": 3.037, + "posZ": 36.845, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/01NightoftheZealot.56a91d/NightoftheZealot.276907.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd.json index 74677825..cc3dc0da 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd.json @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 32.969, - "posY": 1.046, - "posZ": -79.104, + "posX": 56.825, + "posY": 1.249, + "posZ": 22.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.json index ca2f6cd0..6f002fa6 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.ttslua", "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, + "posX": 67.375, + "posY": 3.038, + "posZ": 30.123, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/02TheDunwichLegacy.38d1cd/TheDunwichLegacy.8df5fc.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742.json index 0bafb6c3..d20e4666 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742.json @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 32.969, - "posY": 1.044, - "posZ": -85.104, + "posX": 56.825, + "posY": 1.249, + "posZ": 16.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.json index d914d1e8..6b0cbadc 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.ttslua", "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, + "posX": 64.825, + "posY": 3.038, + "posZ": 24.224, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/03ThePathtoCarcosa.06a742/Custom_PDF.df45c0.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12.json index 37ed8909..c2c21074 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12.json @@ -60,9 +60,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 32.969, - "posY": 1.043, - "posZ": -91.104, + "posX": 56.825, + "posY": 1.249, + "posZ": 10.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.20c2ad.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.20c2ad.json index 2982e67d..69c87a85 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.20c2ad.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.20c2ad.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.20c2ad.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "The Forgotten Age", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": -8.236, - "posY": 2.511, - "posZ": -5.479, + "posX": 65.567, + "posY": 3.038, + "posZ": 18.74, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.20c2ad.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.20c2ad.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAge.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.908cbf.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.908cbf.json index 87b8f803..d3e4fa1d 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.908cbf.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.908cbf.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.908cbf.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "The Forgotten Age (Return to)", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": -8.079, - "posY": 2.511, - "posZ": -5.591, + "posX": 66.292, + "posY": 3.038, + "posZ": 17.746, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.908cbf.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.908cbf.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/04TheForgottenAge.d5cd12/TheForgottenAgeReturnto.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c.json index 2a920618..91085f22 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c.json @@ -60,9 +60,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 24.969, - "posY": 1.045, - "posZ": -73.104, + "posX": 56.825, + "posY": 1.249, + "posZ": 4.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.692219.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.692219.json index 0bec6282..7b70bdb7 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.692219.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.692219.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.692219.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "The Circle Undone", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 2.737, - "posY": 2.511, - "posZ": -7.436, + "posX": 67.989, + "posY": 3.038, + "posZ": 9.81, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.692219.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.692219.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndone.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.9e9944.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.9e9944.json index d020efbd..33bc7b9c 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.9e9944.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.9e9944.json @@ -14,7 +14,7 @@ "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, @@ -27,21 +27,24 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.9e9944.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "The Circle Undone (Return to)", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 2.228, - "posY": 2.704, - "posZ": -9.378, - "rotX": 3, + "posX": 65.795, + "posY": 3.038, + "posZ": 11.853, + "rotX": 0, "rotY": 270, - "rotZ": 2, + "rotZ": 0, "scaleX": 1.76, "scaleY": 1, "scaleZ": 1.76 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.9e9944.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.9e9944.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/05TheCircleUndone.20d53c/TheCircleUndoneReturnto.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d.json index 1b2fdf4c..5c52626c 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d.json @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 24.969, - "posY": 1.043, - "posZ": -79.1, + "posX": 56.825, + "posY": 1.249, + "posZ": -1.96, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.json index 0b577a0b..7ef276b6 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.ttslua", "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, + "posX": 66.919, + "posY": 3.038, + "posZ": 4.633, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06ATheDream-Quest.f03c2d/TheDreamQuestCampaignA.47b9c1.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d.json index b4568cd8..4eea4d69 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d.json @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 24.969, - "posY": 1.041, - "posZ": -85.1, + "posX": 56.825, + "posY": 1.249, + "posZ": -7.96, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.json index 14aebf54..8e78d6e4 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.ttslua", "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, + "posX": 65.358, + "posY": 3.038, + "posZ": -1.704, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/06BTheWebofDreams.1bac4d/TheWebofDreamsCampaignB.ae792e.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5.json index 55440533..6f4401ec 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5.json @@ -60,9 +60,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 24.969, - "posY": 1.04, - "posZ": -91.1, + "posX": 56.825, + "posY": 1.249, + "posZ": -13.96, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-Chronological.c50a3a.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-Chronological.c50a3a.json index c7c0ff51..2be59cbe 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-Chronological.c50a3a.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-Chronological.c50a3a.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-Chronological.c50a3a.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "07 The Innsmouth Conspiracy - Chronological", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": -3.487, - "posY": 2.511, - "posZ": -14.208, + "posX": 66.932, + "posY": 3.038, + "posZ": -8.659, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-Chronological.c50a3a.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-Chronological.c50a3a.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.f42179.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.f42179.json index 305f47c5..26464c16 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.f42179.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.f42179.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.f42179.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "07 The Innsmouth Conspiracy - Play Order", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 0.847, - "posY": 2.818, - "posZ": 73.957, + "posX": 65.915, + "posY": 3.038, + "posZ": -7.148, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.f42179.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.f42179.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/07TheInnsmouthConspiracy.f5f3b5/07TheInnsmouthConspiracy-PlayOrder.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3.json index db2d608b..4092105b 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3.json @@ -14,7 +14,7 @@ "r": 1 }, "ContainedObjects_order": [ - "08EdgeoftheEarth.c50a3a" + "08EdgeoftheEarth.754904" ], "ContainedObjects_path": "08EdgeoftheEarth.e32dc3", "CustomMesh": { @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 16.97, - "posY": 1.063, - "posZ": -73.1, + "posX": 56.825, + "posY": 1.249, + "posZ": -19.96, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3/08EdgeoftheEarth.754904.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3/08EdgeoftheEarth.754904.json new file mode 100644 index 00000000..beedfb33 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3/08EdgeoftheEarth.754904.json @@ -0,0 +1,54 @@ +{ + "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%2008%20Edge%20of%20the%20Earth.pdf?raw=true" + }, + "Description": "", + "DragSelectable": true, + "GMNotes": "", + "GUID": "754904", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3/08EdgeoftheEarth.754904.ttslua", + "MeasureMovement": false, + "Name": "Custom_PDF", + "Nickname": "08 Edge of the Earth", + "Snap": true, + "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], + "Tooltip": true, + "Transform": { + "posX": 66.88, + "posY": 3.038, + "posZ": -13.447, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1.76, + "scaleY": 1, + "scaleZ": 1.76 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3/08EdgeoftheEarth.754904.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3/08EdgeoftheEarth.754904.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/08EdgeoftheEarth.e32dc3/08EdgeoftheEarth.754904.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148.json index bff652b3..94187e7d 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148.json @@ -14,7 +14,8 @@ "r": 1 }, "ContainedObjects_order": [ - "09TheScarletKeys.c50a3a" + "09TheScarletKeysScenariosCaseFiles.c6e8a0", + "09TheScarletKeysSetupandDossiers.abf457" ], "ContainedObjects_path": "09TheScarletKeys.11d148", "CustomMesh": { @@ -59,9 +60,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 16.969, - "posY": 1.062, - "posZ": -79.1, + "posX": 56.825, + "posY": 1.249, + "posZ": -25.96, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysScenariosCaseFiles.c6e8a0.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysScenariosCaseFiles.c6e8a0.json new file mode 100644 index 00000000..3e2541eb --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysScenariosCaseFiles.c6e8a0.json @@ -0,0 +1,54 @@ +{ + "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, + "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysScenariosCaseFiles.c6e8a0.ttslua", + "MeasureMovement": false, + "Name": "Custom_PDF", + "Nickname": "09 The Scarlet Keys: Scenarios \u0026 Case Files", + "Snap": true, + "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], + "Tooltip": true, + "Transform": { + "posX": 66.593, + "posY": 3.038, + "posZ": -20.295, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1.76, + "scaleY": 1, + "scaleZ": 1.76 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysScenariosCaseFiles.c6e8a0.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysScenariosCaseFiles.c6e8a0.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysScenariosCaseFiles.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysSetupandDossiers.abf457.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysSetupandDossiers.abf457.json new file mode 100644 index 00000000..04e1be99 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysSetupandDossiers.abf457.json @@ -0,0 +1,54 @@ +{ + "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, + "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysSetupandDossiers.abf457.ttslua", + "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.336, + "posY": 3.038, + "posZ": -20.774, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1.76, + "scaleY": 1, + "scaleZ": 1.76 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysSetupandDossiers.abf457.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysSetupandDossiers.abf457.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/09TheScarletKeys.11d148/09TheScarletKeysSetupandDossiers.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf.json new file mode 100644 index 00000000..5305e141 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf.json @@ -0,0 +1,74 @@ +{ + "AltLookAngle": { + "x": 0, + "y": 0, + "z": 0 + }, + "Autoraise": true, + "Bag": { + "Order": 0 + }, + "ColorDiffuse": { + "b": 1, + "g": 1, + "r": 1 + }, + "ContainedObjects_order": [ + "10TheFeastofHemlockValePlaceholder.cecfc9" + ], + "ContainedObjects_path": "10TheFeastofHemlockVale.2e50cf", + "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": 56.825, + "posY": 1.249, + "posZ": -31.96, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1, + "scaleY": 1, + "scaleZ": 1 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf/10TheFeastofHemlockValePlaceholder.cecfc9.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf/10TheFeastofHemlockValePlaceholder.cecfc9.json new file mode 100644 index 00000000..4b4213c9 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf/10TheFeastofHemlockValePlaceholder.cecfc9.json @@ -0,0 +1,54 @@ +{ + "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, + "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf/10TheFeastofHemlockValePlaceholder.cecfc9.ttslua", + "MeasureMovement": false, + "Name": "Custom_PDF", + "Nickname": "10 The Feast of Hemlock Vale: Placeholder", + "Snap": true, + "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], + "Tooltip": true, + "Transform": { + "posX": 67.349, + "posY": 3.037, + "posZ": -26.971, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1.76, + "scaleY": 1, + "scaleZ": 1.76 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf/10TheFeastofHemlockValePlaceholder.cecfc9.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf/10TheFeastofHemlockValePlaceholder.cecfc9.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/10TheFeastofHemlockVale.2e50cf/10TheFeastofHemlockValePlaceholder.cecfc9.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9.json index 7beb59a3..0209d107 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9.json @@ -14,7 +14,7 @@ "r": 1 }, "ContainedObjects_order": [ - "C1DarkMatter.409b50" + "C1DarkMatter.602e48" ], "ContainedObjects_path": "C1DarkMatter.3a08d9", "CustomMesh": { @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 8.969, - "posY": 1.074, - "posZ": -79.1, + "posX": 39.825, + "posY": 1.249, + "posZ": 28.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9/C1DarkMatter.602e48.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9/C1DarkMatter.602e48.json new file mode 100644 index 00000000..5c2c21af --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9/C1DarkMatter.602e48.json @@ -0,0 +1,54 @@ +{ + "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%20C1%20Dark%20Matter.pdf?raw=true" + }, + "Description": "Designed by Axolotl", + "DragSelectable": true, + "GMNotes": "", + "GUID": "602e48", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9/C1DarkMatter.602e48.ttslua", + "MeasureMovement": false, + "Name": "Custom_PDF", + "Nickname": "C1 Dark Matter", + "Snap": true, + "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], + "Tooltip": true, + "Transform": { + "posX": 47.575, + "posY": 3.038, + "posZ": 36.067, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1.76, + "scaleY": 1, + "scaleZ": 1.76 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9/C1DarkMatter.602e48.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9/C1DarkMatter.602e48.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C1DarkMatter.3a08d9/C1DarkMatter.602e48.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c.json index 067af249..c34014d5 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c.json @@ -14,7 +14,7 @@ "r": 1 }, "ContainedObjects_order": [ - "C2AliceinWonderland.409b50" + "C2AliceinWonderland.4cf017" ], "ContainedObjects_path": "C2AliceinWonderland.ed1d0c", "CustomMesh": { @@ -59,9 +59,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 8.969, - "posY": 1.072, - "posZ": -85.1, + "posX": 39.825, + "posY": 1.249, + "posZ": 22.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c/C2AliceinWonderland.4cf017.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c/C2AliceinWonderland.4cf017.json new file mode 100644 index 00000000..a0fbaae2 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c/C2AliceinWonderland.4cf017.json @@ -0,0 +1,54 @@ +{ + "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%20C2%20Alice%20in%20Wonderland.pdf?raw=true" + }, + "Description": "Designed by Tyler Gotch", + "DragSelectable": true, + "GMNotes": "", + "GUID": "4cf017", + "Grid": true, + "GridProjection": false, + "Hands": false, + "HideWhenFaceDown": false, + "IgnoreFoW": false, + "LayoutGroupSortIndex": 0, + "Locked": false, + "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c/C2AliceinWonderland.4cf017.ttslua", + "MeasureMovement": false, + "Name": "Custom_PDF", + "Nickname": "C2 Alice in Wonderland", + "Snap": true, + "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], + "Tooltip": true, + "Transform": { + "posX": 48.535, + "posY": 3.038, + "posZ": 29.793, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1.76, + "scaleY": 1, + "scaleZ": 1.76 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c/C2AliceinWonderland.4cf017.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c/C2AliceinWonderland.4cf017.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C2AliceinWonderland.ed1d0c/C2AliceinWonderland.4cf017.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800.json new file mode 100644 index 00000000..e01a3fb3 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800.json @@ -0,0 +1,74 @@ +{ + "AltLookAngle": { + "x": 0, + "y": 0, + "z": 0 + }, + "Autoraise": true, + "Bag": { + "Order": 0 + }, + "ColorDiffuse": { + "b": 1, + "g": 1, + "r": 1 + }, + "ContainedObjects_order": [ + "C3CyclopeanFoundations.0be2cd" + ], + "ContainedObjects_path": "C3CyclopeanFoundations.f72800", + "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": 43.493, + "posY": 3.182, + "posZ": -22.799, + "rotX": 0, + "rotY": 270, + "rotZ": 0, + "scaleX": 1, + "scaleY": 1, + "scaleZ": 1 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800/C3CyclopeanFoundations.0be2cd.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800/C3CyclopeanFoundations.0be2cd.json new file mode 100644 index 00000000..a858f678 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800/C3CyclopeanFoundations.0be2cd.json @@ -0,0 +1,54 @@ +{ + "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, + "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800/C3CyclopeanFoundations.0be2cd.ttslua", + "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": "" +} diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800/C3CyclopeanFoundations.0be2cd.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800/C3CyclopeanFoundations.0be2cd.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/C3CyclopeanFoundations.f72800/C3CyclopeanFoundations.0be2cd.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04.json index 5ef39c15..884f26b2 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04.json @@ -66,9 +66,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 8.971, - "posY": 1.076, - "posZ": -73.1, + "posX": 48.325, + "posY": 1.249, + "posZ": 4.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P101ReadorDie.8994ea.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P101ReadorDie.8994ea.json index 0ddc13d5..42275eff 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P101ReadorDie.8994ea.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P101ReadorDie.8994ea.json @@ -34,11 +34,14 @@ "Nickname": "P1 01 Read or Die", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 9.656, - "posY": 2.859, - "posZ": -72.195, + "posX": 56.895, + "posY": 3.038, + "posZ": 11.163, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P102AllorNothing.8950c7.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P102AllorNothing.8950c7.json index c5fd495e..cd489560 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P102AllorNothing.8950c7.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P102AllorNothing.8950c7.json @@ -34,11 +34,14 @@ "Nickname": "P1 02 All or Nothing", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 9.928, - "posY": 2.864, - "posZ": -71.817, + "posX": 56.42, + "posY": 3.038, + "posZ": 12.967, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P103BadBlood.b5fcf1.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P103BadBlood.b5fcf1.json index d720b549..79660447 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P103BadBlood.b5fcf1.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P103BadBlood.b5fcf1.json @@ -34,11 +34,14 @@ "Nickname": "P1 03 Bad Blood", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 9.889, - "posY": 2.863, - "posZ": -72.852, + "posX": 58.344, + "posY": 3.038, + "posZ": 11.89, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P104BytheBook.a37a83.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P104BytheBook.a37a83.json index f8a66553..eb83c06e 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P104BytheBook.a37a83.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P104BytheBook.a37a83.json @@ -34,11 +34,14 @@ "Nickname": "P1 04 By the Book", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 11.118, - "posY": 2.864, - "posZ": -72.564, + "posX": 58.036, + "posY": 3.038, + "posZ": 11.817, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P105RedTideRising.f053b0.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P105RedTideRising.f053b0.json index 48862565..69047380 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P105RedTideRising.f053b0.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P105RedTideRising.f053b0.json @@ -34,11 +34,14 @@ "Nickname": "P1 05 Red Tide Rising", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 8.563, - "posY": 2.859, - "posZ": -73.32, + "posX": 56.928, + "posY": 3.038, + "posZ": 10.527, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.409b50.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.409b50.json index b9528ce5..fa888955 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.409b50.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.409b50.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.409b50.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "P1 Challenge Scenarios", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 9.933, - "posY": 2.863, - "posZ": -70.772, + "posX": 55.947, + "posY": 3.038, + "posZ": 11.905, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.409b50.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.409b50.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1ChallengeScenarios.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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCDeathItself.443855.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCDeathItself.443855.json index be0868b7..046a139f 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCDeathItself.443855.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCDeathItself.443855.json @@ -34,11 +34,14 @@ "Nickname": "P1 DC Death Itself", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 10.16, - "posY": 2.863, - "posZ": -72.672, + "posX": 57.255, + "posY": 3.038, + "posZ": 11.839, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCThenitMultiplied.d72c48.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCThenitMultiplied.d72c48.json index 15bb6d71..5e7e7080 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCThenitMultiplied.d72c48.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/P1ChallengeScenarios.8f7e04/P1DCThenitMultiplied.d72c48.json @@ -34,11 +34,14 @@ "Nickname": "P1 DC Then it Multiplied", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 8.449, - "posY": 2.859, - "posZ": -73.655, + "posX": 56.602, + "posY": 3.038, + "posZ": 10.863, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/ReturntoExpansions.2275ed.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/ReturntoExpansions.2275ed.json index 05e3d134..4aacb688 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/ReturntoExpansions.2275ed.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/ReturntoExpansions.2275ed.json @@ -30,9 +30,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 29.34, - "posY": 1.368, - "posZ": -65.808, + "posX": 41.825, + "posY": 1.569, + "posZ": -32.96, "rotX": 0, "rotY": 90, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad.json index 68e4e4f2..b4f910c4 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad.json @@ -65,9 +65,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 16.968, - "posY": 1.06, - "posZ": -85.1, + "posX": 48.325, + "posY": 1.249, + "posZ": 28.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S0102CarinvaleofHorrors.538f32.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S0102CarinvaleofHorrors.538f32.json index cbe71015..28108d6c 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S0102CarinvaleofHorrors.538f32.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S0102CarinvaleofHorrors.538f32.json @@ -34,11 +34,14 @@ "Nickname": "S01 02 Carinvale of Horrors", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 9.315, - "posY": 2.511, - "posZ": -1.398, + "posX": 58.336, + "posY": 3.038, + "posZ": 37.612, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S101CurseoftheRougarou.39bf7c.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S101CurseoftheRougarou.39bf7c.json index 4ad49fd3..85511c61 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S101CurseoftheRougarou.39bf7c.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S101CurseoftheRougarou.39bf7c.json @@ -34,12 +34,15 @@ "Nickname": "S1 01 Curse of the Rougarou", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 8.758, - "posY": 2.787, - "posZ": -0.99, - "rotX": 5, + "posX": 59.496, + "posY": 3.036, + "posZ": 38.605, + "rotX": 0, "rotY": 270, "rotZ": 0, "scaleX": 1.76, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S103TheLabyrinthsofLunacy.d014ce.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S103TheLabyrinthsofLunacy.d014ce.json index ce8a059d..d4429b72 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S103TheLabyrinthsofLunacy.d014ce.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S103TheLabyrinthsofLunacy.d014ce.json @@ -34,11 +34,14 @@ "Nickname": "S1 03 The Labyrinths of Lunacy", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 6.482, - "posY": 2.511, - "posZ": -0.145, + "posX": 58.243, + "posY": 3.038, + "posZ": 35.677, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S104GuardiansoftheAbyss.6611a9.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S104GuardiansoftheAbyss.6611a9.json index 27f55ecc..9eae9750 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S104GuardiansoftheAbyss.6611a9.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S104GuardiansoftheAbyss.6611a9.json @@ -34,12 +34,15 @@ "Nickname": "S1 04 Guardians of the Abyss", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 7.318, - "posY": 2.658, - "posZ": -1.465, - "rotX": 3, + "posX": 59.32, + "posY": 3.037, + "posZ": 38.128, + "rotX": 0, "rotY": 270, "rotZ": 0, "scaleX": 1.76, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S105MurderattheExcelsiorHotel.b13297.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S105MurderattheExcelsiorHotel.b13297.json index 2c89ccb5..be505cb9 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S105MurderattheExcelsiorHotel.b13297.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S105MurderattheExcelsiorHotel.b13297.json @@ -34,14 +34,17 @@ "Nickname": "S1 05 Murder at the Excelsior Hotel", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 8.414, - "posY": 2.587, - "posZ": -0.941, + "posX": 57.922, + "posY": 3.038, + "posZ": 37.362, "rotX": 0, "rotY": 270, - "rotZ": 1, + "rotZ": 0, "scaleX": 1.76, "scaleY": 1, "scaleZ": 1.76 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S106TheBlobthatAteEverything.6ad284.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S106TheBlobthatAteEverything.6ad284.json index 2ed88f03..c5ce4ac5 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S106TheBlobthatAteEverything.6ad284.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S106TheBlobthatAteEverything.6ad284.json @@ -34,14 +34,17 @@ "Nickname": "S1 06 The Blob that Ate Everything", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 7.815, - "posY": 2.647, - "posZ": 0.798, + "posX": 56.811, + "posY": 3.037, + "posZ": 36.984, "rotX": 0, "rotY": 270, - "rotZ": 2, + "rotZ": 0, "scaleX": 1.76, "scaleY": 1, "scaleZ": 1.76 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-2020.00a430.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-2020.00a430.json index ad9014cf..ea0be128 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-2020.00a430.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-2020.00a430.json @@ -27,18 +27,21 @@ "IgnoreFoW": false, "LayoutGroupSortIndex": 0, "Locked": false, - "LuaScript": "", "LuaScriptState": "", + "LuaScript_path": "OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-2020.00a430.ttslua", "MeasureMovement": false, "Name": "Custom_PDF", "Nickname": "S1 Stand-Alone Scenarios 2016-2020", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 7.133, - "posY": 2.511, - "posZ": 0.024, + "posX": 57.747, + "posY": 3.038, + "posZ": 37.913, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-2020.00a430.ttslua b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-2020.00a430.ttslua new file mode 100644 index 00000000..e4bf980e --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S1Stand-Alones2016-2020.e227ad/S1Stand-AloneScenarios2016-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 diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8.json index 234a6112..550c65cb 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8.json @@ -62,9 +62,9 @@ "Sticky": true, "Tooltip": true, "Transform": { - "posX": 16.968, - "posY": 1.058, - "posZ": -91.1, + "posX": 48.325, + "posY": 1.249, + "posZ": 22.04, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S207BarkhamHorror.409b50.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S207BarkhamHorror.409b50.json index 3d9618ca..a65e807e 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S207BarkhamHorror.409b50.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S207BarkhamHorror.409b50.json @@ -34,11 +34,14 @@ "Nickname": "S2 07 Barkham Horror", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 16.576, - "posY": 2.846, - "posZ": -90.917, + "posX": 57.284, + "posY": 3.038, + "posZ": 27.325, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S208WaroftheOuterGods.bffa04.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S208WaroftheOuterGods.bffa04.json index bee90562..60b7134a 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S208WaroftheOuterGods.bffa04.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S208WaroftheOuterGods.bffa04.json @@ -34,11 +34,14 @@ "Nickname": "S2 08 War of the Outer Gods", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": -15.976, - "posY": 2.511, - "posZ": -13.355, + "posX": 58.218, + "posY": 3.038, + "posZ": 27.814, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S209MachinationsThroughTime.f5dbf1.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S209MachinationsThroughTime.f5dbf1.json index b6a5b0cb..0bc79fc3 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S209MachinationsThroughTime.f5dbf1.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S209MachinationsThroughTime.f5dbf1.json @@ -34,11 +34,14 @@ "Nickname": "S2 09 Machinations Through Time", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": -15.355, - "posY": 2.511, - "posZ": -15.28, + "posX": 57.54, + "posY": 3.038, + "posZ": 27.504, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S210FortuneandFolly.e19e46.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S210FortuneandFolly.e19e46.json index 698a0594..a649d4e4 100644 --- a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S210FortuneandFolly.e19e46.json +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/S2Stand-Alones2020-202.4c47d8/S210FortuneandFolly.e19e46.json @@ -34,11 +34,14 @@ "Nickname": "S2 10 Fortune and Folly", "Snap": true, "Sticky": true, + "Tags": [ + "CleanUpHelper_ignore" + ], "Tooltip": true, "Transform": { - "posX": 17.318, - "posY": 2.845, - "posZ": -92.94, + "posX": 55.414, + "posY": 3.038, + "posZ": 27.01, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/UpdatingtoNewVersions.a1b358.json b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/UpdatingtoNewVersions.a1b358.json new file mode 100644 index 00000000..923f6338 --- /dev/null +++ b/objects/OptionPanelSource.830bd0/CYOACampaignGuides.e87ea2/UpdatingtoNewVersions.a1b358.json @@ -0,0 +1,45 @@ +{ + "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...\nC:\\Users\\[USERNAME]\\Documents\\My Games\\Tabletop Simulator\\Mods\nAnd search for ANTIMARKOVNIKOV.\nDelete 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": 35.825, + "posY": 1.569, + "posZ": -32.96, + "rotX": 0, + "rotY": 90, + "rotZ": 0, + "scaleX": 1.25, + "scaleY": 1.25, + "scaleZ": 1.25 + }, + "Value": 0, + "XmlUI": "" +} diff --git a/objects/Half-Life.b46db2.json b/objects/SoulsofDarkness.a94e6b.json similarity index 83% rename from objects/Half-Life.b46db2.json rename to objects/SoulsofDarkness.a94e6b.json index 3216bba3..23b4e922 100644 --- a/objects/Half-Life.b46db2.json +++ b/objects/SoulsofDarkness.a94e6b.json @@ -26,10 +26,9 @@ ], "Autoraise": true, "ColorDiffuse": { - "a": 0.27843, - "b": 1, - "g": 1, - "r": 1 + "b": 0.40592, + "g": 0.40592, + "r": 0.40592 }, "CustomMesh": { "CastShadows": true, @@ -45,7 +44,7 @@ "SpecularIntensity": 0, "SpecularSharpness": 2 }, - "DiffuseURL": "http://cloud-3.steamusercontent.com/ugc/2005838229417815473/BC879D878262BA9FBD9040AE4F952468C3C4C2CC/", + "DiffuseURL": "https://i.ibb.co/SrtzMNN/souls-of-darkness.png", "MaterialIndex": 3, "MeshURL": "https://raw.githubusercontent.com/RobMayer/TTSLibrary/master/advboxes/tuckbox_h_MSH.obj", "NormalURL": "", @@ -53,8 +52,8 @@ }, "Description": "", "DragSelectable": true, - "GMNotes": "fancreations/campaign_half-life.json", - "GUID": "b46db2", + "GMNotes": "fancreations/campaign_souls_of_darkness.json", + "GUID": "a94e6b", "Grid": true, "GridProjection": false, "Hands": false, @@ -66,14 +65,14 @@ "LuaScriptState": "", "MeasureMovement": false, "Name": "Custom_Model", - "Nickname": "Half-Life", + "Nickname": "Souls of Darkness", "Snap": true, "Sticky": true, "Tooltip": true, "Transform": { - "posX": -25.87, + "posX": -26.956, "posY": 1.481, - "posZ": -87.507, + "posZ": -84.507, "rotX": 0, "rotY": 270, "rotZ": 0, diff --git a/objects/TokenArranger.022907.luascriptstate b/objects/TokenArranger.022907.luascriptstate index 638cf57f..919c5c6c 100644 --- a/objects/TokenArranger.022907.luascriptstate +++ b/objects/TokenArranger.022907.luascriptstate @@ -1 +1 @@ -{"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]}} +{"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]}} diff --git a/src/accessories/CleanUpHelper.ttslua b/src/accessories/CleanUpHelper.ttslua index c64d2dab..c1d66f5b 100644 --- a/src/accessories/CleanUpHelper.ttslua +++ b/src/accessories/CleanUpHelper.ttslua @@ -122,6 +122,7 @@ function cleanUp(_, color) removeLines() discardHands() tokenSpawnTrackerApi.resetAll() + chaosBagApi.returnChaosTokens() chaosBagApi.releaseAllSealedTokens(color) printToAll("Tidying main play area...", "White") diff --git a/src/accessories/TokenArranger.ttslua b/src/accessories/TokenArranger.ttslua index 8111b455..8be13a39 100644 --- a/src/accessories/TokenArranger.ttslua +++ b/src/accessories/TokenArranger.ttslua @@ -26,12 +26,13 @@ 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", @@ -47,17 +48,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() @@ -74,7 +77,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 @@ -84,7 +94,7 @@ function onLoad(saveState) layout() end) - self.addContextMenuItem("Toggle cumulative", function() + self.addContextMenuItem("Toggle cumulative", function() if percentage == "cumulative" then percentage = "basic" else @@ -156,7 +166,7 @@ function createButtonsAndInputs() 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 = "tokenClick" .. i @@ -226,23 +236,23 @@ function createPercentageButton(tokenCount, valueCount, tokenName) local startPos = Vector(2.3, -0.05, 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 @@ -253,8 +263,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%" @@ -278,7 +288,7 @@ function layout(_, _, isRightClick) return end - -- get ChaosBag and stop if not found + -- get ChaosBag and stop if not found local chaosBag = chaosBagApi.findChaosBag() if not chaosBag then updating = false @@ -286,8 +296,18 @@ function layout(_, _, isRightClick) end -- clone tokens from chaos bag (default position above trash can) + 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(chaosBag.getData().ContainedObjects) do + for i, objData in ipairs(rawData) do objData["Tags"] = { "tempToken" } local value = tonumber(objData.Nickname) local precedence = tokenPrecedence[objData.Nickname] @@ -316,7 +336,7 @@ function layout(_, _, isRightClick) 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 @@ -327,10 +347,10 @@ 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 @@ -339,7 +359,7 @@ function layout(_, _, isRightClick) position = location, rotation = rotation }) - tokenName = item.token.Nickname + tokenName = item.token.Nickname location.z = location.z - 1.75 tokenCount.row = tokenCount.row + 1 end diff --git a/src/chaosbag/ChaosBagApi.ttslua b/src/chaosbag/ChaosBagApi.ttslua index e0252266..3a1d2a42 100644 --- a/src/chaosbag/ChaosBagApi.ttslua +++ b/src/chaosbag/ChaosBagApi.ttslua @@ -23,11 +23,21 @@ 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.getTable("chaosTokens") + 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) diff --git a/src/core/GenericCounter.ttslua b/src/core/GenericCounter.ttslua index d21ff1c7..b8409383 100644 --- a/src/core/GenericCounter.ttslua +++ b/src/core/GenericCounter.ttslua @@ -16,6 +16,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/src/core/Global.ttslua b/src/core/Global.ttslua index 7cc27b65..67432af0 100644 --- a/src/core/Global.ttslua +++ b/src/core/Global.ttslua @@ -30,8 +30,11 @@ local NOT_INTERACTABLE = { } local guidHandler, DATA_HELPER -local chaosTokens = {} + +-- global variable for access +chaosTokens = {} local chaosTokensLastMat = nil + local bagSearchers = {} local MAT_COLORS = {"White", "Orange", "Green", "Red"} local hideTitleSplashWaitFunctionId = nil @@ -923,7 +926,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}) + optionPanel[id] = spawnOrRemoveHelper(state, "CYOA Campaign Guides", {39, 1.3, -20}) -- option: Show custom playmat images elseif id == "showCustomPlaymatImages" then diff --git a/src/core/token/TokenManager.ttslua b/src/core/token/TokenManager.ttslua index 67251e2a..192d7aad 100644 --- a/src/core/token/TokenManager.ttslua +++ b/src/core/token/TokenManager.ttslua @@ -199,14 +199,15 @@ do ---@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 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 @@ -476,7 +477,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 diff --git a/src/playercards/PlayerCardPanelData.ttslua b/src/playercards/PlayerCardPanelData.ttslua index 79595658..0ca5bc75 100644 --- a/src/playercards/PlayerCardPanelData.ttslua +++ b/src/playercards/PlayerCardPanelData.ttslua @@ -437,7 +437,7 @@ INVESTIGATORS["Amanda Sharpe"] = { starterDeck = "2626469" } INVESTIGATORS["Trish Scarborough"] = { - cards = { "07003" }, + cards = { "07003", "07003-t" }, minicards = { "07003-m" }, signatures = { "07010", "07011" }, starterDeck = "2626479"