SCED/objects/Fan-MadeAccessories.aa8b38/CustomPlaymatImages.004fe7.ttslua
Buhallin db65f3c8e3
Add PlayArea API
Creates an API object for the PlayArea, and moves most references to the PlayArea to use the API instead.

Image swapper is excluded on this, as I'm not completely sure how TTS will handle having an object rebuild itself.
2022-12-12 18:56:04 -08:00

765 lines
30 KiB
Plaintext

local DATA = {
["Arkham Locations"] = { {
Name = "Downtown 1",
URL = "https://i.ibb.co/FzRk98n/Arkham-Downtown-Cristi-Balanescu.jpg"
}, {
Name = "Downtown 2",
URL = "https://i.ibb.co/W2yJ5QZ/Arkham-Downtown-Jokubas-Uogintas.jpg"
}, {
Name = "Eastside 1",
URL = "https://i.ibb.co/W3QvdZW/Arkham-Eastside-Cristi-Balanescu.jpg"
}, {
Name = "Eastside 2",
URL = "https://i.ibb.co/xfn1Fp8/Arkham-Eastside-Jokubas-Uogintas.jpg"
}, {
Name = "French Hill",
URL = "https://i.ibb.co/N7Lk7jc/Arkham-French-Hill-Cristi-Balanescu.jpg"
}, {
Name = "Merchant District",
URL = "https://i.ibb.co/HTNCCq4/Arkham-Merchant-District-Jokubas-Uogintas.jpg"
}, {
Name = "Generic 1",
URL = "https://i.ibb.co/hswfZD6/Arkham-Guillem-H-Pongiluppi.jpg"
}, {
Name = "Generic 2",
URL = "https://i.ibb.co/5h5cMyF/Arkham-Guillem-H-Pongiluppi-2.jpg"
}, {
Name = "Generic 3",
URL = "https://i.ibb.co/ZBdVsWt/Arkham-Guillem-H-Pongiluppi-3.jpg"
}, {
Name = "Generic 4",
URL = "https://i.ibb.co/6NwbM59/Arkham-Michele-Botticelli.jpg"
}, {
Name = "Generic 5",
URL = "https://i.ibb.co/N6sxyq5/Arkham-Mihail-Bila.jpg"
}, {
Name = "Generic 6",
URL = "https://i.ibb.co/B393zxv/Arkham-Tomasz-Jedruszek.jpg"
}, {
Name = "Generic 7",
URL = "https://i.ibb.co/2WQ2Vt6/Arkham-Tomasz-Jedruszek-2.jpg"
}, {
Name = "Generic 8",
URL = "https://i.ibb.co/R7pQ9Y7/Arkham-Tomasz-Jedruszek-3.jpg"
}, {
Name = "Miskatonic University",
URL = "https://i.ibb.co/ncz9xjP/Arkham-Miskatonic-University-Jokubas-Uogintas.jpg"
}, {
Name = "Northside",
URL = "https://i.ibb.co/sVWx1R3/Arkham-Northside-Jokubas-Uogintas.jpg"
}, {
Name = "Rivertown",
URL = "https://i.ibb.co/RyJnHmz/Arkham-Rivertown-Jokubas-Uogintas.jpg"
}, {
Name = "Southside",
URL = "https://i.ibb.co/5GW5jg5/Arkham-Southside-Jokubas-Uogintas.jpg"
}, {
Name = "Uptown",
URL = "https://i.ibb.co/YXjvkMn/Arkham-Uptown-Jokubas-Uogintas.jpg"
} },
["Side Scenarios"] = { {
Name = "Blob That Ate Everything 1",
URL = "https://i.ibb.co/JxFV4ZN/Blob-That-Ate-Everything-Emilio-Rodriguez.jpg"
}, {
Name = "Blob That Ate Everything 2",
URL = "https://i.ibb.co/qJzstWF/Blob-That-Ate-Everything-Emilio-Rodriguez.jpg"
}, {
Name = "Carnevale of Horrors 1",
URL = "https://i.ibb.co/ZchJBpz/Carnevale-of-Horrors.jpg"
}, {
Name = "Curse of the Rougarou 1",
URL = "https://i.ibb.co/Qf7Sr7P/Curse-of-the-Rougarou.jpg"
}, {
Name = "Curse of the Rougarou 2",
URL = "https://i.ibb.co/hs1Qjp0/Curse-of-the-Rougarou-Ann-Kovaleva.jpg"
}, {
Name = "Curse of the Rougarou 3",
URL = "https://i.ibb.co/BK7rmJ9/Curse-of-the-Rougarou-Karine-Villette.jpg"
}, {
Name = "Curse of the Rougarou 4",
URL = "https://i.ibb.co/ZxGTC1w/Curse-of-the-Rougarou-Lachlan-Page.jpg"
}, {
Name = "Curse of the Rougarou 5",
URL = "https://i.ibb.co/HgNXJhW/Curse-of-the-Rougarou-Vladimir-Manyukhin.jpg"
}, {
Name = "Guardians of the Abyss 1",
URL = "https://i.ibb.co/gD3R6cw/Guardians-of-the-Abyss-Jake-Murray.jpg"
}, {
Name = "Guardians of the Abyss 2",
URL = "https://i.ibb.co/jMHPcvz/Guardians-of-the-Abyss-Jose-Vega.jpg"
}, {
Name = "Guardians of the Abyss 3",
URL = "https://i.ibb.co/99pqXQP/Guardians-of-the-Abyss-Koke-Nunez.jpg"
}, {
Name = "Guardians of the Abyss 4",
URL = "https://i.ibb.co/QbMvjbx/Guardians-of-the-Abyss-Mike-Szabados.jpg"
}, {
Name = "Guardians of the Abyss 5",
URL = "https://i.ibb.co/zFDt9Q8/Guardians-of-the-Abyss-Nele-Diel.jpg"
}, {
Name = "Guardians of the Abyss 6",
URL = "https://i.ibb.co/Vpzptmt/Guardians-of-the-Abyss-Yujin-Choo.jpg"
}, {
Name = "Kingsport",
URL = "https://i.ibb.co/rbkk7ys/Kingsport-Tomasz-Jedruszek.jpg"
}, {
Name = "Labyrinths of Lunacy 1",
URL = "https://i.ibb.co/f17PMCC/Labyrinths-of-Lunacy-Cordelia-Wolf.jpg"
}, {
Name = "Labyrinths of Lunacy 2",
URL = "https://i.ibb.co/44DXfWw/Labyrinths-of-Lunacy-Richard-Wright.jpg"
}, {
Name = "Labyrinths of Lunacy 3",
URL = "https://i.ibb.co/jMQhs68/Labyrinths-of-Lunacy-Robert-Berg.jpg"
}, {
Name = "Murder at Excelsior Hotel 1",
URL = "https://i.ibb.co/5cQ6LvN/Murder-at-Excelsior-Hotel-Alistair-Mitchell.jpg"
}, {
Name = "Murder at Excelsior Hotel 2",
URL = "https://i.ibb.co/vBQRHNS/Murder-at-Excelsior-Hotel-Romain-Bayle.jpg"
}, {
Name = "War of the Outer Gods",
URL = "https://i.ibb.co/wLNGFTG/War-of-the-Outer-Gods-Joshua-Cairos.jpg"
} },
["The Path to Carcosa"] = { {
Name = "I - Curtain Call",
URL = "https://i.ibb.co/TcnKXJD/Carcosa-1-Curtain-Call-Mark-Molnar.jpg"
}, {
Name = "II - Last King 1",
URL = "https://i.ibb.co/JRQJKR8/Carcosa-2-Last-King-Cristi-Balanescu.jpg"
}, {
Name = "II - Last King 2",
URL = "https://i.ibb.co/NZzBwgv/Carcosa-2-Last-King-Cristi-Balanescu-2.jpg"
}, {
Name = "II - Last King 3",
URL = "https://i.ibb.co/x56ZHt7/Carcosa-2-Last-King-Wu-Mengjia.jpg"
}, {
Name = "III - Echoes of the Past",
URL = "https://i.ibb.co/R6gSm0D/Carcosa-3-Echoes-of-the-Past-Heather-Savage.jpg"
}, {
Name = "IV - Unspeakable Oath 1",
URL = "https://i.ibb.co/DzzDQQQ/Carcosa-4-Unspeakable-Oath.jpg"
}, {
Name = "IV - Unspeakable Oath 2",
URL = "https://i.ibb.co/9gqBzXr/Carcosa-4-Unspeakable-Oath-2-Mark-Molnar.jpg"
}, {
Name = "IV - Unspeakable Oath 3",
URL = "https://i.ibb.co/wWL73c9/Carcosa-4-Unspeakable-Oath-Paul-Fairbairn.jpg"
}, {
Name = "V - Phantom of Truth 1",
URL = "https://i.ibb.co/mzpz1Dd/Carcosa-5-Phantom-of-Truth-Lucas-Staniec.jpg"
}, {
Name = "V - Phantom of Truth 2",
URL = "https://i.ibb.co/Vp1wNbT/Carcosa-5-Phantom-of-Truth-Tomasz-Jedruszek.jpg"
}, {
Name = "VI - Pallid Mask 1",
URL = "https://i.ibb.co/Bf5LByY/Carcosa-6-Pallid-Mask-Greg-Bobrowski.jpg"
}, {
Name = "VI - Pallid Mask 2",
URL = "https://i.ibb.co/1v1J9Xx/Carcosa-6-Pallid-Mask-Rafal-Pyra.jpg"
}, {
Name = "VII - Black Star Rises 1",
URL = "https://i.ibb.co/TB451t7/Carcosa-7-Black-Star-Rises-Audric-Gatoux.jpg"
}, {
Name = "VII - Black Star Rises 2",
URL = "https://i.ibb.co/nC8Ncxx/Carcosa-7-Black-Star-Rises-Chris-Kintner.jpg"
}, {
Name = "VIII - Dim Carcosa 1",
URL = "https://i.ibb.co/QvS4y3D/Carcosa-8-Dim-Carcosa-Alexandr-Elichev.jpg"
}, {
Name = "VIII - Dim Carcosa 2",
URL = "https://i.ibb.co/hR95x7k/Carcosa-8-Dim-Carcosa-Yuri-Shepherd.jpg"
} },
["The Circle Undone"] = { {
Name = "0 - Prologue",
URL = "https://i.ibb.co/gm4C6yy/Circle-Undone-0-Prologue-Ted-Galaday.jpg"
}, {
Name = "I - Witching Hour",
URL = "https://i.ibb.co/kgJ34WS/Circle-Undone-1-Witching-Hour-Nele-Diel.jpg"
}, {
Name = "II - At Death's Doorstep 1",
URL = "https://i.ibb.co/qNWzH0Y/Circle-Undone-2-At-Death-039-s-Doorstep-Emilio-Rodriguez.jpg"
}, {
Name = "II - At Death's Doorstep 2",
URL = "https://i.ibb.co/T1zp1QN/Circle-Undone-2-At-Death-039-s-Doorstep-Emilio-Rodriguez-2.jpg"
}, {
Name = "II - At Death's Doorstep 3",
URL = "https://i.ibb.co/ZJfYZ1w/Circle-Undone-2-At-Death-039-s-Doorstep-Majid-Azim.jpg"
}, {
Name = "III - The Secret Name 1",
URL = "https://i.ibb.co/hsBw4JQ/Circle-Undone-3-Secret-Name-Jeff-Jumper.jpg"
}, {
Name = "III - The Secret Name 2",
URL = "https://i.ibb.co/MpcPXR5/Circle-Undone-3-Secret-Name-Pierre-Santamaria.jpg"
}, {
Name = "III - The Secret Name 3",
URL = "https://i.ibb.co/LQ8rdKs/Circle-Undone-3-The-Secret-Name-Greg-Bobrowski.jpg"
}, {
Name = "III - The Secret Name 4",
URL = "https://i.ibb.co/0D7LzxV/Circle-Undone-3-The-Secret-Name-Robert-Laskey.jpg"
}, {
Name = "IV - Wages of Sin 1",
URL = "https://i.ibb.co/fDMqH1C/Circle-Undone-4-Wages-of-Sin-Emilio-Rodriguez.jpg"
}, {
Name = "IV - Wages of Sin 2",
URL = "https://i.ibb.co/HDrKkZF/Circle-Undone-4-Wages-of-Sin-Emilio-Rodriguez-2.jpg"
}, {
Name = "IV - Wages of Sin 3",
URL = "https://i.ibb.co/vkpG8cM/Circle-Undone-4-Wages-of-Sin-Greg-Bobrowski.jpg"
}, {
Name = "IV - Wages of Sin 4",
URL = "https://i.ibb.co/CMj007q/Circle-Undone-4-Wages-of-Sin-Mateusz-Michalski.jpg"
}, {
Name = "IV - Wages of Sin 5",
URL = "https://i.ibb.co/sj1bS5x/Circle-Undone-4-Wages-of-Sin-Serge-Da-Silva-Dias.jpg"
}, {
Name = "V - For the Greater Good 1",
URL = "https://i.ibb.co/LDyqjbj/Circle-Undone-5-For-the-Greater-Good.jpg"
}, {
Name = "V - For the Greater Good 2",
URL = "https://i.ibb.co/pPzXNd1/Circle-Undone-5-For-the-Greater-Good-2.jpg"
}, {
Name = "V - For the Greater Good 3",
URL = "https://i.ibb.co/8rMLvJH/Circle-Undone-5-For-the-Greater-Good-Greg-Bobrowski.jpg"
}, {
Name = "V - For the Greater Good 4",
URL = "https://i.ibb.co/vj1q4Cm/Circle-Undone-5-For-the-Greater-Good-Robert-Laskey.jpg"
}, {
Name = "VI - Union and Disillusioned",
URL = "https://i.ibb.co/n7SD1tB/Circle-Undone-6-Union-amp-Disillusioned-Andreas-Rocha.jpg"
}, {
Name = "VII - In the Clutches of Chaos 1",
URL = "https://i.ibb.co/bFXBNh7/Circle-Undone-7-In-the-Clutches-of-Chaos.jpg"
}, {
Name = "VII - In the Clutches of Chaos 2",
URL = "https://i.ibb.co/m6DshNg/Circle-Undone-7-In-the-Clutches-of-Chaos-Alexandr-Elichev.jpg"
}, {
Name = "VII - In the Clutches of Chaos 3",
URL = "https://i.ibb.co/k2p4yfG/Circle-Undone-7-In-the-Clutches-of-Chaos-Jokubas-Uogintas.jpg"
}, {
Name = "VIII - Before the Black Throne 1",
URL = "https://i.ibb.co/9TPwvP6/Circle-Undone-8-Before-the-Black-Throne-Aaron-Luke-Wilson.jpg"
}, {
Name = "VIII - Before the Black Throne 2",
URL = "https://i.ibb.co/VNtgH4v/Circle-Undone-8-Before-the-Black-Throne-Greg-Bobrowski.jpg"
} },
["Side Scenarios (Fan-made)"] = { {
Name = "Consternation on the Constellation",
URL = "https://i.ibb.co/Tw2xBP1/Consternation-Constellation.jpg"
}, {
Name = "Symphony of Erich Zann",
URL = "https://i.ibb.co/SNr8tqN/Symphony-of-Erich-Zann-Hazel-Yingling.jpg"
} },
["Cyclopean Foundations (Fan-made)"] = { {
Name = "I - Lost Moorings 1",
URL = "https://i.ibb.co/DQ76z3c/Cyclopean-1-Lost-Moorings-Care-Line-Art.png"
}, {
Name = "I - Lost Moorings 2",
URL = "https://i.ibb.co/c6LJNfr/Cyclopean-1-Lost-Moorings-Jake-Murray.png"
}, {
Name = "II - Going Twice",
URL = "https://i.ibb.co/P6h3vbm/Cyclopean-2-Going-Twice-Quentin-Bouilloud.png"
}, {
Name = "III - Private Lives",
URL = "https://i.ibb.co/9qK9Fzd/Cyclopean-3-Private-Lives-Christian-Bravery.png"
}, {
Name = "IV - Crumbling Masonry 1",
URL = "https://i.ibb.co/pdrGK6p/Cyclopean-4-Crumbling-Masonry-Pete-Amachree.png"
}, {
Name = "IV - Crumbling Masonry 2",
URL = "https://i.ibb.co/5RFcGyP/Cyclopean-4-Crumbling-Masonry-Simon-Craghead.png"
}, {
Name = "V - Across Dreadful Waters",
URL = "https://i.ibb.co/3mYfFNB/Cyclopean-5-Across-Dreadful-Waters-Ev-Shipard.png"
}, {
Name = "VI - Blood From Stones",
URL = "https://i.ibb.co/ynmQNSB/Cyclopean-6-Blood-From-Stones-Marc-Simonetti.png"
}, {
Name = "VII - Pyroclastic Flow 1",
URL = "https://i.ibb.co/s1JDkFv/Cyclopean-7-Pyroclastic-Flow-Bastien-Grivet.png"
}, {
Name = "VII - Pyroclastic Flow 2",
URL = "https://i.ibb.co/qs8Sk2N/Cyclopean-7-Pyroclastic-Flow-Rachid-Lotf.png"
}, {
Name = "VIII - Tomb of Dead Dreams 1",
URL = "https://i.ibb.co/0MwX460/Cyclopean-8-Tomb-of-Dead-Dreams-Guillem-H-Pongiluppi.png"
}, {
Name = "VIII - Tomb of Dead Dreams 2",
URL = "https://i.ibb.co/mGnKNcy/Cyclopean-8-Tomb-of-Dead-Dreams-Richard-Benning.png"
}, {
Name = "VIII - Tomb of Dead Dreams 3",
URL = "https://i.ibb.co/vmBM8x2/Cyclopean-8-Tomb-of-Dead-Dreams-Walter-Brocca.png"
} },
["Dark Matter (Fan-made)"] = { {
Name = "I - Tatterdemalion 1",
URL = "https://i.ibb.co/DRMPGVt/Dark-Matter-1-Tatterdemalion-Andrey-Vozny.jpg"
}, {
Name = "I - Tatterdemalion 2",
URL = "https://i.ibb.co/1JzrrX2/Dark-Matter-1-Tatterdemalion-Brian-Taylor.jpg"
}, {
Name = "I - Tatterdemalion 3",
URL = "https://i.ibb.co/DzvvgGf/Dark-Matter-1-Tatterdemalion-John-Wallin-Liberto.jpg"
}, {
Name = "I - Tatterdemalion 4",
URL = "https://i.ibb.co/sQf85b8/Dark-Matter-1-Tatterdemalion-Paul-Pepera.jpg"
}, {
Name = "II - Electric Nightmares 1",
URL = "https://i.ibb.co/hLGVBt7/Dark-Matter-2-Electric-Nightmares-Dean-Lawrence.jpg"
}, {
Name = "II - Electric Nightmares 2",
URL = "https://i.ibb.co/cTKZQ61/Dark-Matter-2-Electric-Nightmares-Robert-Thoma.jpg"
}, {
Name = "IIIa - Lost Quantum",
URL = "https://i.ibb.co/6vyXv90/Dark-Matter-3-Lost-Quantum-Michael-Rajecki.jpg"
}, {
Name = "IIIb - In the Shadow of Earth 1",
URL = "https://i.ibb.co/DfbTKHP/Dark-Matter-4-In-the-Shadow-of-Earth-Jihoo-Kim.jpg"
}, {
Name = "IIIb - In the Shadow of Earth 2",
URL = "https://i.ibb.co/MCvPmCb/Dark-Matter-4-In-the-Shadow-of-Earth-N5-Luckybuuncle.jpg"
}, {
Name = "IIIc - Strange Moons",
URL = "https://i.ibb.co/b2d8qvg/Dark-Matter-5-Strange-Moons-Hongyu-Yin.jpg"
}, {
Name = "V - Fragment of Carcosa 1",
URL = "https://i.ibb.co/7WnTyYT/Dark-Matter-7-Fragment-of-Carcosa-Colin-Moore.jpg"
}, {
Name = "V - Fragment of Carcosa 2",
URL = "https://i.ibb.co/mG2Brrd/Dark-Matter-7-Fragments-of-Carcosa-Matthieu-Rebuffat.jpg"
}, {
Name = "VI - Starfall 1",
URL = "https://i.ibb.co/CJ3LKL7/Dark-Matter-8-Starfall-Vadim-Sadovski.jpg"
}, {
Name = "VI - Starfall 2",
URL = "https://i.ibb.co/Njd1FcB/Dark-Matter-8-Starfall-Vadim-Sadovski-2.jpg"
}, {
Name = "VI - Starfall 3",
URL = "https://i.ibb.co/W0Cx7bb/Dark-Matter-8-Starfall-Vadim-Sadovski-3.jpg"
} },
["The Dream Eaters"] = { {
Name = "I-A - Beyond the Gates of Sleep 1",
URL = "https://i.ibb.co/HGvnxdX/Dream-Eaters-1-A-Beyond-the-Gates-of-Sleep-Jason-Scheier.jpg"
}, {
Name = "I-A - Beyond the Gates of Sleep 2",
URL = "https://i.ibb.co/S6sCy7G/Dream-Eaters-1-A-Beyond-the-Gates-of-Sleep-Phoebe-Herring.jpg"
}, {
Name = "I-A - Beyond the Gates of Sleep 3",
URL = "https://i.ibb.co/kBfW9SC/Dream-Eaters-1-A-Beyond-the-Gates-of-Sleep-Regina-Kurnya.jpg"
}, {
Name = "I-B - Waking Nightmare",
URL = "https://i.ibb.co/sWsZCv8/Dream-Eaters-1-B-Waking-Nightmare-Josh-Gould-jpg.jpg"
}, {
Name = "II-A - Search for Kadath 1",
URL = "https://i.ibb.co/4SwzCD8/Dream-Eaters-2-A-Search-for-Kadath-Andrei-Khrutskii.jpg"
}, {
Name = "II-A - Search for Kadath 2",
URL = "https://i.ibb.co/WpZ4fMc/Dream-Eaters-2-A-Search-for-Kadath-Dan-Iorgulescu.jpg"
}, {
Name = "II-A - Search for Kadath 3",
URL = "https://i.ibb.co/jwsn0jf/Dream-Eaters-2-A-Search-for-Kadath-Diana-Tsareva.jpg"
}, {
Name = "II-A - Search for Kadath 4",
URL = "https://i.ibb.co/pd9vxmL/Dream-Eaters-2-A-Search-for-Kadath-Helen-Ilnytska.jpg"
}, {
Name = "II-A - Search for Kadath 5",
URL = "https://i.ibb.co/MZ7Qtcc/Dream-Eaters-2-A-Search-for-Kadath-Nele-Diel.jpg"
}, {
Name = "II-B - Thousand Shapes of Horror 1",
URL = "https://i.ibb.co/VJFQVYd/Dream-Eaters-2-B-Thousand-Shapes-of-Horror-Greg-Bobrowski.jpg"
}, {
Name = "II-B - Thousand Shapes of Horror 2",
URL = "https://i.ibb.co/T4Pqx0H/Dream-Eaters-2-B-Thousand-Shapes-of-Horror-Nele-Diel.jpg"
}, {
Name = "II-B - Thousand Shapes of Horror 3",
URL = "https://i.ibb.co/9s7M0PP/Dream-Eaters-2-B-Thousand-Shapes-of-Horror-Nele-Diel-2.jpg"
}, {
Name = "III-A - Dark Side of the Moon 1",
URL = "https://i.ibb.co/B2DfXLZ/Dream-Eaters-3-A-Dark-Side-of-the-Moon-Dabanli.jpg"
}, {
Name = "III-A - Dark Side of the Moon 2",
URL = "https://i.ibb.co/c27JRvv/Dream-Eaters-3-A-Dark-Side-of-the-Moon-Frej-Agelii.jpg"
}, {
Name = "III-B - Point of No Return 1",
URL = "https://i.ibb.co/dMGNB9Y/Dream-Eaters-3-B-Point-of-No-Return-Daria-Khlebnikova.jpg"
}, {
Name = "III-B - Point of No Return 2",
URL = "https://i.ibb.co/dpXxPmz/Dream-Eaters-3-B-Point-of-No-Return-Karine-Villette.jpg"
}, {
Name = "IV-A - Where the Gods Dwell",
URL = "https://i.ibb.co/v4nqw6G/Dream-Eaters-4-A-Where-the-Gods-Dwell-Samantha-Franco.jpg"
}, {
Name = "IV-B - Weaver of the Cosmos 1",
URL = "https://i.ibb.co/7btNBS1/Dream-Eaters-4-B-Weaver-of-the-Cosmos-Diana-Franco.jpg"
}, {
Name = "IV-B - Weaver of the Cosmos 2",
URL = "https://i.ibb.co/RY7y22b/Dream-Eaters-4-B-Weaver-of-the-Cosmos-Leanna-Crossan.jpg"
}, {
Name = "IV-B - Weaver of the Cosmos 3",
URL = "https://i.ibb.co/f8LBbFW/Dream-Eaters-4-B-Weaver-of-the-Cosmos-Nele-Diel.jpg"
} },
["The Dunwich Legacy"] = { {
Name = "I-A - Extracurricular Activity 1",
URL = "https://i.ibb.co/tDxX8KS/Dunwich-1-Extracurricular-Activity-Igor-Kirdeika.jpg"
}, {
Name = "I-A - Extracurricular Activity 2",
URL = "https://i.ibb.co/RQ6z0pj/Dunwich-1-Extracurricular-Activity-Joseph-Diaz.jpg"
}, {
Name = "I-A - Extracurricular Activity 3",
URL = "https://i.ibb.co/nnJdwL2/Dunwich-1-Extracurricular-Activity-Tomasz-Jedruszek.jpg"
}, {
Name = "I-B - House Always Wins 1",
URL = "https://i.ibb.co/8XPLdr9/Dunwich-2-House-Always-Wins-Jonny-Klein.jpg"
}, {
Name = "I-B - House Always Wins 2",
URL = "https://i.ibb.co/HtX95GK/Dunwich-2-House-Always-Wins-Robert-Laskey.jpg"
}, {
Name = "I-B - House Always Wins 3",
URL = "https://i.ibb.co/MCLP3Sz/Dunwich-2-House-Always-Wins-XX-l.jpg"
}, {
Name = "I-B - House Always Wins 4",
URL = "https://i.ibb.co/w7Pf5sd/Dunwich-2-House-Always-Wins-XX-l-2.jpg"
}, {
Name = "II - Miskatonic Museum 1",
URL = "https://i.ibb.co/x1Kf7qG/Dunwich-3-Miskatonic-Museum-Emre-Aktuna.jpg"
}, {
Name = "II - Miskatonic Museum 2",
URL = "https://i.ibb.co/yWXVPcN/Dunwich-3-Miskatonic-Museum-Richard-Wright.jpg"
}, {
Name = "III - Essex County Express",
URL = "https://i.ibb.co/602CMZb/Dunwich-4-Essex-County-Express-David-Alvarez.jpg"
}, {
Name = "IV - Blood on the Altar 1",
URL = "https://i.ibb.co/3CYHDhf/Dunwich-5-Blood-on-the-Altar.jpg"
}, {
Name = "IV - Blood on the Altar 2",
URL = "https://i.ibb.co/FbxcCY2/Dunwich-5-Blood-on-the-Altar-Chris-Ostrowski.jpg"
}, {
Name = "IV - Blood on the Altar 3",
URL = "https://i.ibb.co/sJf6YsZ/Dunwich-5-Blood-on-the-Altar-Lucas-Staniec.jpg"
}, {
Name = "IV - Blood on the Altar 4",
URL = "https://i.ibb.co/kBPNGBd/Dunwich-5-Blood-on-the-Altar-Mark-Molnar.jpg"
}, {
Name = "V - Undimensioned and Unseen 1",
URL = "https://i.ibb.co/QvfhjDv/Dunwich-6-Undimensioned-and-Unseen-Frej-Agelii.jpg"
}, {
Name = "V - Undimensioned and Unseen 2",
URL = "https://i.ibb.co/4VL9gSK/Dunwich-6-Undimensioned-and-Unseen-Lucas-Staniec.jpg"
}, {
Name = "V - Undimensioned and Unseen 3",
URL = "https://i.ibb.co/wBFsS8P/Dunwich-6-Undimensioned-and-Unseen-Michal-Teliga-jpg.jpg"
}, {
Name = "V - Undimensioned and Unseen 4",
URL = "https://i.ibb.co/wwGDcq6/Dunwich-6-Undimensioned-and-Unseen-Tomasz-Jedruszek.jpg"
}, {
Name = "VI - Where Doom Awaits 1",
URL = "https://i.ibb.co/TvMwqj4/Dunwich-7-Where-Doom-Awaits.jpg"
}, {
Name = "VI - Where Doom Awaits 2",
URL = "https://i.ibb.co/S6cSLH9/Dunwich-7-Where-Doom-Awaits-3.jpg"
}, {
Name = "VI - Where Doom Awaits 3",
URL = "https://i.ibb.co/khBX32g/Dunwich-7-Where-Doom-Awaits-4.jpg"
}, {
Name = "VI - Where Doom Awaits 4",
URL = "https://i.ibb.co/S0hcwN8/Dunwich-7-Where-Doom-Awaits-5.jpg"
}, {
Name = "VI - Where Doom Awaits 5",
URL = "https://i.ibb.co/Lxv1Bjp/Dunwich-7-Where-Doom-Awaits-Luca-Trentin.jpg"
}, {
Name = "VII - Lost in Time and Space 1",
URL = "https://i.ibb.co/rtTpbDx/Dunwich-8-Lost-in-Time-amp-Space.jpg"
}, {
Name = "VII - Lost in Time and Space 2",
URL = "https://i.ibb.co/dBXP0GL/Dunwich-8-Lost-in-Time-amp-Space-Chris-Ostrowski.jpg"
}, {
Name = "VII - Lost in Time and Space 3",
URL = "https://i.ibb.co/0XcnxFD/Dunwich-8-Lost-in-Time-amp-Space-Lino-Drieghe.jpg"
} },
["Edge of the Earth"] = { {
Name = "I - Ice and Death 1",
URL = "https://i.ibb.co/FWZMWtW/Edge-1-Ice-and-Death-David-Frasheski.png"
}, {
Name = "I - Ice and Death 2",
URL = "https://i.ibb.co/QDGV0jQ/Edge-1-Ice-and-Death-Felix-Riano.png"
}, {
Name = "I - Ice and Death 3",
URL = "https://i.ibb.co/hFJQM8v/Edge-1-Ice-and-Death-Mike-Gizienski.png"
}, {
Name = "??? - Fatal Mirage",
URL = "https://i.ibb.co/KzwvjJN/Edge-2-Fatal-Mirage-David-Frasheski.png"
}, {
Name = "II - Forbidden Peaks 1",
URL = "https://i.ibb.co/C2SLByt/Edge-2-Forbidden-Peaks-David-Frasheski-2.png"
}, {
Name = "II - Forbidden Peaks 2",
URL = "https://i.ibb.co/0cGkkBL/Edge-3-Forbidden-Peaks-David-Frasheski.png"
}, {
Name = "III - City of Elder Things 1",
URL = "https://i.ibb.co/FbpgBD3/Edge-4-City-Francois-Baranger.png"
}, {
Name = "III - City of Elder Things 2",
URL = "https://i.ibb.co/ncRvHr3/Edge-4-City-Francois-Baranger-2.png"
}, {
Name = "IV - Heart of Madness 1",
URL = "https://i.ibb.co/rk0qR4z/Edge-5-Heart-of-Madness-Karol-Sollich.png"
}, {
Name = "IV - Heart of Madness 2",
URL = "https://i.ibb.co/NVFjx6N/Edge-5-Heart-of-Madness-Miguel-Coimbra.png"
} },
["The Forgotten Age"] = { {
Name = "I - Untamed Wilds 1",
URL = "https://i.ibb.co/BLhwCG1/Forgotten-Age-1-Untamed-Wilds-David-Frasheski.jpg"
}, {
Name = "I - Untamed Wilds 2",
URL = "https://i.ibb.co/SnJfsNy/Forgotten-Age-1-Untamed-Wilds-David-Frasheski-2.jpg"
}, {
Name = "I - Untamed Wilds 3",
URL = "https://i.ibb.co/kcx1tvp/Forgotten-Age-1-Untamed-Wilds-Ethan-Patrick-Harris.jpg"
}, {
Name = "I - Untamed Wilds 4",
URL = "https://i.ibb.co/HPbJwXk/Forgotten-Age-1-Untamed-Wilds-Lucas-Staniec.jpg"
}, {
Name = "I - Untamed Wilds 5",
URL = "https://i.ibb.co/bbq1ZrK/Forgotten-Age-1-Untamed-Wilds-Nele-Diel.jpg"
}, {
Name = "II - Doom of Etzli 1",
URL = "https://i.ibb.co/Pw4by4q/Forgotten-Age-2-Doom-of-Eztli-Cristi-Balanescu.jpg"
}, {
Name = "II - Doom of Etzli 2",
URL = "https://i.ibb.co/xqW6cXR/Forgotten-Age-2-Doom-of-Eztli-Greg-Bobrowski.jpg"
}, {
Name = "II - Doom of Etzli 3",
URL = "https://i.ibb.co/kgsC3pb/Forgotten-Age-2-Doom-of-Eztli-Nele-Diel.jpg"
}, {
Name = "III - Threads of Fate",
URL = "https://i.ibb.co/Bn0Pjng/Forgotten-Age-3-Threads-of-Fate-Jokubas-Uogintas.jpg"
}, {
Name = "IV - Boundary Beyond 1",
URL = "https://i.ibb.co/yPZ9v2X/Forgotten-Age-4-Boundary-Beyond-Greg-Bobrowski-2-jpg.jpg"
}, {
Name = "IV - Boundary Beyond 2",
URL = "https://i.ibb.co/vm0JgFs/Forgotten-Age-4-Boundary-Beyond-Greg-Bobrowski-jpg.jpg"
}, {
Name = "IV - Boundary Beyond 3",
URL = "https://i.ibb.co/D1rh9Ry/Forgotten-Age-4-Boundary-Beyond-Nele-Diel.jpg"
}, {
Name = "V - Heart of the Elders I-1",
URL = "https://i.ibb.co/jzKvv6P/Forgotten-Age-5-Heart-of-the-Elders-I-Lucas-Staniec.jpg"
}, {
Name = "V - Heart of the Elders I-2",
URL = "https://i.ibb.co/mR79MX4/Forgotten-Age-5-Heart-of-the-Elders-I-Lucas-Staniec-2.jpg"
}, {
Name = "V - Heart of the Elders II",
URL = "https://i.ibb.co/pQSbL0t/Forgotten-Age-5-Heart-of-the-Elders-II-Nele-Diel.jpg"
}, {
Name = "VI - City of Archives 1",
URL = "https://i.ibb.co/f04DSPb/Forgotten-Age-6-City-of-Archives.jpg"
}, {
Name = "VI - City of Archives 2",
URL = "https://i.ibb.co/WsSBrYj/Forgotten-Age-6-City-of-Archives-2.jpg"
}, {
Name = "VI - City of Archives 3",
URL = "https://i.ibb.co/qdPbSZ8/Forgotten-Age-6-City-of-Archives-Chris-Ostrowski.jpg"
}, {
Name = "VII - Depths of Yoth 1",
URL = "https://i.ibb.co/dbLKgGv/Forgotten-Age-7-Depths-of-Yoth-Diego-Arbetta.jpg"
}, {
Name = "VII - Depths of Yoth 2",
URL = "https://i.ibb.co/NW7Wp98/Forgotten-Age-7-Depths-of-Yoth-Greg-Bobrowski.jpg"
}, {
Name = "VII - Depths of Yoth 3",
URL = "https://i.ibb.co/257zr7c/Forgotten-Age-7-Depths-of-Yoth-Greg-Bobrowski-2-jpg.jpg"
}, {
Name = "VIII - Shattered Aeons 1",
URL = "https://i.ibb.co/KwnWTGR/Forgotten-Age-8-Shattered-Aeons.jpg"
}, {
Name = "VIII - Shattered Aeons 2",
URL = "https://i.ibb.co/b7kVd4F/Forgotten-Age-8-Shattered-Aeons-Alexandr-Elichev.jpg"
} },
["The Innsmouth Conspiracy"] = { {
Name = "I - Pit of Despair 1",
URL = "https://i.ibb.co/2sc0F61/Innsmouth-1-Pit-of-Despair-Amanda-Castrillo.jpg"
}, {
Name = "I - Pit of Despair 2",
URL = "https://i.ibb.co/Nj9JLBQ/Innsmouth-1-Pit-of-Despair-J-Mill.jpg"
}, {
Name = "II - Vanishing of Elina Harper 1",
URL = "https://i.ibb.co/2j74cVn/Innsmouth-2-Vanishing-of-Elina-Harper-Konstantin-Vohwinkel.jpg"
}, {
Name = "II - Vanishing of Elina Harper 2",
URL = "https://i.ibb.co/r2VqHSn/Innsmouth-2-Vanishing-of-Elina-Harper-Mihail-Bila.jpg"
}, {
Name = "II - Vanishing of Elina Harper 3",
URL = "https://i.ibb.co/hFQMm7N/Innsmouth-2-Vanishing-of-Elina-Harper-Richard-Wright.jpg"
}, {
Name = "II - Vanishing of Elina Harper 4",
URL = "https://i.ibb.co/2nZKGN6/Innsmouth-2-Vanishing-of-Elina-Harper-Tomasz-Jedruszek-1.jpg"
}, {
Name = "II - Vanishing of Elina Harper 5",
URL = "https://i.ibb.co/WxLpKrM/Innsmouth-2-Vanishing-of-Elina-Harper-Tomasz-Jedruszek-2.jpg"
}, {
Name = "III - In Too Deep 1",
URL = "https://i.ibb.co/SsQ3my4/Innsmouth-3-In-Too-Deep-David-Frasheski.jpg"
}, {
Name = "III - In Too Deep 2",
URL = "https://i.ibb.co/jgQ8zQN/Innsmouth-3-In-Too-Deep-Klaudia-Bezak.jpg"
}, {
Name = "III - In Too Deep 3",
URL = "https://i.ibb.co/VVgtNM1/Innsmouth-3-In-Too-Deep-Patrik-Antonescu.jpg"
}, {
Name = "IV - Devil Reef 1",
URL = "https://i.ibb.co/Jrf6CJ0/Innsmouth-4-Devil-Reef-Ludovic-Sanson.jpg"
}, {
Name = "IV - Devil Reef 2",
URL = "https://i.ibb.co/4jfwDZR/Innsmouth-4-Devil-Reef-Marc-Stewart.jpg"
}, {
Name = "V - Horror in High Gear 1",
URL = "https://i.ibb.co/vqYJjYJ/Innsmouth-5-Horror-in-High-Gear-Greg-Bobrowski.jpg"
}, {
Name = "V - Horror in High Gear 2",
URL = "https://i.ibb.co/yYrzbYS/Innsmouth-5-Horror-in-High-Gear-Greg-Bobrowski-2.jpg"
}, {
Name = "V - Horror in High Gear 3",
URL = "https://i.ibb.co/fpKWhGY/Innsmouth-5-Horror-in-High-Gear-Guillem-H-Pongiluppi.jpg"
}, {
Name = "V - Horror in High Gear 4",
URL = "https://i.ibb.co/YkLFy7y/Innsmouth-5-Horror-in-High-Gear-Rostyslav-Zagornov.jpg"
}, {
Name = "VI - Light in the Fog 1",
URL = "https://i.ibb.co/v1rhgqJ/Innsmouth-6-Light-in-the-Fog-Florian-Aupetit.jpg"
}, {
Name = "VI - Light in the Fog 2",
URL = "https://i.ibb.co/Db2pRd6/Innsmouth-6-Light-in-the-Fog-JB-Caillet.jpg"
}, {
Name = "VII - Lair of Dagon 1",
URL = "https://i.ibb.co/QPwzQL5/Innsmouth-7-Lair-of-Dagon-Daria-Khlebnikova.jpg"
}, {
Name = "VII - Lair of Dagon 2",
URL = "https://i.ibb.co/MZBpCbs/Innsmouth-7-Lair-of-Dagon-Guillem-H-Pongiluppi.jpg"
}, {
Name = "VIII - Into the Maelstrom 1",
URL = "https://i.ibb.co/fkSXDgs/Innsmouth-8-Into-the-Maelstrom-Dimitri-Bielak.jpg"
}, {
Name = "VIII - Into the Maelstrom 2",
URL = "https://i.ibb.co/k56Dn9q/Innsmouth-8-Into-the-Maelstrom-Mateusz-Michalski.jpg"
} },
["Night of the Zealot"] = { {
Name = "I - The Gathering 1",
URL = "https://i.ibb.co/6NWqg1K/Zealot-Gathering.jpg"
}, {
Name = "III - Devourer Below 1",
URL = "https://i.ibb.co/x5QFzrx/Zealot-3-Devourer-Below-Helen-Castelow.png"
}, {
Name = "III - Devourer Below 2",
URL = "https://i.ibb.co/6r6LFGz/Zealot-3-Devourer-Below-Sarah-Miller.png"
} }
}
local verticalOffset = 0.5
local buttonParameters = {}
buttonParameters.function_owner = self
buttonParameters.width = 1200
buttonParameters.height = 300
buttonParameters.position = { x = -0.2, y = 0.06, z = -verticalOffset }
local CycleIndex = 1
local CycleList = {
"Arkham Locations",
"Night of the Zealot",
"The Dunwich Legacy",
"The Path to Carcosa",
"The Forgotten Age",
"The Circle Undone",
"The Dream Eaters",
"The Innsmouth Conspiracy",
"Edge of the Earth",
"Side Scenarios",
"Cyclopean Foundations (Fan-made)",
"Dark Matter (Fan-made)",
"Side Scenarios (Fan-made)"
}
-- save the index of selected cycle and table with spawnData
function onSave() return JSON.encode({ CycleIndex, spawnData }) end
function onLoad(savedData)
if savedData == nil then
print("Error: Saved Data was not found.")
else
local loadedData = JSON.decode(savedData)
CycleIndex = loadedData[1]
spawnData = loadedData[2]
end
--spawnData = getObjectFromGUID("f4a462").getData()
-- index 0: cycle selection button
buttonParameters.click_function = "selectCycle"
buttonParameters.tooltip = "Select a cycle"
buttonParameters.label = CycleList[CycleIndex]
self.createButton(buttonParameters)
-- index 1: display button
buttonParameters.click_function = "showImages"
buttonParameters.tooltip = "Right-Click to remove displayed tiles"
buttonParameters.label = "Display available images"
buttonParameters.position.z = buttonParameters.position.z + 2 * verticalOffset
self.createButton(buttonParameters)
end
-- open option dialog to select cycle
function selectCycle(_, color)
Player[color].showOptionsDialog("Select cycle:", CycleList, CycleIndex, optionCallback)
end
-- update CycleIndex based on selection in the option dialog
function optionCallback(_, optionIndex)
CycleIndex = optionIndex
self.editButton({
index = 0,
label = CycleList[CycleIndex]
})
end
-- triggered by clicking the "display" button
function showImages(_, _, isRightClick)
removeImages()
-- don't display new tiles when right-clicked
if isRightClick then return end
local pos = self.getPosition()
local offset = 4.5
pos.x = pos.x - offset
-- loop over respective entries in DATA
for i, entry in ipairs(DATA[CycleList[CycleIndex]]) do
spawnData.CustomImage.ImageURL = entry.URL
spawnData.Nickname = entry.Name
spawnObjectData({
data = spawnData,
position = pos,
rotation = self.getRotation(),
scale = { 1, 1, 1 }
})
-- display 10 tiles in a row, move then to next row
if i % 10 == 0 then
pos.x = pos.x - offset
pos.z = self.getPosition().z
else
pos.z = pos.z - offset
end
end
end
-- remove already laid out image tiles by tag
function removeImages()
for _, tile in ipairs(getObjectsWithTag("ImageSwapperTile")) do
tile.destruct()
end
end