Hi.
My name is Raven Mitchell. You may be wondering what the purpose of this respository is and the purpose of my code is. I will explain everything that is needed to know about this passion project.
Firstly, let me explain the purpose of Blood on the Clocktower(BoTC). BoTC was a social deduction game that was live on Kickstarter back in 2019(though it's first designs and ideas stretch farther than that). BoTC is similar to other deduction games as it contains at least 2 opposing teams. It also more closely relates to it's Werewolf/Mafia game counterparts as it does involve "trials" and day/night cycles. What makes BoTC unique is that (most of the times) players have unique roles as well as players having the ability to continue playing the game even beyond death. Additionally, dead players also get a 1 time vote to help execute players. Besides that, other differences is that each setup(of 5 or more players) has a "base" setup depending on player count. This setup mechanic determines the number of Townsfolk(Good players with helpful abilities), Outsiders(Good players with caveats), Minions(Evil players that are "henceman") and Demons(Evil players that are the "Wolves") are put into the game(however, some roles may alter the setup design with requirements or influence the number of each type is needed). Other mechanics that BoTC contains: drunk/posion(stuff to cause roles to get misinfomation or have abilites misfire), false identites(players being under the impression of being a certain role but actually a different role), registering (roles that register different then what they are supposed be), madness(trying to convay about a piece of infomation to be true), and Travelers(players who's abilites are known publically but their alignment is unknown, and are also players not require to attend the whole duration of the session). As stated before, the game was on Kickstarter but had some delayed by the disaster of Covid 19 and wasn't realeased of it "Base 3 Scripts/Editions"(Trouble Brewing, Sect and Violets, Bad Moon Rising) and it's kickstarter goals were released in 2022 and the rest of the expected Scripts/Editons(Garden of Sins, The Tomb, Midnight House of the Damned, and Greatest Show on Earth) and a good proportion of the unreleased are going to be public in 2024(?).
Secondly, what is the point of making a code for rolelist? Well, the creators of the game have made a script builder tool for people to make their own scripts with combinations of roles from the Base 3 and released roles. However, people may have difficulty on making scripts without causing a problem between the interactions between roles or may have difficulty with trying to fit 1 or 2 roles that have a specific condition in order to make the script to not make it obvious what roles are in play or not. My code, despite having mechanics of randomness, does have leeway of giving the user a way to push the code into a direction of making a rolelist while the code fills in the rest based on the giving conditions. Additionally, it tries to put roles that have great synegy (and avoid roles that have bad synegy) in order to make the rolelist. This project is ongoing until roles in the series are released but may have some touch ups after that. Additionally, this is a slow progress as TPI(the creators of the game) keeps releasing the finalizing version of roles once(sometimes twice) a month. There are some mechinacs for the code that will be added after all roles are released.
Regardless, I would like to give thanks to TPI for making this game and series and I also give credit to the bottom of my code to those who have helped with the code.