Merge branch 'main' into importer-exporter
This commit is contained in:
commit
937cf72b8c
@ -19,7 +19,7 @@
|
|||||||
},
|
},
|
||||||
"ImageScalar": 1,
|
"ImageScalar": 1,
|
||||||
"ImageSecondaryURL": "",
|
"ImageSecondaryURL": "",
|
||||||
"ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2467486908540932616/8370C75D2789E1332836D8C2A31D32542153DE85/",
|
"ImageURL": "https://steamusercontent-a.akamaihd.net/ugc/2503529021846579660/223F10EFA8B08AB25EC22181C3371161B5301F08/",
|
||||||
"WidthScale": 0
|
"WidthScale": 0
|
||||||
},
|
},
|
||||||
"Description": "Press a numpad key to spawn the indicated token.",
|
"Description": "Press a numpad key to spawn the indicated token.",
|
||||||
|
@ -1,169 +1,24 @@
|
|||||||
-- data for difficulty selector scripts to set up chaos bag
|
-- data for difficulty selector scripts to set up chaos bag
|
||||||
modeData = {
|
modeData = {
|
||||||
-----------------The Side Missions
|
|
||||||
--official
|
|
||||||
['Curse of the Rougarou'] = {
|
|
||||||
normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Carnevale of Horrors'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Labyrinths of Lunacy'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0','m1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Guardians of the Abyss'] = {
|
|
||||||
normal = { token = { 'p1', 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['Excelsior'] = {
|
|
||||||
normal = { token = { 'p1', '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['Read or Die'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['All or Nothing'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Meowlathotep'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['WotOG'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'skull', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'skull', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'skull', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Bad Blood'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Machinations'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', 'p1', '0', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Red Tide'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['FaF'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
|
|
||||||
--fan-made
|
--fan-made
|
||||||
['Carnevale of Spiders'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Nephew Calls'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Outsider'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Stranger Things'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Winter Winds'] = {
|
['Winter Winds'] = {
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'skull', 'cultist', 'red', 'blue' } },
|
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'skull', 'cultist', 'red', 'blue' } },
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'cultist', 'red', 'blue' } },
|
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'cultist', 'red', 'blue' } },
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'cultist', 'red', 'blue' } },
|
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'cultist', 'red', 'blue' } },
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'cultist', 'red', 'blue' } }
|
expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'cultist', 'red', 'blue' } }
|
||||||
},
|
},
|
||||||
['The Festival'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Forbidding Desert'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Happys Funhouse'] = {
|
|
||||||
normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm5', 'm7', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Knightfall'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'cultist', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Last Call at Roxies'] = {
|
|
||||||
easy = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'elder', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Limens of Belief'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Blood Spilled in Salem'] = {
|
|
||||||
normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Bread and Circuses'] = {
|
['Bread and Circuses'] = {
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
||||||
},
|
},
|
||||||
['Bridge of Sighs'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Collector'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Colour out of Space'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Curse of Amultep'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Dying Star'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'blue', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'blue', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Against the Wendigo'] = {
|
['Against the Wendigo'] = {
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm7', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } }
|
||||||
},
|
},
|
||||||
['The Pensher Wyrm'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Approaching Storm'] = {
|
['Approaching Storm'] = {
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
||||||
@ -176,56 +31,16 @@ modeData = {
|
|||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
expert = { token = { '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
||||||
},
|
},
|
||||||
['London Set 1'] = {
|
|
||||||
easy = { token = { 'p2', 'p1', '0', '0', '0', 'm1', 'm2', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm2', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm2', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['London Set 2'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'tablet', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'elder', 'tablet', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['London Set 3'] = {
|
|
||||||
normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['Delta Green'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['Jennys Choice'] = {
|
|
||||||
easy = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4','skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm5', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['The Blob'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['The Initiation'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'elder', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm2', 'm2', 'm3', 'm5', 'skull', 'skull', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { 'p1', '0', '0', 'm1', 'm2', 'm3', 'm3', 'm4', 'm6', 'skull', 'skull', 'elder', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm6', 'm8', 'skull', 'skull', 'elder', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Consternation'] = {
|
['Consternation'] = {
|
||||||
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'red', 'blue' } },
|
normal = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'red', 'blue' } },
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'red', 'blue' } },
|
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'm4', 'm5', 'm6', 'm7', 'skull', 'skull', 'skull', 'red', 'blue' } },
|
||||||
},
|
},
|
||||||
['Of Sphinx'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'elder', 'cultist', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm3', 'm4', 'm5', 'skull', 'elder', 'cultist', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'elder', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Ordis'] = {
|
['Ordis'] = {
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } },
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } }
|
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'elder', 'cultist', 'tablet', 'red', 'blue' } }
|
||||||
},
|
},
|
||||||
['Darkness Falls'] = {
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['War of the Worlds'] = {
|
['War of the Worlds'] = {
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'elder', 'red', 'blue' } },
|
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'elder', 'red', 'blue' } },
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'elder', 'red', 'blue' } },
|
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'elder', 'red', 'blue' } },
|
||||||
@ -267,27 +82,6 @@ modeData = {
|
|||||||
['Sleepy Hollow'] = {
|
['Sleepy Hollow'] = {
|
||||||
normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
normal = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
||||||
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
hard = { token = { 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
||||||
},
|
|
||||||
['Flesh'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm3', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', 'm1', 'm1', 'm2', 'm3', 'm3', 'm4', 'm4', 'm6', 'skull', 'skull', 'cultist', 'tablet', 'tablet', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['Dark Matter'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'cultist', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'cultist', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'cultist', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'cultist', 'red', 'blue' } }
|
|
||||||
},
|
|
||||||
['Dont Starve'] = {
|
|
||||||
normal = { token = { 'p1', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm5', 'm7', 'skull', 'skull', 'cultist', 'tablet', 'elder', 'red', 'blue' } },
|
|
||||||
},
|
|
||||||
['XXXX'] = {
|
|
||||||
easy = { token = { 'p1', 'p1', '0', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
normal = { token = { 'p1', '0', '0', 'm1', 'm1', 'm1', 'm2', 'm2', 'm3', 'm4', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
hard = { token = { '0', '0', '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm5', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } },
|
|
||||||
expert = { token = { '0', 'm1', 'm1', 'm2', 'm2', 'm3', 'm3', 'm4', 'm4', 'm5', 'm6', 'm8', 'skull', 'skull', 'cultist', 'tablet', 'red', 'blue' } }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -449,7 +449,7 @@ function switchSeat(playerColor, direction)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- swap color
|
-- swap color
|
||||||
navigationOverlayApi.loadCamera(Player[playerColor], usedColors[index])
|
navigationOverlayApi.loadCamera(Player[playerColor], _, usedColors[index])
|
||||||
end
|
end
|
||||||
|
|
||||||
function takeClueFromLocationWhite(_, hoveredObject)
|
function takeClueFromLocationWhite(_, hoveredObject)
|
||||||
|
@ -42,8 +42,9 @@ local hideTitleSplashWaitFunctionId = nil
|
|||||||
-- online functionality related variables
|
-- online functionality related variables
|
||||||
local MOD_VERSION = "4.0.0"
|
local MOD_VERSION = "4.0.0"
|
||||||
local SOURCE_REPO = "https://github.com/Chr1Z93/SCED-downloads/releases/latest/download/"
|
local SOURCE_REPO = "https://github.com/Chr1Z93/SCED-downloads/releases/latest/download/"
|
||||||
local library, requestObj, modMeta
|
local library, requestObj, modMeta, searchFilter, authorFilter
|
||||||
local acknowledgedUpgradeVersions = {}
|
local acknowledgedUpgradeVersions = {}
|
||||||
|
local authorList = {}
|
||||||
local contentToShow = "campaign"
|
local contentToShow = "campaign"
|
||||||
local currentListItem = 1
|
local currentListItem = 1
|
||||||
local tabIdTable = {
|
local tabIdTable = {
|
||||||
@ -959,6 +960,54 @@ end
|
|||||||
-- Content Importing and XML functions
|
-- Content Importing and XML functions
|
||||||
---------------------------------------------------------
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
-- callback function for the search field in the download menu
|
||||||
|
function onSearchValueSubmit(_, value)
|
||||||
|
-- this event seems to be called 5x at once, so we use this flag to just execute it once
|
||||||
|
if ignoreSubmit then return end
|
||||||
|
ignoreSubmit = true
|
||||||
|
|
||||||
|
-- store input value in global var
|
||||||
|
if value == "" then
|
||||||
|
searchFilter = nil
|
||||||
|
else
|
||||||
|
searchFilter = value
|
||||||
|
end
|
||||||
|
|
||||||
|
-- update XML so that the settings persists
|
||||||
|
UI.setAttribute("searchField", "text", value)
|
||||||
|
|
||||||
|
-- turn off flag after 0.1s
|
||||||
|
Wait.time(function() ignoreSubmit = false end, 0.1)
|
||||||
|
|
||||||
|
-- update list (including new filter setting)
|
||||||
|
updateDownloadItemList(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- callback function for the "author" dropdown in the download menu
|
||||||
|
function onAuthorFilterChanged(_, value)
|
||||||
|
-- store input value in global var
|
||||||
|
if value == "All authors" then
|
||||||
|
authorFilter = nil
|
||||||
|
else
|
||||||
|
authorFilter = value
|
||||||
|
end
|
||||||
|
|
||||||
|
-- update XML so that the settings persists
|
||||||
|
UI.setAttribute("authorDropdown", "value", returnAuthorId(value))
|
||||||
|
|
||||||
|
-- update list (including new filter setting)
|
||||||
|
updateDownloadItemList(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- helper function to get the ID of the dropdown selection
|
||||||
|
function returnAuthorId(name)
|
||||||
|
for index, optionName in ipairs(authorList) do
|
||||||
|
if optionName == name then
|
||||||
|
return index
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- forwards the requested content type to the update function and sets highlight to clicked tab
|
-- forwards the requested content type to the update function and sets highlight to clicked tab
|
||||||
---@param tabId string Id of the clicked tab
|
---@param tabId string Id of the clicked tab
|
||||||
function onClick_tab(_, _, tabId)
|
function onClick_tab(_, _, tabId)
|
||||||
@ -971,6 +1020,12 @@ function onClick_tab(_, _, tabId)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
currentListItem = 1
|
currentListItem = 1
|
||||||
|
|
||||||
|
-- reset filters
|
||||||
|
authorFilter, searchFilter = nil, nil
|
||||||
|
UI.setAttribute("searchField", "text", "")
|
||||||
|
UI.setAttribute("authorDropdown", "value", 0)
|
||||||
|
|
||||||
updateDownloadItemList()
|
updateDownloadItemList()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1334,32 +1389,60 @@ function formatLibrary(jsonResponse)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- updates the window content to the requested content
|
-- updates the window content to the requested content
|
||||||
function updateDownloadItemList()
|
---@param skipAuthorUpdate? boolean If true, skips the update for the author dropdown
|
||||||
|
function updateDownloadItemList(skipAuthorUpdate)
|
||||||
if not library then return end
|
if not library then return end
|
||||||
|
|
||||||
-- addition of list items according to library file
|
-- addition of list items according to library file
|
||||||
local globalXml = UI.getXmlTable()
|
local globalXml = UI.getXmlTable()
|
||||||
local contentList = getXmlTableElementById(globalXml, 'contentList')
|
local contentList = getXmlTableElementById(globalXml, 'contentList')
|
||||||
|
|
||||||
|
-- reset the list of authors unless skipping
|
||||||
|
if not skipAuthorUpdate then
|
||||||
|
authorList = {}
|
||||||
|
end
|
||||||
|
|
||||||
contentList.children = {}
|
contentList.children = {}
|
||||||
for i, v in ipairs(library[contentToShow]) do
|
for i, v in ipairs(library[contentToShow]) do
|
||||||
table.insert(contentList.children,
|
-- if there's a filter, apply it (both for name and author)
|
||||||
{
|
if (searchFilter == nil or string.contains(string.lower(v.name), searchFilter)) and
|
||||||
tag = "Panel",
|
(authorFilter == nil or v.author == authorFilter) then
|
||||||
attributes = { id = "panel" .. i },
|
|
||||||
children = {
|
-- start collecting authors unless skipping
|
||||||
tag = 'Text',
|
if not skipAuthorUpdate then
|
||||||
value = v.name,
|
table.insert(authorList, v.author)
|
||||||
attributes = {
|
end
|
||||||
id = contentToShow .. "_" .. i,
|
|
||||||
onClick = 'onClick_select',
|
table.insert(contentList.children,
|
||||||
alignment = 'MiddleLeft'
|
{
|
||||||
|
tag = "Panel",
|
||||||
|
attributes = { id = "panel" .. i },
|
||||||
|
children = {
|
||||||
|
tag = 'Text',
|
||||||
|
value = v.name,
|
||||||
|
attributes = {
|
||||||
|
id = contentToShow .. "_" .. i,
|
||||||
|
onClick = 'onClick_select',
|
||||||
|
alignment = 'MiddleLeft'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
})
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
contentList.attributes.height = #contentList.children * 27
|
contentList.attributes.height = #contentList.children * 27
|
||||||
|
|
||||||
|
-- populate the author dropdown with options unless skipping
|
||||||
|
if not skipAuthorUpdate then
|
||||||
|
authorList = removeDuplicatesAndSort(authorList)
|
||||||
|
|
||||||
|
local authorDropdown = getXmlTableElementById(globalXml, 'authorDropdown')
|
||||||
|
authorDropdown.children = { { tag = "Option", value = "All authors" } }
|
||||||
|
for _, author in ipairs(authorList) do
|
||||||
|
table.insert(authorDropdown.children, { tag = "Option", value = author })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
updateGlobalXml(globalXml)
|
updateGlobalXml(globalXml)
|
||||||
|
|
||||||
-- select the first item
|
-- select the first item
|
||||||
@ -2136,8 +2219,8 @@ function TokenManager.spawnMultipleTokens(card, tokenType, tokenCount, shiftDown
|
|||||||
local matColor = playermatApi.getMatColorByPosition(card.getPosition())
|
local matColor = playermatApi.getMatColorByPosition(card.getPosition())
|
||||||
local activeInvestigatorData = playermatApi.getActiveInvestigatorData(matColor)
|
local activeInvestigatorData = playermatApi.getActiveInvestigatorData(matColor)
|
||||||
callbackName = "updateUniversalActionAbilityToken"
|
callbackName = "updateUniversalActionAbilityToken"
|
||||||
callbackParams = { class = activeInvestigatorData.class, symbol = subType or activeInvestigatorData.class}
|
callbackParams = { class = activeInvestigatorData.class, symbol = subType or activeInvestigatorData.class }
|
||||||
|
|
||||||
if temporary then
|
if temporary then
|
||||||
callbackParams.addTag = "Temporary"
|
callbackParams.addTag = "Temporary"
|
||||||
end
|
end
|
||||||
@ -2580,7 +2663,7 @@ end
|
|||||||
function updateUniversalActionAbilityToken(obj, params)
|
function updateUniversalActionAbilityToken(obj, params)
|
||||||
obj.call("updateClassAndSymbol", params)
|
obj.call("updateClassAndSymbol", params)
|
||||||
if params.addTag then
|
if params.addTag then
|
||||||
obj.addTag(params.addTag)
|
obj.call("addTemporaryStatus")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -2656,3 +2739,19 @@ function deepCopy(data)
|
|||||||
end
|
end
|
||||||
return copiedList
|
return copiedList
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function removeDuplicatesAndSort(t)
|
||||||
|
local seen = {}
|
||||||
|
local result = {}
|
||||||
|
|
||||||
|
for _, value in ipairs(t) do
|
||||||
|
if not seen[value] then
|
||||||
|
seen[value] = true
|
||||||
|
table.insert(result, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
table.sort(result)
|
||||||
|
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
@ -38,11 +38,13 @@ do
|
|||||||
|
|
||||||
-- loads the specified camera for a player
|
-- loads the specified camera for a player
|
||||||
---@param player tts__Player Player whose camera should be moved
|
---@param player tts__Player Player whose camera should be moved
|
||||||
---@param camera number|string If number: Index of the camera view to load | If string: Color of the playermat to swap to
|
---@param index? number Index of the camera view to load
|
||||||
NavigationOverlayApi.loadCamera = function(player, camera)
|
---@param matColor? string Color of the playermat to swap to
|
||||||
|
NavigationOverlayApi.loadCamera = function(player, index, matColor)
|
||||||
getNOHandler().call("loadCameraFromApi", {
|
getNOHandler().call("loadCameraFromApi", {
|
||||||
player = player,
|
player = player,
|
||||||
camera = camera
|
index = index,
|
||||||
|
matColor = matColor
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
local guidReferenceApi = require("core/GUIDReferenceApi")
|
local guidReferenceApi = require("core/GUIDReferenceApi")
|
||||||
local playermatApi = require("playermat/PlayermatApi")
|
local playermatApi = require("playermat/PlayermatApi")
|
||||||
|
|
||||||
fullButtonData = {
|
fullButtonData = {
|
||||||
{ id = "1", width = "84", height = "33", offset = "1 2" }, -- 1. Act/Agenda
|
{ id = "1", width = "84", height = "33", offset = "1 2" }, -- 1. Act/Agenda
|
||||||
{ id = "2", width = "78", height = "69", offset = "1 -62" }, -- 2. Map
|
{ id = "2", width = "78", height = "69", offset = "1 -62" }, -- 2. Map
|
||||||
{ id = "3", width = "70", height = "36", offset = "-38 -126" }, -- 3. White
|
{ id = "3", width = "70", height = "36", offset = "-38 -126" }, -- 3. White
|
||||||
@ -25,7 +25,7 @@ fullButtonData = {
|
|||||||
{ id = "21", width = "20", height = "20", offset = "-20 150" } -- 21. Settings
|
{ id = "21", width = "20", height = "20", offset = "-20 150" } -- 21. Settings
|
||||||
}
|
}
|
||||||
|
|
||||||
playButtonData = {
|
playButtonData = {
|
||||||
{ id = "1", width = "80", height = "33", offset = "0 55" },
|
{ id = "1", width = "80", height = "33", offset = "0 55" },
|
||||||
{ id = "2", width = "78", height = "70", offset = "0 -8" },
|
{ id = "2", width = "78", height = "70", offset = "0 -8" },
|
||||||
{ id = "3", width = "68", height = "32", offset = "-36 -71" },
|
{ id = "3", width = "68", height = "32", offset = "-36 -71" },
|
||||||
@ -42,7 +42,7 @@ playButtonData = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- To-Do: dynamically get positions by linking to objects
|
-- To-Do: dynamically get positions by linking to objects
|
||||||
cameraData = {
|
cameraData = {
|
||||||
{ position = { -1.6, 1.55, 0 }, distance = 18 }, -- 1. Act/Agenda
|
{ position = { -1.6, 1.55, 0 }, distance = 18 }, -- 1. Act/Agenda
|
||||||
{ position = { -28, 1.55, 0 }, distance = -1 }, -- 2. Map
|
{ position = { -28, 1.55, 0 }, distance = -1 }, -- 2. Map
|
||||||
{ position = { -31.6, 1.55, 26.4 }, distance = -1 }, -- 3. Green playermat
|
{ position = { -31.6, 1.55, 26.4 }, distance = -1 }, -- 3. Green playermat
|
||||||
@ -64,10 +64,10 @@ cameraData = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
local settingsOpenForColor
|
local settingsOpenForColor
|
||||||
local visibility = {}
|
local visibility = {}
|
||||||
local claims = {}
|
local claims = {}
|
||||||
local pitch = {}
|
local pitch = {}
|
||||||
local distance = {}
|
local distance = {}
|
||||||
|
|
||||||
---------------------------------------------------------
|
---------------------------------------------------------
|
||||||
-- save/load functionality
|
-- save/load functionality
|
||||||
@ -305,36 +305,19 @@ function getDynamicViewBounds(objList)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function loadCameraFromApi(params)
|
function loadCameraFromApi(params)
|
||||||
loadCamera(params.player, params.camera)
|
loadCamera(params.player, params.index, params.matColor)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- loads the specified camera for a player
|
-- loads the specified camera for a player
|
||||||
---@param player tts__Player Player whose camera should be moved
|
---@param player tts__Player Player whose camera should be moved
|
||||||
---@param camera number|string If number: Index of the camera view to load | If string: Color of the playermat to swap to
|
---@param index? number Index of the camera view to load
|
||||||
function loadCamera(player, camera)
|
---@param matColor? string Color of the playermat to swap to
|
||||||
local lookHere, index, matColor
|
function loadCamera(player, index, matColor)
|
||||||
|
-- need at least one of these parameters
|
||||||
|
if not index and not matColor then return end
|
||||||
|
|
||||||
local matColorList = { "White", "Orange", "Green", "Red" }
|
local matColorList = { "White", "Orange", "Green", "Red" }
|
||||||
local indexList = {
|
local lookHere
|
||||||
White = 3,
|
|
||||||
Orange = 4,
|
|
||||||
Green = 5,
|
|
||||||
Red = 6
|
|
||||||
}
|
|
||||||
|
|
||||||
if tonumber(camera) then
|
|
||||||
index = tonumber(camera)
|
|
||||||
matColor = matColorList[index - 2] -- mat index 1 - 4
|
|
||||||
else
|
|
||||||
index = indexList[camera]
|
|
||||||
matColor = camera
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if mat is removed, end here
|
|
||||||
local mat = guidReferenceApi.getObjectByOwnerAndType(matColor, "Playermat")
|
|
||||||
if mat == nil then
|
|
||||||
printToColor("Couldn't find this playermat.", player.color)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- dynamic view of the play area
|
-- dynamic view of the play area
|
||||||
if index == 2 then
|
if index == 2 then
|
||||||
@ -347,8 +330,18 @@ function loadCamera(player, camera)
|
|||||||
yaw = 90,
|
yaw = 90,
|
||||||
distance = 0.8 * math.max(bounds.diffX, bounds.diffZ) + 7
|
distance = 0.8 * math.max(bounds.diffX, bounds.diffZ) + 7
|
||||||
}
|
}
|
||||||
-- dynamic view of the clicked play mat
|
-- dynamic view of the clicked play mat
|
||||||
elseif index >= 3 and index <= 6 then
|
elseif (index >= 3 and index <= 6) or matColor then
|
||||||
|
-- maybe get matColor (mat index 1 - 4)
|
||||||
|
matColor = matColor or matColorList[index - 2]
|
||||||
|
|
||||||
|
-- if mat is removed, end here
|
||||||
|
local mat = guidReferenceApi.getObjectByOwnerAndType(matColor, "Playermat")
|
||||||
|
if mat == nil then
|
||||||
|
printToColor("Couldn't find this playermat.", player.color)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- check if anyone (except for yourself) has claimed this color
|
-- check if anyone (except for yourself) has claimed this color
|
||||||
local isClaimed = false
|
local isClaimed = false
|
||||||
|
|
||||||
|
@ -52,6 +52,8 @@ local colorsForClasses = {
|
|||||||
Survivor = Color.new(190 / 255, 30 / 255, 45 / 255)
|
Survivor = Color.new(190 / 255, 30 / 255, 45 / 255)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local highlightColor = { 0, 200 / 255, 200 / 255 }
|
||||||
|
|
||||||
function onSave()
|
function onSave()
|
||||||
return JSON.encode({ class = class, symbol = symbol })
|
return JSON.encode({ class = class, symbol = symbol })
|
||||||
end
|
end
|
||||||
@ -63,6 +65,9 @@ function onLoad(savedData)
|
|||||||
|
|
||||||
updateDisplay()
|
updateDisplay()
|
||||||
addContextMenu()
|
addContextMenu()
|
||||||
|
if self.hasTag("Temporary") then
|
||||||
|
self.highlightOn(highlightColor)
|
||||||
|
end
|
||||||
|
|
||||||
-- get random seed from Global so all are different
|
-- get random seed from Global so all are different
|
||||||
math.randomseed(Global.call("getRandomSeed"))
|
math.randomseed(Global.call("getRandomSeed"))
|
||||||
@ -272,6 +277,11 @@ function updateClassAndSymbol(params)
|
|||||||
updateDisplay()
|
updateDisplay()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function addTemporaryStatus()
|
||||||
|
self.addTag("Temporary")
|
||||||
|
self.highlightOn(highlightColor)
|
||||||
|
end
|
||||||
|
|
||||||
function isClassName(str)
|
function isClassName(str)
|
||||||
for _, className in ipairs(listOfClasses) do
|
for _, className in ipairs(listOfClasses) do
|
||||||
if className == str then
|
if className == str then
|
||||||
|
@ -4,6 +4,7 @@ local tokenManagerApi = require("core/token/TokenManagerApi")
|
|||||||
|
|
||||||
local TOKEN_INDEX = {}
|
local TOKEN_INDEX = {}
|
||||||
TOKEN_INDEX[1] = "universalActionAbility"
|
TOKEN_INDEX[1] = "universalActionAbility"
|
||||||
|
TOKEN_INDEX[2] = "universalActionAbility"
|
||||||
TOKEN_INDEX[3] = "resourceCounter"
|
TOKEN_INDEX[3] = "resourceCounter"
|
||||||
TOKEN_INDEX[4] = "damage"
|
TOKEN_INDEX[4] = "damage"
|
||||||
TOKEN_INDEX[5] = "path"
|
TOKEN_INDEX[5] = "path"
|
||||||
@ -66,6 +67,9 @@ function onScriptingButtonDown(index, playerColor)
|
|||||||
rotation = playermatApi.returnRotation(matColor)
|
rotation = playermatApi.returnRotation(matColor)
|
||||||
callbackName = "updateUniversalActionAbilityToken"
|
callbackName = "updateUniversalActionAbilityToken"
|
||||||
callbackParams = { class = activeInvestigatorData.class, symbol = activeInvestigatorData.class }
|
callbackParams = { class = activeInvestigatorData.class, symbol = activeInvestigatorData.class }
|
||||||
|
if index == 2 then -- temporary version
|
||||||
|
callbackParams.addTag = "Temporary"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
tokenManagerApi.spawnToken(position, tokenType, rotation, callbackName, callbackParams)
|
tokenManagerApi.spawnToken(position, tokenType, rotation, callbackName, callbackParams)
|
||||||
|
@ -71,6 +71,30 @@
|
|||||||
|
|
||||||
<HorizontalLayout>
|
<HorizontalLayout>
|
||||||
<VerticalLayout preferredWidth="600">
|
<VerticalLayout preferredWidth="600">
|
||||||
|
<!-- search bar and filter dropdown -->
|
||||||
|
<HorizontalLayout preferredHeight="40"
|
||||||
|
padding="5 5 10 0"
|
||||||
|
spacing="5">
|
||||||
|
<InputField id="searchField"
|
||||||
|
preferredWidth="290"
|
||||||
|
fontSize="22"
|
||||||
|
placeholder="Search by name..."
|
||||||
|
color="white"
|
||||||
|
textColor="Black"
|
||||||
|
textOffset="5 5 5 5"
|
||||||
|
font="font_teutonic-arkham"
|
||||||
|
onSubmit="onSearchValueSubmit"/>
|
||||||
|
<Dropdown id="authorDropdown"
|
||||||
|
preferredWidth="290"
|
||||||
|
fontSize="22"
|
||||||
|
scrollSensitivity="22"
|
||||||
|
font="font_teutonic-arkham"
|
||||||
|
onValueChanged="onAuthorFilterChanged">
|
||||||
|
<Option>All Authors</Option>
|
||||||
|
<!-- this will be filled via scripting -->
|
||||||
|
</Dropdown>
|
||||||
|
</HorizontalLayout>
|
||||||
|
|
||||||
<!-- tab selection -->
|
<!-- tab selection -->
|
||||||
<HorizontalLayout preferredHeight="60"
|
<HorizontalLayout preferredHeight="60"
|
||||||
padding="5"
|
padding="5"
|
||||||
@ -136,7 +160,7 @@
|
|||||||
resizeTextMaxSize="18">PreviewDescription</Text>
|
resizeTextMaxSize="18">PreviewDescription</Text>
|
||||||
</Panel>
|
</Panel>
|
||||||
|
|
||||||
<!-- download button / progress bar (visibility handled by lua code)-->
|
<!-- download button / progress bar (visibility handled by lua code) -->
|
||||||
<Panel preferredHeight="60">
|
<Panel preferredHeight="60">
|
||||||
<!-- download button -->
|
<!-- download button -->
|
||||||
<Button id="download_button"
|
<Button id="download_button"
|
||||||
@ -157,4 +181,4 @@
|
|||||||
</Panel>
|
</Panel>
|
||||||
</VerticalLayout>
|
</VerticalLayout>
|
||||||
</HorizontalLayout>
|
</HorizontalLayout>
|
||||||
</VerticalLayout>
|
</VerticalLayout>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user