From 5a7bf72d7be878497b66299c6b546d9a6d37a62f Mon Sep 17 00:00:00 2001 From: wmgroot Date: Mon, 4 Apr 2022 23:37:40 -0500 Subject: [PATCH] add crimson trial script --- Data.ttslua | 174 ++++++++++++++++++++++++++++++++++++++++++++- DealChars.ttslua | 3 + NightHelper.ttslua | 2 - 3 files changed, 175 insertions(+), 4 deletions(-) diff --git a/Data.ttslua b/Data.ttslua index 7646a83..f51c23b 100644 --- a/Data.ttslua +++ b/Data.ttslua @@ -107,6 +107,8 @@ FIRST = 'Hastur', 'Bogman Info', 'Bogman', + 'Aswang', + 'Bean-nighe', 'Censor', 'Pixie', 'Huntsman', @@ -117,6 +119,8 @@ FIRST = 'Empath', 'Fortune Teller', 'Fortune Teller2', + 'Huntress', + 'Huntress2', 'Grandmother', 'Clockmaker', 'Dreamer', @@ -147,12 +151,20 @@ FIRST = 'Stalker', 'Ambusher Info', 'Ambusher', + 'Blood Hound', + 'Blood Hound2', + 'Inquisitor', + 'Inquisitor2', 'Cult Leader', 'Spy', 'Chambermaid', 'Chambermaid2', + 'Tail', + 'Tail2', 'Goon', 'Mathematician', + 'Phlebotomist', + 'Next Night' } } @@ -238,6 +250,7 @@ OTHER = 'Lobotomizer', 'Philosopher', 'Sailor', + 'Bacchant', 'Amnesiac', 'Engineer', 'King Info', @@ -258,10 +271,12 @@ OTHER = 'Snake Charmer', 'Monk', 'Medicine Man', + 'Berserker', 'Mother', 'Blasphemer', 'Wicked', 'Devils Advocate', + 'Crone', 'Witch', 'Cerenovus', 'Madness', @@ -296,10 +311,16 @@ OTHER = 'Bogman', 'Sasquatch', 'Wendigo', + 'Aswang', + 'Bean-nighe', + 'Empusa', + 'Yara-ma-yha-who', 'Assassin', 'Godfather', 'Secondhand', + 'Savage', 'Effigy', + 'Flagellant', 'Farmer', 'Barber', 'Cartographer', @@ -320,6 +341,17 @@ OTHER = 'Empath', 'Fortune Teller', 'Fortune Teller2', + 'Huntress', + 'Huntress2', + 'Torturer', + 'Torturer2', + 'Beekeeper', + 'Coroner', + 'Coroner2', + 'Blood Hound', + 'Blood Hound2', + 'Inquisitor', + 'Inquisitor2', 'Undertaker', 'Dreamer', 'Dreamer2', @@ -355,8 +387,13 @@ OTHER = 'Spy', 'Chambermaid', 'Chambermaid2', + 'Tail', + 'Tail2', 'Mathematician', + 'Blood Prophet', + 'Phlebotomist', 'Goon', + 'Next Night' } } @@ -372,6 +409,10 @@ CU_LIST = { 'Majesty', 'Prince', 'Princess', 'Queen', 'Knight', 'Cardinal', 'Rook', 'Scribe', 'Herald', 'Chamberlain', 'Cup-Bearer', 'Friar', 'Food Taster', 'Pretender', 'Pawn', 'Emissary', 'Concubine', 'Charlatan', 'Conspirator', 'Scoundrel', 'Usurper', 'Ysbaddaden', 'Draco', 'Jabberwocky', 'Morgana', 'Astrologist', 'Cartographer', 'Censor', 'Child', 'Counterfeiter', 'Cultist', 'Cursebearer', 'Fanatic', 'Hastur', 'Lobotomizer', 'Mother', 'Pomme de Terror', 'Rakshasa', 'Recordkeeper', 'Schizophrenic', 'Turncoat', 'Xolotl', 'Chieftain','Blasphemer','Diviner','Trapper','Shaman','Stargazer','Soothsayer','Bloodletter','Stalker','Ambusher','Warrior','Medicine Man','Reveler','Wicked','Urchin','Right Hand Man','Apiarist','Eclipse','Viceroy','Effigy','Secondhand','Retrogradus','Bogman','Sasquatch','Wendigo', + + -- Crimson Trial + 'Bacchant','Berserker','Bleeding Heart','Blood Hound','Blood Prophet','Coroner','Flagellant','Tail','Huntress','Inquisitor','Phlebotomist','Torturer', + 'Anemic','Beekeeper','Hemophobe','Patient Zero','Septicemiac','Butcher','Crone','Savage','Aswang','Bean-nighe','Empusa','Yara-ma-yha-who', } TYPES = {'Townsfolk', 'Outsider', 'Minion', 'Demon', 'Traveler'} @@ -597,6 +638,40 @@ CHARACTERS = ['Bogman Info'] = {Type = 'Info', Ability = false, Response = false, Prompt = 'A poisoned Townsfolk player in play: P1.', Description = ''}, ['Sasquatch'] = {Type = 'Demon', Ability = false, Response = false, Prompt = 'Choose who to kill.', Description = 'Each night*, choose a player: they die. Once per game, you may choose twice.'}, ['Wendigo'] = {Type = 'Demon', Ability = false, Response = false, Prompt = 'Choose who to kill.', Description = 'Each night*, choose 1 or 3 players: if you chose 1, they die; if you chose 3, they are bloodied. Minions start bloodied.'}, + + ['Bacchant'] = {Type = 'Townsfolk', Ability = false, Response = false, Prompt = 'Choose a character.', Description = 'Each night*, choose a character: they are drunk and triaged. Each character can only be chosen once.'}, + ['Berserker'] = {Type = 'Townsfolk', Ability = false, Response = false, Prompt = 'You P1 bloodied tonight.', Description = 'Each night*, you learn if you are bloodied, and are then triaged at night.'}, + ['Bleeding Heart'] = {Type = 'Townsfolk', Ability = false, Response = false, Prompt = '', Description = 'Executed, bloodied good players do not die.'}, + ['Blood Hound'] = {Type = 'Townsfolk', Ability = false, Response = true, Prompt = 'Choose a player.', Description = 'The first time you are bloodied, you wake that night to learn the alignment of a chosen player.'}, + ['Blood Hound2'] = {Type = 'Info', Ability = false, Response = false, Prompt = 'That player is P1.', Description = ''}, + ['Blood Prophet'] = {Type = 'Townsfolk', Ability = false, Response = false, Prompt = 'Tonight, a P1 was bloodied.', Description = 'Each night*, if you are not bloodied, you wake to learn the character of one player who was bloodied tonight (or none).'}, + ['Coroner'] = {Type = 'Townsfolk', Ability = false, Response = true, Prompt = 'Choose a dead player.', Description = 'Each night*, choose a player: if they are dead, you learn the character of the player that killed them (nominator if executed).'}, + ['Coroner2'] = {Type = 'Info', Ability = false, Response = false, Prompt = 'That player was killed by a P1.', Description = ''}, + ['Tail'] = {Type = 'Townsfolk', Ability = false, Response = true, Prompt = 'Choose a player.', Description = 'Each night, choose a player: you learn one of the players they visited tonight.'}, + ['Tail2'] = {Type = 'Info', Ability = false, Response = false, Prompt = 'That player visited P1 tonight.', Description = ''}, + ['Flagellant'] = {Type = 'Townsfolk', Ability = false, Response = false, Prompt = 'Choose a player.', Description = 'Each night*, choose a player: they are bloodied.'}, + ['Huntress'] = {Type = 'Townsfolk', Ability = false, Response = true, Prompt = 'Choose a player.', Description = 'Each night, choose a player: you learn if they are bloodied. All minions start the game bloodied.'}, + ['Huntress2'] = {Type = 'Info', Ability = false, Response = false, Prompt = 'That player P1 bloodied.', Description = ''}, + ['Inquisitor'] = {Type = 'Townsfolk', Ability = false, Response = true, Prompt = 'Choose two players.', Description = 'Each night, choose two players. You learn if a demon is among them. If either chosen player is bloodied, you are poisoned tonight.'}, + ['Inquisitor2'] = {Type = 'Info', Ability = false, Response = false, Prompt = 'There P1 a demon among those players.', Description = ''}, + ['Phlebotomist'] = {Type = 'Townsfolk', Ability = false, Response = false, Prompt = 'Tonight, P1 living players are bloodied.', Description = 'Each night, you learn how many living players are bloodied.'}, + ['Torturer'] = {Type = 'Townsfolk', Ability = false, Response = true, Prompt = 'Choose a player.', Description = 'Each night*, choose a player: you learn their alignment, and they are bloodied if good.'}, + ['Torturer2'] = {Type = 'Info', Ability = false, Response = false, Prompt = 'That player is P1.', Description = ''}, + + ['Anemic'] = {Type = 'Outsider', Ability = false, Response = false, Prompt = '', Description = 'If you become bloodied, you die.'}, + ['Beekeeper'] = {Type = 'Outsider', Ability = false, Response = false, Prompt = '', Description = 'If you die, 2 other players are bloodied tonight.'}, + ['Hemophobe'] = {Type = 'Outsider', Ability = false, Response = false, Prompt = '', Description = 'You always register as bloodied. (You must still be bloodied twice to die).'}, + ['Patient Zero'] = {Type = 'Outsider', Ability = false, Response = false, Prompt = '', Description = 'You think and act as if you are a Townsfolk. Each night, one of your closest neighbors that is not bloodied becomes bloodied.'}, + ['Septicemiac'] = {Type = 'Outsider', Ability = false, Response = false, Prompt = '', Description = 'While you are bloodied, your living neighbors are poisoned if good.'}, + + ['Butcher'] = {Type = 'Minion', Ability = false, Response = false, Prompt = '', Description = 'Once per game, during the day, you may publicly bloody one player. [+1 Outsider]'}, + ['Crone'] = {Type = 'Minion', Ability = false, Response = false, Prompt = '', Description = 'Any good player who nominates another good player is bloodied tonight.'}, + ['Savage'] = {Type = 'Minion', Ability = false, Response = false, Prompt = 'Choose who to bloody.', Description = 'Each night*, choose a player: they are bloodied. You start the game bloodied (if not already).'}, + + ['Aswang'] = {Type = 'Demon', Ability = false, Response = false, Prompt = 'Choose who to bloody.', Description = 'Each night, choose a player: they are bloodied. At any time, if both alive neighbors for a bloodied player are also bloodied, that player dies. You always register as bloodied. [+1 Outsider]'}, + ['Bean-nighe'] = {Type = 'Demon', Ability = false, Response = false, Prompt = 'Choose.', Description = 'Each night, either: 1. Choose a player, they are bloodied. 2. Bloody all players who are not bloodied.'}, + ['Empusa'] = {Type = 'Demon', Ability = false, Response = false, Prompt = 'Choose who to kill.', Description = 'Each night*, choose a player: they die. All good players are poisoned while bloodied.'}, + ['Yara-ma-yha-who'] = {Type = 'Demon', Ability = false, Response = false, Prompt = 'Choose who to kill.', Description = 'Each night*, choose a player. If the chosen player is not bloodied, they die. Otherwise, you die and the chosen player becomes an evil Yara-ma-yha-who.'}, } PROMPTS = { @@ -659,6 +734,16 @@ PROMPTS = { ['Ambusher Info'] = {P1 = {type = "Color"}}, ['Warrior'] = {P1 = {type = "State", quality = "Are"}}, ['Bogman Info'] = {P1 = {type = "Color"}}, + + ['Berserker'] = {P1 = {type = "State", quality = "Are"}}, + ['Blood Prophet'] = {P1 = {type = "Character", quality = "All"}}, + ['Blood Hound2'] = {P1 = {type = "State", quality = "Alignment"}}, + ['Coroner2'] = {P1 = {type = "Character", quality = "All"}}, + ['Tail2'] = {P1 = {type = "Color"}}, + ['Huntress2'] = {P1 = {type = "State", quality = "Is"}}, + ['Inquisitor2'] = {P1 = {type = "State", quality = "Is"}}, + ['Phlebotomist'] = {P1 = {type = "Number", min = 0, max = 15}}, + ['Torturer2'] = {P1 = {type = "State", quality = "Alignment"}}, } DECAL_URLS = @@ -859,6 +944,31 @@ DECAL_URLS = ['Rakshasa'] = 'http://cloud-3.steamusercontent.com/ugc/788618668516830699/EE2C216511A43CBE63DD688D0365EA2FDEA8FB98/', ['Xolotl'] = 'http://cloud-3.steamusercontent.com/ugc/778486750207336897/668FC86E04C1B147D36752F7F60E3D66F6B3A27A/', ['Turncoat'] = 'http://cloud-3.steamusercontent.com/ugc/778486750207336737/FAAD1F1B20A793A9CE529C5F3DFA788B49669C85/', + + ['Bacchant'] = 'https://i.imgur.com/ErBmVHR.png', + ['Berserker'] = 'https://i.imgur.com/hVzUCd9.png', + ['Bleeding Heart'] = 'https://i.imgur.com/yqaLYEU.png', + ['Blood Hound'] = 'https://i.imgur.com/cK6JUTr.png', + ['Blood Prophet'] = 'https://i.imgur.com/JCczwFs.png', + ['Coroner'] = 'https://i.imgur.com/XbxrifD.png', + ['Flagellant'] = 'https://i.imgur.com/0IG2V4K.png', + ['Tail'] = 'https://i.imgur.com/bnW3zLz.png', + ['Huntress'] = 'https://i.imgur.com/kUergYg.png', + ['Inquisitor'] = 'https://i.imgur.com/q2svnLD.png', + ['Phlebotomist'] = 'https://i.imgur.com/ykALvZ6.png', + ['Torturer'] = 'https://i.imgur.com/ThPetiz.png', + ['Anemic'] = 'https://i.imgur.com/svJrzAj.png', + ['Beekeeper'] = 'https://i.imgur.com/uNjB2tD.png', + ['Septicemiac'] = 'https://i.imgur.com/hmhIBem.png', + ['Hemophobe'] = 'https://i.imgur.com/g92gE5u.png', + ['Patient Zero'] = 'https://i.imgur.com/zGXhWgq.png', + ['Butcher'] = 'https://i.imgur.com/0QSqY93.png', + ['Crone'] = 'https://i.imgur.com/LxLj80F.png', + ['Savage'] = 'https://i.imgur.com/5UsFvQB.png', + ['Aswang'] = 'https://i.imgur.com/lfTGTeY.png', + ['Bean-nighe'] = 'https://i.imgur.com/T2aRGDw.png', + ['Empusa'] = 'https://i.imgur.com/f7QWj5i.png', + ['Yara-ma-yha-who'] = 'https://i.imgur.com/wlcfB4p.png', } REMINDER_TOKENS = { @@ -1252,7 +1362,7 @@ REMINDER_TOKENS = { {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013195263/49566AF6591C66E721B25F62B8D6867ED83C023E/'}, }, ['Medicine Man'] = { - {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013188613/E9BB26CFED861F127D546DE40FB48B7E1345A90B/'}, + {num = 2, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013188613/E9BB26CFED861F127D546DE40FB48B7E1345A90B/'}, }, ['Reveler'] = { {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013248468/FFCB7761F9C3D2F9C82CF64FAF48272D5171A9A3/'}, @@ -1349,5 +1459,65 @@ REMINDER_TOKENS = { {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/778486750207390902/7BA61311BAB838ECB6EB729458A00B2877E204DD/'}, {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/778486750207391079/0EDA9681C58BCC851BB46E336C544A7DBD0CF672/'}, {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/778486750207391246/8DA84F0044D989E9E5857B067A5A6849427A8050/'}, - } + }, + + ['Bacchant'] = { + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/779613284195787247/2E0927387F10FEB6A1A51988352EADA80CDD378F/'}, + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013188613/E9BB26CFED861F127D546DE40FB48B7E1345A90B/'}, + }, + ['Berserker'] = { + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013195263/49566AF6591C66E721B25F62B8D6867ED83C023E/'}, + }, + ['Blood Prophet'] = { + {num = 5, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + }, + ['Flagellant'] = { + {num = 5, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + }, + ['Huntress'] = { + {num = 5, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + }, + ['Inquisitor'] = { + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/779613284193552870/F9D99BEA975E112BD4D7CE3166AEB3A7F02683DB/'}, + }, + ['Torturer'] = { + {num = 5, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186641/2A035E00DC6BB26A3D909F8E4DABC9051569592B/'}, + }, + ['Beekeeper'] = { + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013185182/C91B22213483CA5C06AD91245177019EE638549A/'}, + {num = 2, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + }, + ['Patient Zero'] = { + {num = 5, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + }, + ['Septicemiac'] = { + {num = 2, url = 'http://cloud-3.steamusercontent.com/ugc/779613284195787247/2E0927387F10FEB6A1A51988352EADA80CDD378F/'}, + }, + ['Butcher'] = { + {num = 2, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + }, + ['Crone'] = { + {num = 5, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/779613284193812205/950C2672E4CB9F597D4A4E1B1D173EAE01FC1273/'}, + }, + ['Savage'] = { + {num = 5, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + }, + ['Aswang'] = { + {num = 7, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186641/2A035E00DC6BB26A3D909F8E4DABC9051569592B/'}, + }, + ['Bean-nighe'] = { + {num = 10, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186641/2A035E00DC6BB26A3D909F8E4DABC9051569592B/'}, + }, + ['Empusa'] = { + {num = 3, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/788618668507706560/9AF9925E15830CB430276DD7B8EF2B8DE2B5F65D/'}, + }, + ['Yara-ma-yha-who'] = { + {num = 3, url = 'http://cloud-3.steamusercontent.com/ugc/1057730731013186414/4B3197F4EF562A1342B3A5B72A36ACE011AD902F/'}, + {num = 1, url = 'http://cloud-3.steamusercontent.com/ugc/788618668507706560/9AF9925E15830CB430276DD7B8EF2B8DE2B5F65D/'}, + }, } diff --git a/DealChars.ttslua b/DealChars.ttslua index cbffdf4..86ccf58 100644 --- a/DealChars.ttslua +++ b/DealChars.ttslua @@ -80,6 +80,9 @@ function dealToPlayers(clickedObject, playerColor) elseif v.name == 'Marionette' then Player['Black'].broadcast('Error: Remove the Marionette token from the bag before dealing the character tokens.', {1,0,0}) return + elseif v.name == 'Patient Zero' then + Player['Black'].broadcast('Error: Remove the Marionette token from the bag before dealing the character tokens.', {1,0,0}) + return end end diff --git a/NightHelper.ttslua b/NightHelper.ttslua index 8fbbfe0..1459ed5 100644 --- a/NightHelper.ttslua +++ b/NightHelper.ttslua @@ -316,8 +316,6 @@ function setNightOrder(night) table.insert(order, {char = 'Ambusher Info', color = v2.color}) elseif v2.char == 'Bogman' and night == 'first' then table.insert(order, {char = 'Bogman Info', color = v2.color}) - elseif v2.char == 'Inquisitor' and night == 'other' then - table.insert(order, {char = 'Inquisitor Info', color = v2.color}) elseif CHARACTERS[v2.char].Response == true then table.insert(order, v2) table.insert(order, {char = v2.char .. '2', color = v2.color})