@@ -223,6 +223,22 @@ export default {
watch: {
players: {
handler(newPlayers) {
+ const firstNight = [0];
+ const otherNight = [0];
+ newPlayers.forEach(({ role }) => {
+ if (role.firstNight && !firstNight.includes(role.firstNight)) {
+ firstNight.push(role.firstNight);
+ }
+ if (role.otherNight && !otherNight.includes(role.otherNight)) {
+ otherNight.push(role.otherNight);
+ }
+ });
+ firstNight.sort();
+ otherNight.sort();
+ newPlayers.forEach(player => {
+ player.firstNight = Math.max(firstNight.indexOf(player.role.firstNight), 0);
+ player.otherNight = Math.max(otherNight.indexOf(player.role.otherNight), 0);
+ });
localStorage.players = JSON.stringify(
newPlayers.map(player => ({
...player,
diff --git a/src/components/Player.vue b/src/components/Player.vue
index dc684ff..fb34781 100644
--- a/src/components/Player.vue
+++ b/src/components/Player.vue
@@ -11,6 +11,16 @@
>
+
+
+ {{ player.firstNight }}.
+ {{ player.role.firstNightReminder }}
+
+
+ {{ player.otherNight }}.
+ {{ player.role.otherNightReminder }}
+
+
@@ -283,6 +293,68 @@ export default {
opacity: 1;
}
+/**** Night reminders ****/
+.player .night {
+ position: absolute;
+ top: 40%;
+ width: 100%;
+ z-index: 2;
+ cursor: pointer;
+ opacity: 1;
+ transition: opacity 200ms;
+
+ #townsquare.public & {
+ opacity: 0;
+ pointer-events: none;
+ }
+
+ &:hover ~ .token .ability {
+ opacity: 0;
+ }
+
+ &.first em {
+ left: -15px;
+ background: linear-gradient(
+ 180deg,
+ rgba(0, 0, 0, 1) 0%,
+ rgba(147, 0, 0, 1) 100%
+ );
+ }
+
+ &.other em {
+ right: -15px;
+ background: linear-gradient(
+ 180deg,
+ rgba(0, 0, 0, 1) 0%,
+ rgba(7, 0, 147, 1) 100%
+ );
+ }
+
+ em {
+ font-style: normal;
+ position: absolute;
+ width: 40px;
+ height: 40px;
+ text-align: center;
+ line-height: 37px;
+ top: -20px;
+ border-radius: 50%;
+ border: 3px solid black;
+ filter: drop-shadow(0 0 6px rgba(0, 0, 0, 0.5));
+ font-weight: bold;
+ opacity: 1;
+ transition: opacity 200ms;
+ }
+
+ #app.screenshot & {
+ display: none;
+ }
+}
+
+.player.dead .night em {
+ opacity: 0;
+}
+
/***** Reminder token *****/
.circle .reminder {
background: url("../assets/reminder.png") center center;
diff --git a/src/components/Token.vue b/src/components/Token.vue
index 3f3dfd4..654e950 100644
--- a/src/components/Token.vue
+++ b/src/components/Token.vue
@@ -45,6 +45,8 @@ export default {
border: 3px solid black;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
cursor: pointer;
+ display: flex;
+ align-items: center;
&:before {
content: " ";
@@ -102,8 +104,7 @@ export default {
display: flex;
position: absolute;
padding: 5px 10px;
- top: 20px;
- left: 110%;
+ left: 120%;
width: 250px;
z-index: 25;
font-size: 80%;
diff --git a/src/components/TownSquare.vue b/src/components/TownSquare.vue
index 18aed8e..b22208d 100644
--- a/src/components/TownSquare.vue
+++ b/src/components/TownSquare.vue
@@ -213,8 +213,9 @@ export default {
z-index: $item-count - $i + 1;
} @else {
z-index: $i - 1;
- .ability {
- right: 110%;
+ .ability,
+ .night span {
+ right: 120%;
left: auto;
&:before {
border-right-color: transparent;
@@ -229,7 +230,8 @@ export default {
}
.life,
.token,
- .shroud {
+ .shroud,
+ .night {
transition-delay: ($i - 1) * 50ms;
}
diff --git a/src/main.js b/src/main.js
index 664fece..2dcb722 100644
--- a/src/main.js
+++ b/src/main.js
@@ -8,7 +8,7 @@ import {
faUserFriends,
faUser,
faTimesCircle,
- faCogs,
+ faCog,
faSearchMinus,
faSearchPlus,
faCamera
@@ -22,7 +22,7 @@ library.add(
faUserFriends,
faUser,
faTimesCircle,
- faCogs,
+ faCog,
faSearchMinus,
faSearchPlus,
faCamera
diff --git a/src/roles.json b/src/roles.json
index 20175bf..18f2c5e 100644
--- a/src/roles.json
+++ b/src/roles.json
@@ -4,8 +4,10 @@
"name": "Washerwoman",
"edition": "tb",
"team": "townsfolk",
- "firstNight": true,
- "otherNight": false,
+ "firstNight": 15,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [
"Townsfolk",
"Decoy"
@@ -18,8 +20,10 @@
"name": "Librarian",
"edition": "tb",
"team": "townsfolk",
- "firstNight": true,
- "otherNight": false,
+ "firstNight": 16,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [
"Outsider",
"Decoy"
@@ -32,8 +36,10 @@
"name": "Investigator",
"edition": "tb",
"team": "townsfolk",
- "firstNight": true,
- "otherNight": false,
+ "firstNight": 17,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [
"Minion",
"Decoy"
@@ -46,8 +52,10 @@
"name": "Chef",
"edition": "tb",
"team": "townsfolk",
- "firstNight": true,
- "otherNight": false,
+ "firstNight": 18,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "You start knowing how many pairs of evil players there are."
@@ -57,8 +65,10 @@
"name": "Empath",
"edition": "tb",
"team": "townsfolk",
- "firstNight": true,
- "otherNight": true,
+ "firstNight": 19,
+ "firstNightReminder": "",
+ "otherNight": 37,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "Each night, you learn how many of your 2 alive neighbours are evil."
@@ -68,8 +78,10 @@
"name": "Fortune Teller",
"edition": "tb",
"team": "townsfolk",
- "firstNight": true,
- "otherNight": true,
+ "firstNight": 20,
+ "firstNightReminder": "",
+ "otherNight": 38,
+ "otherNightReminder": "",
"reminders": [
"Decoy"
],
@@ -81,8 +93,10 @@
"name": "Undertaker",
"edition": "tb",
"team": "townsfolk",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 40,
+ "otherNightReminder": "",
"reminders": [
"Executed"
],
@@ -94,8 +108,10 @@
"name": "Monk",
"edition": "tb",
"team": "townsfolk",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 8,
+ "otherNightReminder": "",
"reminders": [
"Protected"
],
@@ -107,8 +123,10 @@
"name": "Ravenkeeper",
"edition": "tb",
"team": "townsfolk",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 35,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "If you die at night, you are woken to choose a player: you learn their character."
@@ -118,8 +136,10 @@
"name": "Mayor",
"edition": "tb",
"team": "townsfolk",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "If only 3 players live & no execution occurs, your team wins. If you die at night, another player might die instead."
@@ -129,8 +149,10 @@
"name": "Slayer",
"edition": "tb",
"team": "townsfolk",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [
"Used"
],
@@ -142,8 +164,10 @@
"name": "Soldier",
"edition": "tb",
"team": "townsfolk",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "You are safe from the Demon."
@@ -153,8 +177,10 @@
"name": "Virgin",
"edition": "tb",
"team": "townsfolk",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [
"Used"
],
@@ -166,8 +192,10 @@
"name": "Butler",
"edition": "tb",
"team": "outsider",
- "firstNight": true,
- "otherNight": true,
+ "firstNight": 21,
+ "firstNightReminder": "",
+ "otherNight": 39,
+ "otherNightReminder": "",
"reminders": [
"Master"
],
@@ -179,8 +207,10 @@
"name": "Drunk",
"edition": "tb",
"team": "outsider",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [
"Drunk"
],
@@ -192,8 +222,10 @@
"name": "Recluse",
"edition": "tb",
"team": "outsider",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "You might register as evil and as a Minion or Demon, even if dead."
@@ -203,8 +235,10 @@
"name": "Saint",
"edition": "tb",
"team": "outsider",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "If you die by execution, your team loses."
@@ -214,8 +248,10 @@
"name": "Baron",
"edition": "tb",
"team": "minion",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": true,
"ability": "There are extra Outsiders in play. [+2 Outsiders]"
@@ -225,8 +261,10 @@
"name": "Poisoner",
"edition": "tb",
"team": "minion",
- "firstNight": true,
- "otherNight": true,
+ "firstNight": 4,
+ "firstNightReminder": "",
+ "otherNight": 3,
+ "otherNightReminder": "",
"reminders": [
"Poisoned"
],
@@ -238,8 +276,10 @@
"name": "Spy",
"edition": "tb",
"team": "minion",
- "firstNight": true,
- "otherNight": true,
+ "firstNight": 26,
+ "firstNightReminder": "",
+ "otherNight": 47,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"ability": "Each night, you see the Grimoire. You might register as good and as a Townsfolk or Outsider, even if dead."
@@ -249,8 +289,10 @@
"name": "Scarlet Woman",
"edition": "tb",
"team": "minion",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 13,
+ "otherNightReminder": "",
"reminders": [
"Demon"
],
@@ -262,8 +304,10 @@
"name": "Imp",
"edition": "tb",
"team": "demon",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 18,
+ "otherNightReminder": "",
"reminders": [
"Die"
],
@@ -273,9 +317,13 @@
{
"id": "grandmother",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Grandchild"],
+ "firstNight": 22,
+ "firstNightReminder": "",
+ "otherNight": 31,
+ "otherNightReminder": "",
+ "reminders": [
+ "Grandchild"
+ ],
"setup": false,
"name": "Grandmother",
"team": "townsfolk",
@@ -284,9 +332,13 @@
{
"id": "sailor",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Drunk"],
+ "firstNight": 3,
+ "firstNightReminder": "",
+ "otherNight": 2,
+ "otherNightReminder": "",
+ "reminders": [
+ "Drunk"
+ ],
"setup": false,
"name": "Sailor",
"team": "townsfolk",
@@ -295,8 +347,10 @@
{
"id": "chambermaid",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
+ "firstNight": 28,
+ "firstNightReminder": "",
+ "otherNight": 49,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Chambermaid",
@@ -306,9 +360,13 @@
{
"id": "exorcist",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Chosen"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 16,
+ "otherNightReminder": "",
+ "reminders": [
+ "Chosen"
+ ],
"setup": false,
"name": "Exorcist",
"team": "townsfolk",
@@ -317,9 +375,14 @@
{
"id": "innkeeper",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Protected", "Drunk"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 5,
+ "otherNightReminder": "",
+ "reminders": [
+ "Protected",
+ "Drunk"
+ ],
"setup": false,
"name": "Innkeeper",
"team": "townsfolk",
@@ -328,9 +391,13 @@
{
"id": "gambler",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 14,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die"
+ ],
"setup": false,
"name": "Gambler",
"team": "townsfolk",
@@ -339,9 +406,13 @@
{
"id": "gossip",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 28,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die"
+ ],
"setup": false,
"name": "Gossip",
"team": "townsfolk",
@@ -350,9 +421,16 @@
{
"id": "courtier",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Drunk 1", "Drunk 2", "Drunk 3", "Used"],
+ "firstNight": 7,
+ "firstNightReminder": "",
+ "otherNight": 6,
+ "otherNightReminder": "",
+ "reminders": [
+ "Drunk 1",
+ "Drunk 2",
+ "Drunk 3",
+ "Used"
+ ],
"setup": false,
"name": "Courtier",
"team": "townsfolk",
@@ -361,9 +439,14 @@
{
"id": "professor",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Alive", "Used"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 34,
+ "otherNightReminder": "",
+ "reminders": [
+ "Alive",
+ "Used"
+ ],
"setup": false,
"name": "Professor",
"team": "townsfolk",
@@ -372,9 +455,13 @@
{
"id": "minstrel",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Everyone drunk"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 1,
+ "otherNightReminder": "",
+ "reminders": [
+ "Everyone drunk"
+ ],
"setup": false,
"name": "Minstrel",
"team": "townsfolk",
@@ -383,9 +470,13 @@
{
"id": "tealady",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Protected"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Protected"
+ ],
"setup": false,
"name": "Tea Lady",
"team": "townsfolk",
@@ -394,8 +485,10 @@
{
"id": "pacifist",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Pacifist",
@@ -405,9 +498,13 @@
{
"id": "fool",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Used"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Used"
+ ],
"setup": false,
"name": "Fool",
"team": "townsfolk",
@@ -416,9 +513,13 @@
{
"id": "tinker",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 29,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die"
+ ],
"setup": false,
"name": "Tinker",
"team": "outsider",
@@ -427,9 +528,13 @@
{
"id": "moonchild",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 30,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die"
+ ],
"setup": false,
"name": "Moonchild",
"team": "outsider",
@@ -438,9 +543,13 @@
{
"id": "goon",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Drunk"],
+ "firstNight": 29,
+ "firstNightReminder": "",
+ "otherNight": 50,
+ "otherNightReminder": "",
+ "reminders": [
+ "Drunk"
+ ],
"setup": false,
"name": "Goon",
"team": "outsider",
@@ -449,9 +558,16 @@
{
"id": "lunatic",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Attack 1", "Attack 2", "Attack 3", "Decoy"],
+ "firstNight": 1,
+ "firstNightReminder": "",
+ "otherNight": 15,
+ "otherNightReminder": "",
+ "reminders": [
+ "Attack 1",
+ "Attack 2",
+ "Attack 3",
+ "Decoy"
+ ],
"setup": false,
"name": "Lunatic",
"team": "outsider",
@@ -460,9 +576,14 @@
{
"id": "godfather",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Died today", "Die"],
+ "firstNight": 9,
+ "firstNightReminder": "",
+ "otherNight": 32,
+ "otherNightReminder": "",
+ "reminders": [
+ "Died today",
+ "Die"
+ ],
"setup": true,
"name": "Godfather",
"team": "minion",
@@ -471,20 +592,29 @@
{
"id": "devilsadvocate",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Survives execution"],
+ "firstNight": 10,
+ "firstNightReminder": "",
+ "otherNight": 9,
+ "otherNightReminder": "",
+ "reminders": [
+ "Survives execution"
+ ],
"setup": false,
- "name": "Devils Advocate",
+ "name": "Devil's Advocate",
"team": "minion",
"ability": "Each night, choose a living player (not the same as last night): if executed tomorrow, they do not die."
},
{
"id": "assassin",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die", "Used"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 26,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die",
+ "Used"
+ ],
"setup": false,
"name": "Assassin",
"team": "minion",
@@ -493,8 +623,10 @@
{
"id": "mastermind",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Mastermind",
@@ -504,9 +636,16 @@
{
"id": "po",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die 1", "Die 2", "Die 3", "Attack x3"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 21,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die 1",
+ "Die 2",
+ "Die 3",
+ "Attack x3"
+ ],
"setup": false,
"name": "Po",
"team": "demon",
@@ -515,9 +654,14 @@
{
"id": "zombuul",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["No death today", "Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 19,
+ "otherNightReminder": "",
+ "reminders": [
+ "No death today",
+ "Die"
+ ],
"setup": false,
"name": "Zombuul",
"team": "demon",
@@ -526,9 +670,14 @@
{
"id": "pukka",
"edition": "bmr",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Poisoned", "Die"],
+ "firstNight": 14,
+ "firstNightReminder": "",
+ "otherNight": 17,
+ "otherNightReminder": "",
+ "reminders": [
+ "Poisoned",
+ "Die"
+ ],
"setup": false,
"name": "Pukka",
"team": "demon",
@@ -537,9 +686,15 @@
{
"id": "shabaloth",
"edition": "bmr",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die 1", "Die 2", "Alive"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 20,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die 1",
+ "Die 2",
+ "Alive"
+ ],
"setup": false,
"name": "Shabaloth",
"team": "demon",
@@ -548,8 +703,10 @@
{
"id": "clockmaker",
"edition": "snv",
- "firstNight": true,
- "otherNight": false,
+ "firstNight": 23,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Clockmaker",
@@ -559,8 +716,10 @@
{
"id": "dreamer",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
+ "firstNight": 24,
+ "firstNightReminder": "",
+ "otherNight": 41,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Dreamer",
@@ -570,9 +729,13 @@
{
"id": "snakecharmer",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Poisoned"],
+ "firstNight": 8,
+ "firstNightReminder": "",
+ "otherNight": 7,
+ "otherNightReminder": "",
+ "reminders": [
+ "Poisoned"
+ ],
"setup": false,
"name": "Snake Charmer",
"team": "townsfolk",
@@ -581,9 +744,13 @@
{
"id": "mathematician",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Abnormal effect"],
+ "firstNight": 27,
+ "firstNightReminder": "",
+ "otherNight": 48,
+ "otherNightReminder": "",
+ "reminders": [
+ "Abnormal effect"
+ ],
"setup": false,
"name": "Mathematician",
"team": "townsfolk",
@@ -592,9 +759,14 @@
{
"id": "flowergirl",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Demon did vote", "Demon did not vote"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 43,
+ "otherNightReminder": "",
+ "reminders": [
+ "Demon did vote",
+ "Demon did not vote"
+ ],
"setup": false,
"name": "Flowergirl",
"team": "townsfolk",
@@ -603,9 +775,14 @@
{
"id": "towncrier",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["No Minion nominated", "Minion nominated"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 44,
+ "otherNightReminder": "",
+ "reminders": [
+ "No Minion nominated",
+ "Minion nominated"
+ ],
"setup": false,
"name": "Town Crier",
"team": "townsfolk",
@@ -614,8 +791,10 @@
{
"id": "oracle",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 45,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Oracle",
@@ -625,8 +804,10 @@
{
"id": "savant",
"edition": "snv",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Savant",
@@ -636,9 +817,13 @@
{
"id": "seamstress",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Used"],
+ "firstNight": 25,
+ "firstNightReminder": "",
+ "otherNight": 42,
+ "otherNightReminder": "",
+ "reminders": [
+ "Used"
+ ],
"setup": false,
"name": "Seamstress",
"team": "townsfolk",
@@ -647,9 +832,14 @@
{
"id": "philosopher",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Used", "Drunk"],
+ "firstNight": 2,
+ "firstNightReminder": "",
+ "otherNight": 1.5,
+ "otherNightReminder": "",
+ "reminders": [
+ "Used",
+ "Drunk"
+ ],
"setup": false,
"name": "Philosopher",
"team": "townsfolk",
@@ -658,9 +848,13 @@
{
"id": "artist",
"edition": "snv",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Used"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Used"
+ ],
"setup": false,
"name": "Artist",
"team": "townsfolk",
@@ -669,9 +863,13 @@
{
"id": "juggler",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Correct"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 46,
+ "otherNightReminder": "",
+ "reminders": [
+ "Correct"
+ ],
"setup": false,
"name": "Juggler",
"team": "townsfolk",
@@ -680,8 +878,10 @@
{
"id": "sage",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 36,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Sage",
@@ -691,8 +891,10 @@
{
"id": "mutant",
"edition": "snv",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Mutant",
@@ -702,9 +904,13 @@
{
"id": "sweetheart",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Drunk"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 33,
+ "otherNightReminder": "",
+ "reminders": [
+ "Drunk"
+ ],
"setup": false,
"name": "Sweetheart",
"team": "outsider",
@@ -713,9 +919,13 @@
{
"id": "barber",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Swap"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 27,
+ "otherNightReminder": "",
+ "reminders": [
+ "Swap"
+ ],
"setup": false,
"name": "Barber",
"team": "outsider",
@@ -724,8 +934,10 @@
{
"id": "klutz",
"edition": "snv",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Klutz",
@@ -735,9 +947,13 @@
{
"id": "eviltwin",
"edition": "snv",
- "firstNight": true,
- "otherNight": false,
- "reminders": ["Twin"],
+ "firstNight": 11,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Twin"
+ ],
"setup": false,
"name": "Evil Twin",
"team": "minion",
@@ -746,9 +962,13 @@
{
"id": "witch",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Cursed"],
+ "firstNight": 12,
+ "firstNightReminder": "",
+ "otherNight": 10,
+ "otherNightReminder": "",
+ "reminders": [
+ "Cursed"
+ ],
"setup": false,
"name": "Witch",
"team": "minion",
@@ -757,9 +977,13 @@
{
"id": "cerenovus",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Mad"],
+ "firstNight": 13,
+ "firstNightReminder": "",
+ "otherNight": 11,
+ "otherNightReminder": "",
+ "reminders": [
+ "Mad"
+ ],
"setup": false,
"name": "Cerenovus",
"team": "minion",
@@ -768,8 +992,10 @@
{
"id": "pithag",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 12,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Pit Hag",
@@ -779,9 +1005,13 @@
{
"id": "fanggu",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 22,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die"
+ ],
"setup": true,
"name": "Fang Gu",
"team": "demon",
@@ -790,9 +1020,15 @@
{
"id": "vigormortis",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die", "Poisoned", "Ability active"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 25,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die",
+ "Poisoned",
+ "Ability active"
+ ],
"setup": true,
"name": "Vigormortis",
"team": "demon",
@@ -801,9 +1037,14 @@
{
"id": "nodashii",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die", "Poisoned"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 23,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die",
+ "Poisoned"
+ ],
"setup": false,
"name": "No Dashii",
"team": "demon",
@@ -812,9 +1053,13 @@
{
"id": "vortox",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 24,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die"
+ ],
"setup": false,
"name": "Vortox",
"team": "demon",
@@ -823,8 +1068,10 @@
{
"id": "scapegoat",
"edition": "tb",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Scapegoat",
@@ -834,8 +1081,10 @@
{
"id": "gunslinger",
"edition": "tb",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Gunslinger",
@@ -845,8 +1094,10 @@
{
"id": "beggar",
"edition": "tb",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Beggar",
@@ -856,9 +1107,13 @@
{
"id": "bureaucrat",
"edition": "tb",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Vote x3"],
+ "firstNight": 1,
+ "firstNightReminder": "",
+ "otherNight": 1,
+ "otherNightReminder": "",
+ "reminders": [
+ "Vote x3"
+ ],
"setup": false,
"name": "Bureaucrat",
"team": "traveler",
@@ -867,9 +1122,13 @@
{
"id": "thief",
"edition": "tb",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Negative vote"],
+ "firstNight": 1,
+ "firstNightReminder": "",
+ "otherNight": 1,
+ "otherNightReminder": "",
+ "reminders": [
+ "Negative vote"
+ ],
"setup": false,
"name": "Thief",
"team": "traveler",
@@ -878,9 +1137,13 @@
{
"id": "apprentice",
"edition": "bmr",
- "firstNight": true,
- "otherNight": false,
- "reminders": ["Apprentice ability"],
+ "firstNight": 1,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Apprentice ability"
+ ],
"setup": false,
"name": "Apprentice",
"team": "traveler",
@@ -889,8 +1152,10 @@
{
"id": "matron",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Matron",
@@ -900,8 +1165,10 @@
{
"id": "voudon",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Voudon",
@@ -911,9 +1178,13 @@
{
"id": "judge",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Used"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Used"
+ ],
"setup": false,
"name": "Judge",
"team": "traveler",
@@ -922,9 +1193,14 @@
{
"id": "bishop",
"edition": "bmr",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Nominate Good", "Nominate Evil"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Nominate Good",
+ "Nominate Evil"
+ ],
"setup": false,
"name": "Bishop",
"team": "traveler",
@@ -933,8 +1209,10 @@
{
"id": "butcher",
"edition": "snv",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Butcher",
@@ -944,9 +1222,14 @@
{
"id": "bonecollector",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Used", "Ability active"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 1,
+ "otherNightReminder": "",
+ "reminders": [
+ "Used",
+ "Ability active"
+ ],
"setup": false,
"name": "Bone Collector",
"team": "traveler",
@@ -955,9 +1238,13 @@
{
"id": "harlot",
"edition": "snv",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Die"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 1,
+ "otherNightReminder": "",
+ "reminders": [
+ "Die"
+ ],
"setup": false,
"name": "Harlot",
"team": "traveler",
@@ -966,9 +1253,14 @@
{
"id": "barista",
"edition": "snv",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Ability x2", "Healthy & Sober"],
+ "firstNight": 1,
+ "firstNightReminder": "",
+ "otherNight": 1,
+ "otherNightReminder": "",
+ "reminders": [
+ "Ability x2",
+ "Healthy & Sober"
+ ],
"setup": false,
"name": "Barista",
"team": "traveler",
@@ -977,8 +1269,10 @@
{
"id": "deviant",
"edition": "snv",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Deviant",
@@ -988,9 +1282,13 @@
{
"id": "balloonist",
"edition": "",
- "firstNight": true,
- "otherNight": true,
- "reminders": ["Seen"],
+ "firstNight": 24,
+ "firstNightReminder": "",
+ "otherNight": 44,
+ "otherNightReminder": "",
+ "reminders": [
+ "Seen"
+ ],
"setup": true,
"name": "Balloonist",
"team": "townsfolk",
@@ -999,8 +1297,10 @@
{
"id": "amnesiac",
"edition": "",
- "firstNight": false,
- "otherNight": false,
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
"reminders": [],
"setup": false,
"name": "Amnesiac",
@@ -1010,9 +1310,14 @@
{
"id": "cannibal",
"edition": "",
- "firstNight": false,
- "otherNight": true,
- "reminders": ["Ability gained", "Poisoned"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 43,
+ "otherNightReminder": "",
+ "reminders": [
+ "Ability gained",
+ "Poisoned"
+ ],
"setup": false,
"name": "Cannibal",
"team": "townsfolk",
@@ -1021,9 +1326,13 @@
{
"id": "fisherman",
"edition": "",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Used"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Used"
+ ],
"setup": false,
"name": "Fisherman",
"team": "townsfolk",
@@ -1032,9 +1341,13 @@
{
"id": "goblin",
"edition": "",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Claimed today"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Claimed today"
+ ],
"setup": false,
"name": "Goblin",
"team": "minion",
@@ -1043,9 +1356,14 @@
{
"id": "widow",
"edition": "",
- "firstNight": true,
- "otherNight": false,
- "reminders": ["Poisoned", "Knowing"],
+ "firstNight": 26,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Poisoned",
+ "Knowing"
+ ],
"setup": false,
"name": "Widow",
"team": "minion",
@@ -1054,9 +1372,18 @@
{
"id": "leviathan",
"edition": "",
- "firstNight": false,
- "otherNight": false,
- "reminders": ["Good executed", "Day 1", "Day 2", "Day 3", "Day 4", "Day 5"],
+ "firstNight": 0,
+ "firstNightReminder": "",
+ "otherNight": 0,
+ "otherNightReminder": "",
+ "reminders": [
+ "Good executed",
+ "Day 1",
+ "Day 2",
+ "Day 3",
+ "Day 4",
+ "Day 5"
+ ],
"setup": false,
"name": "Leviathan",
"team": "demon",