botc-character-sheet 0.15.0-beta.3 → 0.15.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -5,6 +5,6 @@ interface JinxesSectionProps {
|
|
|
5
5
|
allCharacters: ResolvedCharacter[];
|
|
6
6
|
fabledAndLoric: FabledOrLoric[];
|
|
7
7
|
}
|
|
8
|
-
export declare function JinxesAndSpecial({ jinxes, allCharacters, fabledAndLoric, }: JinxesSectionProps): import("preact").JSX.Element;
|
|
8
|
+
export declare function JinxesAndSpecial({ jinxes, allCharacters, fabledAndLoric, }: JinxesSectionProps): import("preact").JSX.Element | null;
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=JinxesAndSpecial.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JinxesAndSpecial.d.ts","sourceRoot":"","sources":["../../src/components/JinxesAndSpecial.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"JinxesAndSpecial.d.ts","sourceRoot":"","sources":["../../src/components/JinxesAndSpecial.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,uCA4EpB"}
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { options as
|
|
2
|
-
var
|
|
1
|
+
import { options as S, Fragment as u } from "preact";
|
|
2
|
+
var E = 0;
|
|
3
3
|
function e(i, t, a, r, n, h) {
|
|
4
4
|
t || (t = {});
|
|
5
|
-
var l,
|
|
6
|
-
if ("ref" in
|
|
7
|
-
var
|
|
8
|
-
if (typeof i == "function" && (l = i.defaultProps)) for (
|
|
9
|
-
return
|
|
5
|
+
var l, o, s = t;
|
|
6
|
+
if ("ref" in s) for (o in s = {}, t) o == "ref" ? l = t[o] : s[o] = t[o];
|
|
7
|
+
var d = { type: i, props: s, key: a, ref: l, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --E, __i: -1, __u: 0, __source: n, __self: h };
|
|
8
|
+
if (typeof i == "function" && (l = i.defaultProps)) for (o in l) s[o] === void 0 && (s[o] = l[o]);
|
|
9
|
+
return S.vnode && S.vnode(d), d;
|
|
10
10
|
}
|
|
11
|
-
function
|
|
11
|
+
function C(i) {
|
|
12
12
|
if (i.startsWith("#") && (i = i.slice(1)), i.length === 3 && (i = i.split("").map((n) => n + n).join("")), i.length !== 6)
|
|
13
13
|
throw new Error("Invalid HEX color.");
|
|
14
14
|
const t = parseInt(i.slice(0, 2), 16), a = parseInt(i.slice(2, 4), 16), r = parseInt(i.slice(4, 6), 16);
|
|
15
15
|
return [t, a, r];
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function z(i, t, a) {
|
|
18
18
|
const r = (n) => {
|
|
19
19
|
const h = n.toString(16);
|
|
20
20
|
return h.length === 1 ? "0" + h : h;
|
|
21
21
|
};
|
|
22
22
|
return `#${r(i)}${r(t)}${r(a)}`;
|
|
23
23
|
}
|
|
24
|
-
function
|
|
25
|
-
const [a, r, n] =
|
|
26
|
-
return
|
|
24
|
+
function R(i, t) {
|
|
25
|
+
const [a, r, n] = C(i), h = Math.round(a * t), l = Math.round(r * t), o = Math.round(n * t);
|
|
26
|
+
return z(h, l, o);
|
|
27
27
|
}
|
|
28
|
-
const
|
|
28
|
+
const p = {
|
|
29
29
|
townsfolk: "#00469e",
|
|
30
30
|
outsider: "#00469e",
|
|
31
31
|
minion: "#580709",
|
|
@@ -34,14 +34,14 @@ const f = {
|
|
|
34
34
|
traveller: "#390758ff",
|
|
35
35
|
loric: "#1f5807"
|
|
36
36
|
};
|
|
37
|
-
function
|
|
37
|
+
function k(i) {
|
|
38
38
|
return Array.isArray(i) ? i : [i];
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function A(i, t = 20) {
|
|
41
41
|
if (i.length === 0)
|
|
42
42
|
return "transparent";
|
|
43
43
|
if (i.length === 1) {
|
|
44
|
-
const r =
|
|
44
|
+
const r = R(i[0], 0.4);
|
|
45
45
|
return `linear-gradient(${t}deg, ${i[0]} 50%, ${r})`;
|
|
46
46
|
}
|
|
47
47
|
const a = i.map((r, n) => {
|
|
@@ -50,8 +50,8 @@ function D(i, t = 20) {
|
|
|
50
50
|
}).join(", ");
|
|
51
51
|
return `linear-gradient(${t}deg, ${a})`;
|
|
52
52
|
}
|
|
53
|
-
function
|
|
54
|
-
const a =
|
|
53
|
+
function j(i, t = 90) {
|
|
54
|
+
const a = k(i);
|
|
55
55
|
if (a.length === 1)
|
|
56
56
|
return a[0];
|
|
57
57
|
const r = a.map((n, h) => {
|
|
@@ -60,46 +60,58 @@ function I(i, t = 90) {
|
|
|
60
60
|
}).join(", ");
|
|
61
61
|
return `linear-gradient(${t}deg, ${r})`;
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function H({
|
|
64
64
|
jinxes: i,
|
|
65
65
|
allCharacters: t,
|
|
66
66
|
fabledAndLoric: a
|
|
67
67
|
}) {
|
|
68
68
|
const r = new Map(
|
|
69
|
-
t.map((
|
|
70
|
-
), n = i.length >
|
|
71
|
-
let
|
|
72
|
-
|
|
69
|
+
t.map((m) => [m.id.toLowerCase(), m])
|
|
70
|
+
), n = i.length > 0 && a.length > 0, h = i.length > 0 && a.length === 0, l = i.length === 0 && a.length > 0, o = [...i, ...a], s = n || i.length > 4 || a.length > 4, d = s ? Math.ceil(o.length / 2) : o.length;
|
|
71
|
+
let c, y;
|
|
72
|
+
if (n)
|
|
73
|
+
c = i.map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `lc-${g}`)), y = a.map((m, g) => /* @__PURE__ */ e(x, { item: m }, `rc-${g}`));
|
|
74
|
+
else if (h && s)
|
|
75
|
+
c = i.slice(0, d).map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `lc-${g}`)), y = i.slice(d).map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `rc-${g}`));
|
|
76
|
+
else if (l && s)
|
|
77
|
+
c = a.slice(0, d).map((m, g) => /* @__PURE__ */ e(x, { item: m }, `lc-${g}`)), y = a.slice(d).map((m, g) => /* @__PURE__ */ e(x, { item: m }, `rc-${g}`));
|
|
78
|
+
else if (h)
|
|
79
|
+
c = i.map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `lc-${g}`));
|
|
80
|
+
else if (l)
|
|
81
|
+
c = a.map((m, g) => /* @__PURE__ */ e(x, { item: m }, `lc-${g}`));
|
|
82
|
+
else
|
|
83
|
+
return null;
|
|
84
|
+
return /* @__PURE__ */ e("div", { className: "jinxes-section", children: [
|
|
73
85
|
/* @__PURE__ */ e("h2", { className: "section-title" }),
|
|
74
|
-
|
|
86
|
+
y ? /* @__PURE__ */ e("div", { className: "jinxes-list jinxes-two-columns", children: [
|
|
75
87
|
/* @__PURE__ */ e("div", { className: "jinx-column", children: [
|
|
76
|
-
...
|
|
88
|
+
...c
|
|
77
89
|
] }),
|
|
78
90
|
/* @__PURE__ */ e("div", { className: "jinx-column", children: [
|
|
79
|
-
...
|
|
91
|
+
...y
|
|
80
92
|
] })
|
|
81
93
|
] }) : /* @__PURE__ */ e("div", { className: "jinxes-list", children: [
|
|
82
|
-
...
|
|
94
|
+
...c
|
|
83
95
|
] })
|
|
84
96
|
] });
|
|
85
97
|
}
|
|
86
|
-
const
|
|
98
|
+
const b = ({ charMap: i, jinx: t }) => {
|
|
87
99
|
const a = i.get(t.characters[0]), r = i.get(t.characters[1]);
|
|
88
100
|
return /* @__PURE__ */ e("div", { className: "jinx-item", children: [
|
|
89
101
|
/* @__PURE__ */ e("div", { className: "jinx-icons", children: [
|
|
90
|
-
a && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children:
|
|
102
|
+
a && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: v(a) ? /* @__PURE__ */ e(
|
|
91
103
|
"img",
|
|
92
104
|
{
|
|
93
|
-
src:
|
|
105
|
+
src: v(a),
|
|
94
106
|
alt: a.name,
|
|
95
107
|
className: "jinx-icon"
|
|
96
108
|
}
|
|
97
109
|
) : /* @__PURE__ */ e("div", { className: "jinx-icon-placeholder", children: a.name.charAt(0) }) }),
|
|
98
110
|
/* @__PURE__ */ e("span", { className: "jinx-divider" }),
|
|
99
|
-
r && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children:
|
|
111
|
+
r && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: v(r) ? /* @__PURE__ */ e(
|
|
100
112
|
"img",
|
|
101
113
|
{
|
|
102
|
-
src:
|
|
114
|
+
src: v(r),
|
|
103
115
|
alt: r.name,
|
|
104
116
|
className: "jinx-icon"
|
|
105
117
|
}
|
|
@@ -108,7 +120,7 @@ const p = ({ charMap: i, jinx: t }) => {
|
|
|
108
120
|
/* @__PURE__ */ e("p", { className: "jinx-text", children: t.jinx })
|
|
109
121
|
] });
|
|
110
122
|
};
|
|
111
|
-
function
|
|
123
|
+
function x({ item: i }) {
|
|
112
124
|
return /* @__PURE__ */ e("div", { className: "jinx-item loric", children: [
|
|
113
125
|
/* @__PURE__ */ e("div", { className: "loric-spacer" }),
|
|
114
126
|
i.image ? /* @__PURE__ */ e("img", { src: i.image, alt: i.name, className: "jinx-icon loric" }) : /* @__PURE__ */ e("div", { className: "jinx-icon-placeholder", children: i.name.charAt(0) }),
|
|
@@ -118,10 +130,10 @@ function _({ item: i }) {
|
|
|
118
130
|
] })
|
|
119
131
|
] });
|
|
120
132
|
}
|
|
121
|
-
function
|
|
133
|
+
function v(i) {
|
|
122
134
|
return i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null;
|
|
123
135
|
}
|
|
124
|
-
const
|
|
136
|
+
const _ = [
|
|
125
137
|
{
|
|
126
138
|
characters: [
|
|
127
139
|
"alchemist",
|
|
@@ -190,6 +202,13 @@ const H = [
|
|
|
190
202
|
jinx: "If the Princess nominated & executed a player on their 1st day, no one dies to the Al-Hadikhia tonight.",
|
|
191
203
|
oldJinx: "If the Princess nominated & executed a player on their 1st day, no one dies to the Al-Hadikhia ability tonight."
|
|
192
204
|
},
|
|
205
|
+
{
|
|
206
|
+
characters: [
|
|
207
|
+
"alhadikhia",
|
|
208
|
+
"mastermind"
|
|
209
|
+
],
|
|
210
|
+
jinx: "If the Al-Hadikhia dies by execution, and the Mastermind is alive, the Al-Hadikhia chooses 3 good players tonight: if all 3 choose to live, evil wins. Otherwise, good wins."
|
|
211
|
+
},
|
|
193
212
|
{
|
|
194
213
|
characters: [
|
|
195
214
|
"boffin",
|
|
@@ -1093,7 +1112,7 @@ const H = [
|
|
|
1093
1112
|
oldJinx: "If the Exorcist chooses the Yaggababble, the Yaggababble ability does not kill tonight."
|
|
1094
1113
|
}
|
|
1095
1114
|
];
|
|
1096
|
-
function
|
|
1115
|
+
function B(i) {
|
|
1097
1116
|
const t = {
|
|
1098
1117
|
townsfolk: [],
|
|
1099
1118
|
outsider: [],
|
|
@@ -1111,9 +1130,9 @@ function G(i) {
|
|
|
1111
1130
|
}
|
|
1112
1131
|
return t;
|
|
1113
1132
|
}
|
|
1114
|
-
function
|
|
1133
|
+
function G(i, t = !1) {
|
|
1115
1134
|
const a = new Set(i.map((n) => n.id.toLowerCase())), r = [];
|
|
1116
|
-
for (const n of
|
|
1135
|
+
for (const n of _) {
|
|
1117
1136
|
const [h, l] = n.characters;
|
|
1118
1137
|
a.has(h) && a.has(l) && (t && n.oldJinx ? r.push({
|
|
1119
1138
|
characters: n.characters,
|
|
@@ -1127,25 +1146,25 @@ function B(i, t = !1) {
|
|
|
1127
1146
|
const h = typeof n == "object" && n !== null, l = "jinxes" in n;
|
|
1128
1147
|
if (!h || !l) continue;
|
|
1129
1148
|
console.log("char.jinxes:", n.jinxes);
|
|
1130
|
-
const
|
|
1131
|
-
if (a.has(
|
|
1132
|
-
for (const
|
|
1133
|
-
const
|
|
1134
|
-
if (console.log(`${n.id} is jinxed with ${
|
|
1149
|
+
const o = n, s = o.id.toLowerCase();
|
|
1150
|
+
if (a.has(s) && o.jinxes)
|
|
1151
|
+
for (const d of o.jinxes) {
|
|
1152
|
+
const c = d.id.toLowerCase();
|
|
1153
|
+
if (console.log(`${n.id} is jinxed with ${c}`), a.has(c) || (console.log("characterIds doesnt contain charId", c), console.log("characterIds:", a)), a.has(c)) {
|
|
1135
1154
|
const y = r.some(
|
|
1136
|
-
(
|
|
1155
|
+
(m) => m.characters[0] === s && m.characters[1] === c || m.characters[0] === c && m.characters[1] === s
|
|
1137
1156
|
);
|
|
1138
1157
|
console.log("Jinx already exists:", y), y || r.push({
|
|
1139
|
-
characters: [
|
|
1140
|
-
jinx:
|
|
1158
|
+
characters: [s, c],
|
|
1159
|
+
jinx: d.reason
|
|
1141
1160
|
});
|
|
1142
1161
|
}
|
|
1143
1162
|
}
|
|
1144
1163
|
}
|
|
1145
1164
|
return r;
|
|
1146
1165
|
}
|
|
1147
|
-
const
|
|
1148
|
-
function
|
|
1166
|
+
const N = (i) => i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null;
|
|
1167
|
+
function M(i, t, a) {
|
|
1149
1168
|
const r = [];
|
|
1150
1169
|
return t.forEach((n) => {
|
|
1151
1170
|
n.characters[0] === i.id ? r.push(n.characters[1]) : n.characters[1] === i.id && r.push(n.characters[0]);
|
|
@@ -1161,45 +1180,45 @@ function $({
|
|
|
1161
1180
|
jinxes: n = [],
|
|
1162
1181
|
showSwirls: h = !0,
|
|
1163
1182
|
includeMargins: l = !1,
|
|
1164
|
-
solidTitle:
|
|
1165
|
-
iconScale:
|
|
1166
|
-
appearance:
|
|
1167
|
-
fabledOrLoric:
|
|
1183
|
+
solidTitle: o = !1,
|
|
1184
|
+
iconScale: s = 1.6,
|
|
1185
|
+
appearance: d = "normal",
|
|
1186
|
+
fabledOrLoric: c = [],
|
|
1168
1187
|
inlineJinxIcons: y = !1
|
|
1169
1188
|
}) {
|
|
1170
|
-
const
|
|
1189
|
+
const m = [
|
|
1171
1190
|
{
|
|
1172
1191
|
key: "townsfolk",
|
|
1173
1192
|
title: "Townsfolk",
|
|
1174
1193
|
chars: a.townsfolk,
|
|
1175
|
-
color:
|
|
1194
|
+
color: p.townsfolk
|
|
1176
1195
|
},
|
|
1177
1196
|
{
|
|
1178
1197
|
key: "outsider",
|
|
1179
1198
|
title: "Outsiders",
|
|
1180
1199
|
chars: a.outsider,
|
|
1181
|
-
color:
|
|
1200
|
+
color: p.outsider
|
|
1182
1201
|
},
|
|
1183
1202
|
{
|
|
1184
1203
|
key: "minion",
|
|
1185
1204
|
title: "Minions",
|
|
1186
1205
|
chars: a.minion,
|
|
1187
|
-
color:
|
|
1206
|
+
color: p.minion
|
|
1188
1207
|
},
|
|
1189
1208
|
{
|
|
1190
1209
|
key: "demon",
|
|
1191
1210
|
title: "Demons",
|
|
1192
1211
|
chars: a.demon,
|
|
1193
|
-
color:
|
|
1212
|
+
color: p.demon
|
|
1194
1213
|
}
|
|
1195
|
-
].filter((
|
|
1214
|
+
].filter((f) => f.chars.length > 0), g = k(r), O = A(g, 20), P = ["character-sheet", d !== "normal" ? `appearance-${d}` : ""].filter(Boolean).join(" ");
|
|
1196
1215
|
return /* @__PURE__ */ e(
|
|
1197
1216
|
"div",
|
|
1198
1217
|
{
|
|
1199
1218
|
className: P,
|
|
1200
1219
|
id: "character-sheet",
|
|
1201
1220
|
style: {
|
|
1202
|
-
"--header-gradient":
|
|
1221
|
+
"--header-gradient": O,
|
|
1203
1222
|
transform: l ? "scale(0.952)" : void 0
|
|
1204
1223
|
},
|
|
1205
1224
|
children: [
|
|
@@ -1218,18 +1237,18 @@ function $({
|
|
|
1218
1237
|
showSwirls: h,
|
|
1219
1238
|
title: i,
|
|
1220
1239
|
author: t,
|
|
1221
|
-
solidHeader:
|
|
1240
|
+
solidHeader: o
|
|
1222
1241
|
}
|
|
1223
1242
|
),
|
|
1224
1243
|
/* @__PURE__ */ e("div", { className: "characters-grid", children: [
|
|
1225
|
-
|
|
1244
|
+
m.map((f, W) => /* @__PURE__ */ e(u, { children: [
|
|
1226
1245
|
/* @__PURE__ */ e(
|
|
1227
1246
|
U,
|
|
1228
1247
|
{
|
|
1229
|
-
title:
|
|
1230
|
-
characters:
|
|
1231
|
-
charNameColor:
|
|
1232
|
-
iconScale:
|
|
1248
|
+
title: f.title.toUpperCase(),
|
|
1249
|
+
characters: f.chars,
|
|
1250
|
+
charNameColor: f.color,
|
|
1251
|
+
iconScale: s,
|
|
1233
1252
|
jinxes: n,
|
|
1234
1253
|
allCharacters: [
|
|
1235
1254
|
...a.townsfolk,
|
|
@@ -1239,16 +1258,16 @@ function $({
|
|
|
1239
1258
|
],
|
|
1240
1259
|
inlineJinxIcons: y
|
|
1241
1260
|
},
|
|
1242
|
-
|
|
1261
|
+
f.key
|
|
1243
1262
|
),
|
|
1244
|
-
W <
|
|
1263
|
+
W < m.length - 1 && /* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" })
|
|
1245
1264
|
] })),
|
|
1246
|
-
(n.length > 0 ||
|
|
1265
|
+
(n.length > 0 || c.length > 0) && /* @__PURE__ */ e(u, { children: [
|
|
1247
1266
|
/* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" }),
|
|
1248
1267
|
/* @__PURE__ */ e(
|
|
1249
|
-
|
|
1268
|
+
H,
|
|
1250
1269
|
{
|
|
1251
|
-
fabledAndLoric:
|
|
1270
|
+
fabledAndLoric: c,
|
|
1252
1271
|
jinxes: n,
|
|
1253
1272
|
allCharacters: [
|
|
1254
1273
|
...a.townsfolk,
|
|
@@ -1279,7 +1298,7 @@ function V({
|
|
|
1279
1298
|
author: a,
|
|
1280
1299
|
solidHeader: r = !1
|
|
1281
1300
|
}) {
|
|
1282
|
-
return /* @__PURE__ */ e(
|
|
1301
|
+
return /* @__PURE__ */ e(u, { children: [
|
|
1283
1302
|
/* @__PURE__ */ e("h1", { className: "sheet-header", children: [
|
|
1284
1303
|
i && /* @__PURE__ */ e(
|
|
1285
1304
|
"img",
|
|
@@ -1312,7 +1331,7 @@ function V({
|
|
|
1312
1331
|
] });
|
|
1313
1332
|
}
|
|
1314
1333
|
function F({ color: i }) {
|
|
1315
|
-
const t =
|
|
1334
|
+
const t = j(i, 180);
|
|
1316
1335
|
return /* @__PURE__ */ e("div", { className: "sidebar-container", children: [
|
|
1317
1336
|
/* @__PURE__ */ e("div", { className: "sidebar-background" }),
|
|
1318
1337
|
/* @__PURE__ */ e(
|
|
@@ -1333,53 +1352,53 @@ function U({
|
|
|
1333
1352
|
allCharacters: h,
|
|
1334
1353
|
inlineJinxIcons: l
|
|
1335
1354
|
}) {
|
|
1336
|
-
const
|
|
1355
|
+
const o = t.length > 8 ? "space-between" : t.length % 2 === 0 ? "space-around" : "flex-start";
|
|
1337
1356
|
return /* @__PURE__ */ e("div", { className: "character-section", children: [
|
|
1338
1357
|
/* @__PURE__ */ e("h2", { className: "section-title", children: i }),
|
|
1339
1358
|
/* @__PURE__ */ e("div", { className: "character-list", children: [
|
|
1340
|
-
/* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent:
|
|
1341
|
-
|
|
1359
|
+
/* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: o }, children: t.slice(0, Math.ceil(t.length / 2)).map((s) => /* @__PURE__ */ e(
|
|
1360
|
+
J,
|
|
1342
1361
|
{
|
|
1343
|
-
character:
|
|
1362
|
+
character: s,
|
|
1344
1363
|
color: a,
|
|
1345
1364
|
iconScale: r,
|
|
1346
|
-
jinxedCharacters:
|
|
1365
|
+
jinxedCharacters: M(s, n, h),
|
|
1347
1366
|
inlineJinxIcons: l
|
|
1348
1367
|
},
|
|
1349
|
-
|
|
1368
|
+
s.id
|
|
1350
1369
|
)) }),
|
|
1351
|
-
/* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent:
|
|
1352
|
-
|
|
1370
|
+
/* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: o }, children: t.slice(Math.ceil(t.length / 2), t.length).map((s) => /* @__PURE__ */ e(
|
|
1371
|
+
J,
|
|
1353
1372
|
{
|
|
1354
|
-
character:
|
|
1373
|
+
character: s,
|
|
1355
1374
|
color: a,
|
|
1356
1375
|
iconScale: r,
|
|
1357
|
-
jinxedCharacters:
|
|
1376
|
+
jinxedCharacters: M(s, n, h),
|
|
1358
1377
|
inlineJinxIcons: l
|
|
1359
1378
|
},
|
|
1360
|
-
|
|
1379
|
+
s.id
|
|
1361
1380
|
)) })
|
|
1362
1381
|
] })
|
|
1363
1382
|
] });
|
|
1364
1383
|
}
|
|
1365
|
-
function
|
|
1384
|
+
function J({
|
|
1366
1385
|
character: i,
|
|
1367
1386
|
color: t,
|
|
1368
1387
|
iconScale: a,
|
|
1369
1388
|
jinxedCharacters: r,
|
|
1370
1389
|
inlineJinxIcons: n
|
|
1371
1390
|
}) {
|
|
1372
|
-
const h = (
|
|
1373
|
-
const
|
|
1374
|
-
if (
|
|
1375
|
-
const [,
|
|
1376
|
-
return /* @__PURE__ */ e(
|
|
1377
|
-
|
|
1378
|
-
/* @__PURE__ */ e("strong", { className: "setup-ability", children:
|
|
1391
|
+
const h = (o) => {
|
|
1392
|
+
const s = o.match(/^(.*?)(\[.*?\])$/);
|
|
1393
|
+
if (s) {
|
|
1394
|
+
const [, d, c] = s;
|
|
1395
|
+
return /* @__PURE__ */ e(u, { children: [
|
|
1396
|
+
d,
|
|
1397
|
+
/* @__PURE__ */ e("strong", { className: "setup-ability", children: c })
|
|
1379
1398
|
] });
|
|
1380
1399
|
}
|
|
1381
|
-
return
|
|
1382
|
-
}, l =
|
|
1400
|
+
return o;
|
|
1401
|
+
}, l = N(i);
|
|
1383
1402
|
return /* @__PURE__ */ e("div", { className: "character-card", children: [
|
|
1384
1403
|
/* @__PURE__ */ e("div", { className: "character-icon-wrapper", children: l ? /* @__PURE__ */ e(
|
|
1385
1404
|
"img",
|
|
@@ -1400,25 +1419,25 @@ function N({
|
|
|
1400
1419
|
/* @__PURE__ */ e("div", { className: "character-info", children: [
|
|
1401
1420
|
/* @__PURE__ */ e("h3", { className: "character-name", style: { color: t }, children: [
|
|
1402
1421
|
i.name,
|
|
1403
|
-
n && r.length > 0 && /* @__PURE__ */ e("span", { className: "inline-jinx-icons", children: r.map((
|
|
1404
|
-
const
|
|
1405
|
-
return
|
|
1422
|
+
n && r.length > 0 && /* @__PURE__ */ e("span", { className: "inline-jinx-icons", children: r.map((o) => {
|
|
1423
|
+
const s = N(o);
|
|
1424
|
+
return s ? /* @__PURE__ */ e(
|
|
1406
1425
|
"img",
|
|
1407
1426
|
{
|
|
1408
|
-
src:
|
|
1409
|
-
alt:
|
|
1427
|
+
src: s,
|
|
1428
|
+
alt: o.name,
|
|
1410
1429
|
className: "inline-jinx-icon",
|
|
1411
|
-
title: `Jinxed with ${
|
|
1430
|
+
title: `Jinxed with ${o.name}`
|
|
1412
1431
|
},
|
|
1413
|
-
|
|
1432
|
+
o.id
|
|
1414
1433
|
) : /* @__PURE__ */ e(
|
|
1415
1434
|
"span",
|
|
1416
1435
|
{
|
|
1417
1436
|
className: "inline-jinx-icon-placeholder",
|
|
1418
|
-
title: `Jinxed with ${
|
|
1419
|
-
children:
|
|
1437
|
+
title: `Jinxed with ${o.name}`,
|
|
1438
|
+
children: o.name.charAt(0)
|
|
1420
1439
|
},
|
|
1421
|
-
|
|
1440
|
+
o.id
|
|
1422
1441
|
);
|
|
1423
1442
|
}) })
|
|
1424
1443
|
] }),
|
|
@@ -1426,7 +1445,7 @@ function N({
|
|
|
1426
1445
|
] })
|
|
1427
1446
|
] });
|
|
1428
1447
|
}
|
|
1429
|
-
const
|
|
1448
|
+
const D = /* @__PURE__ */ new Set([
|
|
1430
1449
|
"the",
|
|
1431
1450
|
"of",
|
|
1432
1451
|
"in",
|
|
@@ -1446,21 +1465,21 @@ const M = /* @__PURE__ */ new Set([
|
|
|
1446
1465
|
"upon",
|
|
1447
1466
|
"after",
|
|
1448
1467
|
"before"
|
|
1449
|
-
]),
|
|
1450
|
-
const h =
|
|
1468
|
+
]), w = (i, t) => D.has(i) || t === 0 && D.has(i.toLowerCase()), Y = (i) => i.split(/\s+/).reduce((t, a, r, n) => {
|
|
1469
|
+
const h = w(a, r), l = r > 0 && w(n[r - 1], r - 1);
|
|
1451
1470
|
if (r === 0 || h !== l) {
|
|
1452
|
-
const
|
|
1453
|
-
for (let
|
|
1454
|
-
|
|
1455
|
-
const
|
|
1471
|
+
const s = [];
|
|
1472
|
+
for (let c = r; c < n.length && w(n[c], c) === h; c++)
|
|
1473
|
+
s.push(n[c]);
|
|
1474
|
+
const d = t.length > 0;
|
|
1456
1475
|
t.push(
|
|
1457
1476
|
/* @__PURE__ */ e(
|
|
1458
1477
|
"span",
|
|
1459
1478
|
{
|
|
1460
1479
|
className: h ? "minor-word" : void 0,
|
|
1461
1480
|
children: [
|
|
1462
|
-
|
|
1463
|
-
|
|
1481
|
+
d && " ",
|
|
1482
|
+
s.join(" ")
|
|
1464
1483
|
]
|
|
1465
1484
|
},
|
|
1466
1485
|
r
|
|
@@ -1469,7 +1488,7 @@ const M = /* @__PURE__ */ new Set([
|
|
|
1469
1488
|
}
|
|
1470
1489
|
return t;
|
|
1471
1490
|
}, []);
|
|
1472
|
-
function
|
|
1491
|
+
function I(i) {
|
|
1473
1492
|
return typeof i == "string" ? i === "dawn" ? "/images/dawn-icon.png" : i === "dusk" ? "/images/dusk-icon.png" : i === "minioninfo" ? "/images/minioninfo.png" : "/images/demoninfo.png" : typeof i.image == "string" ? i.image : Array.isArray(i.image) && i.image.length ? i.image[0] : i.wiki_image;
|
|
1474
1493
|
}
|
|
1475
1494
|
const Z = (i) => {
|
|
@@ -1477,11 +1496,11 @@ const Z = (i) => {
|
|
|
1477
1496
|
return /* @__PURE__ */ e("div", { class: "night-orders-container", children: [
|
|
1478
1497
|
/* @__PURE__ */ e("div", { class: "night-order", children: [
|
|
1479
1498
|
/* @__PURE__ */ e("p", { children: "First Night:" }),
|
|
1480
|
-
/* @__PURE__ */ e("div", { class: "icon-row", children: t.map((r) => /* @__PURE__ */ e("img", { src:
|
|
1499
|
+
/* @__PURE__ */ e("div", { class: "icon-row", children: t.map((r) => /* @__PURE__ */ e("img", { src: I(r), class: "icon" })) })
|
|
1481
1500
|
] }),
|
|
1482
1501
|
/* @__PURE__ */ e("div", { class: "night-order", children: [
|
|
1483
1502
|
/* @__PURE__ */ e("p", { children: "Other Nights:" }),
|
|
1484
|
-
/* @__PURE__ */ e("div", { class: "icon-row", children: a.map((r) => /* @__PURE__ */ e("img", { src:
|
|
1503
|
+
/* @__PURE__ */ e("div", { class: "icon-row", children: a.map((r) => /* @__PURE__ */ e("img", { src: I(r), class: "icon" })) })
|
|
1485
1504
|
] })
|
|
1486
1505
|
] });
|
|
1487
1506
|
}, K = {
|
|
@@ -1496,7 +1515,7 @@ const Z = (i) => {
|
|
|
1496
1515
|
13: [9, 0, 3, 1],
|
|
1497
1516
|
14: [9, 1, 3, 1],
|
|
1498
1517
|
"15+": [9, 2, 3, 1]
|
|
1499
|
-
}, q = () => /* @__PURE__ */ e(
|
|
1518
|
+
}, q = () => /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e("div", { className: "player-count-container", children: [
|
|
1500
1519
|
/* @__PURE__ */ e("div", { className: "count-column titles", children: [
|
|
1501
1520
|
/* @__PURE__ */ e("div", { className: "row-title", children: "Players" }),
|
|
1502
1521
|
/* @__PURE__ */ e("div", { className: "row-title good-count", children: "Townsfolk" }),
|
|
@@ -1520,13 +1539,13 @@ const Z = (i) => {
|
|
|
1520
1539
|
nightOrders: h = { first: [], other: [] },
|
|
1521
1540
|
displayPlayerCounts: l = !0
|
|
1522
1541
|
}) => {
|
|
1523
|
-
const
|
|
1524
|
-
const
|
|
1525
|
-
return
|
|
1526
|
-
r ? Y(
|
|
1527
|
-
y <
|
|
1542
|
+
const o = () => {
|
|
1543
|
+
const d = i.split("&");
|
|
1544
|
+
return d.map((c, y) => /* @__PURE__ */ e(u, { children: [
|
|
1545
|
+
r ? Y(c) : c,
|
|
1546
|
+
y < d.length - 1 && /* @__PURE__ */ e("span", { className: "ampersand", children: "&" })
|
|
1528
1547
|
] }));
|
|
1529
|
-
},
|
|
1548
|
+
}, s = j(t, 180);
|
|
1530
1549
|
return /* @__PURE__ */ e(
|
|
1531
1550
|
"div",
|
|
1532
1551
|
{
|
|
@@ -1535,12 +1554,12 @@ const Z = (i) => {
|
|
|
1535
1554
|
transform: a ? "scale(0.952)" : void 0
|
|
1536
1555
|
},
|
|
1537
1556
|
children: [
|
|
1538
|
-
/* @__PURE__ */ e("div", { className: "sheet-background", children: /* @__PURE__ */ e("div", { className: "title-container", children: /* @__PURE__ */ e("h1", { children:
|
|
1557
|
+
/* @__PURE__ */ e("div", { className: "sheet-background", children: /* @__PURE__ */ e("div", { className: "title-container", children: /* @__PURE__ */ e("h1", { children: o() }) }) }),
|
|
1539
1558
|
/* @__PURE__ */ e(
|
|
1540
1559
|
"div",
|
|
1541
1560
|
{
|
|
1542
1561
|
className: "sheet-back-overlay",
|
|
1543
|
-
style: { background:
|
|
1562
|
+
style: { background: s }
|
|
1544
1563
|
}
|
|
1545
1564
|
),
|
|
1546
1565
|
/* @__PURE__ */ e("div", { className: "back-info-container", children: [
|
|
@@ -1550,24 +1569,24 @@ const Z = (i) => {
|
|
|
1550
1569
|
]
|
|
1551
1570
|
}
|
|
1552
1571
|
);
|
|
1553
|
-
}, Q = (i) => /* @__PURE__ */ e(
|
|
1554
|
-
/* @__PURE__ */ e(
|
|
1572
|
+
}, Q = (i) => /* @__PURE__ */ e(u, { children: [
|
|
1573
|
+
/* @__PURE__ */ e(L, { ...i, children: [
|
|
1555
1574
|
/* @__PURE__ */ e("div", { className: "night-sheet-heading", children: [
|
|
1556
1575
|
/* @__PURE__ */ e("h3", { className: "night-title", children: "First Night" }),
|
|
1557
1576
|
/* @__PURE__ */ e("h3", { className: "script-title", children: i.title })
|
|
1558
1577
|
] }),
|
|
1559
|
-
/* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.firstNightOrder.map((t) => /* @__PURE__ */ e(
|
|
1578
|
+
/* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.firstNightOrder.map((t) => /* @__PURE__ */ e(T, { entry: t, night: "first" })) })
|
|
1560
1579
|
] }),
|
|
1561
|
-
/* @__PURE__ */ e(
|
|
1580
|
+
/* @__PURE__ */ e(L, { ...i, children: [
|
|
1562
1581
|
/* @__PURE__ */ e("div", { className: "night-sheet-heading", children: [
|
|
1563
1582
|
/* @__PURE__ */ e("h3", { className: "night-title", children: "Other Nights" }),
|
|
1564
1583
|
/* @__PURE__ */ e("h3", { className: "script-title", children: i.title })
|
|
1565
1584
|
] }),
|
|
1566
|
-
/* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.otherNightOrder.map((t) => /* @__PURE__ */ e(
|
|
1585
|
+
/* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.otherNightOrder.map((t) => /* @__PURE__ */ e(T, { entry: t, night: "other" })) })
|
|
1567
1586
|
] })
|
|
1568
|
-
] }),
|
|
1569
|
-
const t =
|
|
1570
|
-
return /* @__PURE__ */ e(
|
|
1587
|
+
] }), L = (i) => {
|
|
1588
|
+
const t = k(i.color), a = A(t, 20), r = j(i.color, 180);
|
|
1589
|
+
return /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(
|
|
1571
1590
|
"div",
|
|
1572
1591
|
{
|
|
1573
1592
|
className: "night-sheet",
|
|
@@ -1602,18 +1621,18 @@ const Z = (i) => {
|
|
|
1602
1621
|
]
|
|
1603
1622
|
}
|
|
1604
1623
|
) });
|
|
1605
|
-
}, ee = () => /* @__PURE__ */ e("img", { className: "reminder-icon", src: "/images/reminder.png" }),
|
|
1606
|
-
const t =
|
|
1624
|
+
}, ee = () => /* @__PURE__ */ e("img", { className: "reminder-icon", src: "/images/reminder.png" }), T = (i) => {
|
|
1625
|
+
const t = I(i.entry), { reminderText: a, name: r } = ie(i.entry, i.night), n = typeof i.entry == "string" ? "#222" : p[i.entry.team];
|
|
1607
1626
|
if (!a)
|
|
1608
|
-
return console.warn("No reminder text found for:", i.entry), /* @__PURE__ */ e(
|
|
1609
|
-
const h = (
|
|
1627
|
+
return console.warn("No reminder text found for:", i.entry), /* @__PURE__ */ e(u, {});
|
|
1628
|
+
const h = (o) => o.split(":reminder:").map((s, d) => d % 2 === 0 ? s : /* @__PURE__ */ e(ee, {}));
|
|
1610
1629
|
return /* @__PURE__ */ e("div", { className: "night-sheet-entry", children: [
|
|
1611
1630
|
/* @__PURE__ */ e("img", { src: t }),
|
|
1612
1631
|
/* @__PURE__ */ e("div", { className: "night-sheet-entry-text", children: [
|
|
1613
1632
|
/* @__PURE__ */ e("p", { className: "reminder-name", style: { color: n }, children: r }),
|
|
1614
|
-
/* @__PURE__ */ e("p", { className: "reminder-text", children: ((
|
|
1615
|
-
const
|
|
1616
|
-
return /* @__PURE__ */ e(
|
|
1633
|
+
/* @__PURE__ */ e("p", { className: "reminder-text", children: ((o) => {
|
|
1634
|
+
const s = o.split("*").map((d, c) => c % 2 === 0 ? d : /* @__PURE__ */ e("strong", { children: d })).map((d) => typeof d == "string" ? h(d) : d);
|
|
1635
|
+
return /* @__PURE__ */ e(u, { children: s });
|
|
1617
1636
|
})(a) })
|
|
1618
1637
|
] })
|
|
1619
1638
|
] });
|
|
@@ -1664,16 +1683,16 @@ function oe({ script: i, options: t, nightOrders: a }) {
|
|
|
1664
1683
|
var r;
|
|
1665
1684
|
return /* @__PURE__ */ e("div", { className: "sheet-wrapper", children: [
|
|
1666
1685
|
Array(t.numberOfCharacterSheets).fill(!0).map((n, h) => {
|
|
1667
|
-
var l,
|
|
1686
|
+
var l, o, s;
|
|
1668
1687
|
return /* @__PURE__ */ e("div", { className: h === 0 ? "" : "print-only", children: [
|
|
1669
1688
|
/* @__PURE__ */ e(
|
|
1670
1689
|
$,
|
|
1671
1690
|
{
|
|
1672
1691
|
title: ((l = i.metadata) == null ? void 0 : l.name) || "Custom Script",
|
|
1673
|
-
author: t.showAuthor ? (
|
|
1674
|
-
characters:
|
|
1692
|
+
author: t.showAuthor ? (o = i.metadata) == null ? void 0 : o.author : void 0,
|
|
1693
|
+
characters: B(i.characters),
|
|
1675
1694
|
color: t.color,
|
|
1676
|
-
jinxes: t.showJinxes ?
|
|
1695
|
+
jinxes: t.showJinxes ? G(i.characters, t.useOldJinxes) : [],
|
|
1677
1696
|
fabledOrLoric: ae(i.characters),
|
|
1678
1697
|
showSwirls: t.showSwirls,
|
|
1679
1698
|
includeMargins: t.includeMargins,
|
|
@@ -1684,11 +1703,11 @@ function oe({ script: i, options: t, nightOrders: a }) {
|
|
|
1684
1703
|
}
|
|
1685
1704
|
),
|
|
1686
1705
|
/* @__PURE__ */ e("div", { style: "break-after:page;" }),
|
|
1687
|
-
t.showBackingSheet && /* @__PURE__ */ e(
|
|
1706
|
+
t.showBackingSheet && /* @__PURE__ */ e(u, { children: [
|
|
1688
1707
|
/* @__PURE__ */ e(
|
|
1689
1708
|
X,
|
|
1690
1709
|
{
|
|
1691
|
-
title: ((
|
|
1710
|
+
title: ((s = i.metadata) == null ? void 0 : s.name) || "Custom Script",
|
|
1692
1711
|
color: t.color,
|
|
1693
1712
|
includeMargins: t.includeMargins,
|
|
1694
1713
|
nightOrders: a,
|
|
@@ -1701,7 +1720,7 @@ function oe({ script: i, options: t, nightOrders: a }) {
|
|
|
1701
1720
|
] })
|
|
1702
1721
|
] });
|
|
1703
1722
|
}),
|
|
1704
|
-
t.showNightSheet && /* @__PURE__ */ e(
|
|
1723
|
+
t.showNightSheet && /* @__PURE__ */ e(u, { children: [
|
|
1705
1724
|
/* @__PURE__ */ e(
|
|
1706
1725
|
Q,
|
|
1707
1726
|
{
|
|
@@ -1721,7 +1740,7 @@ export {
|
|
|
1721
1740
|
oe as FancyDoc,
|
|
1722
1741
|
Q as NightSheet,
|
|
1723
1742
|
X as SheetBack,
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1743
|
+
R as darken,
|
|
1744
|
+
C as parseRgb,
|
|
1745
|
+
z as rgbString
|
|
1727
1746
|
};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.character-sheet{width:210mm;min-height:297mm;max-height:297mm;position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#2d3748;display:flex;overflow:hidden;isolation:isolate}.character-sheet-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}.sidebar-container{position:relative}.sidebar-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:15mm;height:100%;flex-shrink:0}.sidebar-overlay{position:absolute;top:0;left:0;width:15mm;height:100%;background-color:#0003;pointer-events:none;mix-blend-mode:multiply}.sidebar-section{flex:1;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;padding:3mm 0}.sidebar-label{font-size:3.5mm;font-weight:600;letter-spacing:.5mm;color:#eee;text-shadow:.3mm .3mm .5mm rgba(0,0,0,.3)}.sheet-content{position:relative;padding:5mm 0 3mm;display:flex;flex-direction:column;min-width:0}.character-column-spacer{min-height:13mm}.sheet-header-container{display:flex;align-items:center}.sheet-header{text-align:center;margin:0 0 4mm;padding:0 10mm;display:flex;align-items:center;justify-content:center}.sheet-header span{font-weight:lighter;letter-spacing:0mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228);word-spacing:-3mm;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-family:Unlovable,serif;font-weight:100;font-size:14mm;padding:2mm 8mm;margin:0 -8mm;mix-blend-mode:multiply}.swirl-divider{width:35mm;mix-blend-mode:soft-light}.flip{transform:scaleX(-1)}.sheet-author{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;text-align:center;margin:-5mm 0 3mm;color:#333}.characters-grid{display:flex;flex-direction:column;gap:2.5mm;flex:1;padding:0 10mm 0 0}.character-section{display:flex;break-inside:avoid;min-height:20mm}.section-title{font-family:Dumbledor,serif;font-weight:lighter;padding:0 3.5mm;color:#eee;margin:-2mm 0 -2mm -15mm;min-width:15mm;text-align:center;z-index:1;text-orientation:upright;writing-mode:vertical-lr;letter-spacing:-.6mm;font-size:4mm;line-height:2;filter:drop-shadow(.1mm .1mm .3mm #222a) drop-shadow(-.1mm .1mm .3mm #2228) drop-shadow(.1mm -.1mm .3mm #222a) drop-shadow(-.1mm -.1mm .3mm #222a)}.section-divider{height:.8mm;opacity:1;margin-left:-50%;width:150%;mix-blend-mode:soft-light}.character-list{display:flex;margin-left:8mm;gap:5mm}.character-column{flex:1 1 0px;display:flex;flex-direction:column;justify-content:space-between}.character-card{display:flex;align-items:center;gap:2.5mm;break-inside:avoid;margin-bottom:2.5mm}.character-info{padding-left:2mm;display:flex;flex-direction:column}.character-icon-wrapper{display:flex;flex-shrink:0}.character-icon,.character-icon-placeholder{width:13mm;max-height:13mm;object-fit:contain;filter:drop-shadow(1px 1px 2px #0004)}.character-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:6mm}.character-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;margin:0 0 .5mm;color:#1a202c;display:flex;align-items:center;gap:1mm}.inline-jinx-icons{display:inline-flex;gap:.5mm;align-items:center;margin-left:1mm}.inline-jinx-icon,.inline-jinx-icon-placeholder{width:5mm;height:5mm;object-fit:contain;filter:drop-shadow(.5px .5px .5px #0004);scale:1.7;margin:-100% .5mm -100% 0}.inline-jinx-icon-placeholder{display:inline-flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:1.8mm;border-radius:50%;background-color:#666}.character-ability{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:3.1mm;line-height:1.2;margin:0;color:#222;display:inline-block}.appearance-compact .character-card{margin-bottom:1mm}.appearance-compact .sheet-header span{font-size:13mm}.appearance-super-compact .character-ability{font-size:2.7mm}.appearance-super-compact .character-name{font-size:3.2mm}.appearance-super-compact .character-icon,.appearance-super-compact .character-icon-placeholder{width:12mm;max-height:12mm}.appearance-super-compact .character-card{margin-bottom:.5mm}.appearance-super-compact .sheet-header span{font-size:12mm}.appearance-mega-compact .character-ability{font-size:2.4mm}.appearance-mega-compact .character-name{font-size:2.8mm}.appearance-mega-compact .sheet-header span{font-size:11mm}.appearance-mega-compact .character-icon,.appearance-mega-compact .character-icon-placeholder{width:11mm;max-height:11mm}.appearance-mega-compact .character-card{margin-bottom:.3mm}.appearance-mega-compact .inline-jinx-icon,.appearance-mega-compact .inline-jinx-icon-placeholder{width:4mm;height:4mm;font-size:1.3mm}.sheet-footer{text-align:center;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;color:#222;opacity:.7}.asterisk{font-size:5mm}.author-credit{position:absolute;bottom:3mm;right:3mm;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right}.author-credit p{font-size:2.5mm;margin:0}.setup-ability{display:inline-block;white-space:normal;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif}.jinxes-section{display:flex;break-inside:avoid;margin-top:1mm}.jinxes-list{margin-left:8mm;display:flex;flex-direction:column;width:100%}.jinxes-two-columns{flex-direction:row;gap:5mm}.jinx-column{flex:1;display:flex;flex-direction:column}.jinx-item{display:flex;gap:2.5mm;align-items:center;break-inside:avoid;margin-bottom:2mm}.jinx-icons{display:flex;gap:1mm;flex-shrink:0;align-items:center}.jinx-icon-wrapper{display:flex;flex-shrink:0;align-items:center}.jinx-icon,.jinx-icon-placeholder{width:3.5mm;height:3.5mm;object-fit:contain;scale:2.8}.jinx-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:2mm}.jinx-divider{font-family:Dumbledor,serif;font-size:4.6mm;color:#1a202c;line-height:3.5mm;margin:0 .5mm}.jinx-text{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:2.6mm;line-height:1.2;margin:0;color:#222;padding-top:.5mm}.jinx-text.loric-text{padding-top:0}.jinx-item.loric{margin-bottom:1mm}.loric-name{font-family:Goudy Old Style;font-size:3mm;padding-top:0}.loric-spacer{min-width:4mm}.sheet-backing{position:relative;width:210mm;min-height:297mm;max-height:297mm}.sheet-background{width:210mm;min-height:297mm;max-height:297mm;background-image:url(/images/sidebar-desaturated-small.jpg);background-repeat:repeat;background-size:105mm;display:flex;flex-direction:column;align-items:center;justify-content:center}.sheet-back-overlay{position:absolute;top:0;left:0;width:100%;height:100%;mix-blend-mode:multiply;pointer-events:none}.sheet-backing h1{font-family:Unlovable,serif;mix-blend-mode:normal;font-weight:100;font-size:30mm;color:#ae9d7f;text-wrap:wrap;z-index:1;flex-shrink:1;text-align:center;padding:10mm;background-image:url(/images/parchment_texture.jpg);background-clip:text;-webkit-background-clip:text;color:transparent;background-size:100mm;filter:drop-shadow(.5mm .5mm black) drop-shadow(0mm 0mm 1mm black);word-spacing:-10mm;flex:0 1 130mm;display:flex;flex-wrap:wrap;justify-content:center}.sheet-backing h1 .ampersand{font-size:45mm;line-height:30mm;vertical-align:-5mm}.back-info-container{position:absolute;display:flex;gap:10mm;align-items:center;bottom:0;flex-direction:column-reverse;justify-content:space-between;height:100%;width:100%;padding:20mm}.title-container{z-index:1;display:flex;justify-content:center}.minor-word{padding:0 8mm;font-size:15mm;word-spacing:-6mm;display:flex}.night-orders-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;box-shadow:inset 0 0 5px #000;padding:2mm}.night-orders-container p{width:26mm;text-align:end;margin:0;flex-shrink:0;color:#222;font-size:5mm}.night-order:not(:last-child){margin-bottom:2mm}.night-order{padding:2mm;display:flex;align-items:center;gap:2mm}.icon-row{box-sizing:border-box;display:flex;flex-wrap:wrap;column-gap:2mm;row-gap:4mm}.icon{width:6mm;box-sizing:border-box;scale:2.1;filter:drop-shadow(0px 0px 2px #2224)}.player-count-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;padding:4mm;box-shadow:inset 0 0 5px #000;display:flex;gap:5mm;max-width:130mm;flex-direction:row;color:#222;font-size:6mm}.count-column{display:flex;flex-direction:column;align-items:center}.count-column.titles{align-items:end}.good-count{color:#00469e}.evil-count{color:#580709}.night-sheet{width:210mm;min-height:297mm;max-height:297mm;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#222}.night-sheet-heading{display:flex;align-items:center;justify-content:space-between}.night-sheet .night-title{font-family:Dumbledor;font-size:7mm;margin:0}.night-sheet .script-title{font-family:Unlovable,serif;font-weight:lighter;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:11mm;line-height:9mm;margin:-20mm -7mm;padding:7mm;max-width:50%;text-align:center;word-spacing:-4mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228)}.night-sheet .sheet-content{padding:10mm;gap:5mm}.night-sheet-order{display:flex;flex-direction:column;gap:1mm}.night-sheet-entry{display:flex;align-items:center;min-height:10mm}.reminder-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-weight:700;font-size:3.3mm}.reminder-text{font-family:Trade Gothic;font-size:3mm}.night-sheet-entry p{margin:0}.night-sheet-entry p strong{font-family:Trade Gothic Bold}.night-sheet-entry>img{width:7mm;height:7mm;flex-shrink:0;scale:2;margin-right:3mm}.reminder-icon{width:10px;scale:1;opacity:.8;margin-right:4px;margin-bottom:-1px}.info-author-credit{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right;padding-bottom:3mm;padding-right:3mm;position:absolute;right:0;top:-50%}.info-author-credit p{font-size:2.5mm;margin:0}.info-footer-container{position:relative}.info-footer-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:100%;height:20mm}.info-footer-overlay{position:absolute;top:0;left:0;width:100%;height:20mm;background-color:#0003;mix-blend-mode:multiply}.spacer{flex:1 0 0px}.print-only{visibility:hidden;display:none}@media print{.print-only{visibility:visible;display:block}}
|
|
1
|
+
.character-sheet{width:210mm;min-height:297mm;max-height:297mm;position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#2d3748;display:flex;overflow:hidden;isolation:isolate}.character-sheet-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}.sidebar-container{position:relative}.sidebar-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:15mm;height:100%;flex-shrink:0}.sidebar-overlay{position:absolute;top:0;left:0;width:15mm;height:100%;background-color:#0003;pointer-events:none;mix-blend-mode:multiply}.sidebar-section{flex:1;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;padding:3mm 0}.sidebar-label{font-size:3.5mm;font-weight:600;letter-spacing:.5mm;color:#eee;text-shadow:.3mm .3mm .5mm rgba(0,0,0,.3)}.sheet-content{position:relative;padding:5mm 0 3mm;display:flex;flex-direction:column;min-width:0}.character-column-spacer{min-height:13mm}.sheet-header-container{display:flex;align-items:center}.sheet-header{text-align:center;margin:0 0 4mm;padding:0 10mm;display:flex;align-items:center;justify-content:center}.sheet-header span{font-weight:lighter;letter-spacing:0mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228);word-spacing:-3mm;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-family:Unlovable,serif;font-weight:100;font-size:14mm;padding:2mm 8mm;margin:0 -8mm;mix-blend-mode:multiply}.swirl-divider{width:35mm;mix-blend-mode:soft-light}.flip{transform:scaleX(-1)}.sheet-author{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;text-align:center;margin:-5mm 0 3mm;color:#333}.characters-grid{display:flex;flex-direction:column;gap:2.5mm;flex:1;padding:0 10mm 0 0}.character-section{display:flex;break-inside:avoid;min-height:20mm}.section-title{font-family:Dumbledor,serif;font-weight:lighter;padding:0 3.5mm;color:#eee;margin:-2mm 0 -2mm -15mm;min-width:15mm;text-align:center;z-index:1;text-orientation:upright;writing-mode:vertical-lr;letter-spacing:-.6mm;font-size:4mm;line-height:2;filter:drop-shadow(.1mm .1mm .3mm #222a) drop-shadow(-.1mm .1mm .3mm #2228) drop-shadow(.1mm -.1mm .3mm #222a) drop-shadow(-.1mm -.1mm .3mm #222a)}.section-divider{height:.8mm;opacity:1;margin-left:-50%;width:150%;mix-blend-mode:soft-light}.character-list{display:flex;margin-left:8mm;gap:5mm}.character-column{flex:1 1 0px;display:flex;flex-direction:column;justify-content:space-between}.character-card{display:flex;align-items:center;gap:2.5mm;break-inside:avoid;margin-bottom:2.5mm}.character-info{padding-left:2mm;display:flex;flex-direction:column}.character-icon-wrapper{display:flex;flex-shrink:0}.character-icon,.character-icon-placeholder{width:13mm;max-height:13mm;object-fit:contain;filter:drop-shadow(1px 1px 2px #0004)}.character-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:6mm}.character-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;margin:0 0 .5mm;color:#1a202c;display:flex;align-items:center;gap:1mm}.inline-jinx-icons{display:inline-flex;gap:.5mm;align-items:center;margin-left:1mm}.inline-jinx-icon,.inline-jinx-icon-placeholder{width:5mm;height:5mm;object-fit:contain;filter:drop-shadow(.5px .5px .5px #0004);scale:1.7}.inline-jinx-icon-placeholder{display:inline-flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:1.8mm;border-radius:50%;background-color:#666}.character-ability{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:3.1mm;line-height:1.2;margin:0;color:#222;display:inline-block}.appearance-compact .character-card{margin-bottom:1mm}.appearance-compact .sheet-header span{font-size:13mm}.appearance-super-compact .character-ability{font-size:2.7mm}.appearance-super-compact .character-name{font-size:3.2mm}.appearance-super-compact .character-icon,.appearance-super-compact .character-icon-placeholder{width:12mm;max-height:12mm}.appearance-super-compact .character-card{margin-bottom:.5mm}.appearance-super-compact .sheet-header span{font-size:12mm}.appearance-mega-compact .character-ability{font-size:2.4mm}.appearance-mega-compact .character-name{font-size:2.8mm}.appearance-mega-compact .sheet-header span{font-size:11mm}.appearance-mega-compact .character-icon,.appearance-mega-compact .character-icon-placeholder{width:11mm;max-height:11mm}.appearance-mega-compact .character-card{margin-bottom:.3mm}.appearance-mega-compact .inline-jinx-icon,.appearance-mega-compact .inline-jinx-icon-placeholder{width:4mm;height:4mm;font-size:1.3mm}.sheet-footer{text-align:center;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;color:#222;opacity:.7}.asterisk{font-size:5mm}.author-credit{position:absolute;bottom:3mm;right:3mm;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right}.author-credit p{font-size:2.5mm;margin:0}.setup-ability{display:inline-block;white-space:normal;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif}.jinxes-section{display:flex;break-inside:avoid;margin-top:1mm}.jinxes-list{margin-left:8mm;display:flex;flex-direction:column;width:100%}.jinxes-two-columns{flex-direction:row;gap:5mm}.jinx-column{flex:1;display:flex;flex-direction:column}.jinx-item{display:flex;gap:2.5mm;align-items:center;break-inside:avoid;margin-bottom:2mm}.jinx-icons{display:flex;gap:1mm;flex-shrink:0;align-items:center}.jinx-icon-wrapper{display:flex;flex-shrink:0;align-items:center}.jinx-icon,.jinx-icon-placeholder{width:3.5mm;height:3.5mm;object-fit:contain;scale:2.8}.jinx-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:2mm}.jinx-divider{font-family:Dumbledor,serif;font-size:4.6mm;color:#1a202c;line-height:3.5mm;margin:0 .5mm}.jinx-text{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:2.6mm;line-height:1.2;margin:0;color:#222;padding-top:.5mm}.jinx-text.loric-text{padding-top:0}.jinx-item.loric{margin-bottom:1mm}.loric-name{font-family:Goudy Old Style;font-size:3mm;padding-top:0}.loric-spacer{min-width:4mm}.sheet-backing{position:relative;width:210mm;min-height:297mm;max-height:297mm}.sheet-background{width:210mm;min-height:297mm;max-height:297mm;background-image:url(/images/sidebar-desaturated-small.jpg);background-repeat:repeat;background-size:105mm;display:flex;flex-direction:column;align-items:center;justify-content:center}.sheet-back-overlay{position:absolute;top:0;left:0;width:100%;height:100%;mix-blend-mode:multiply;pointer-events:none}.sheet-backing h1{font-family:Unlovable,serif;mix-blend-mode:normal;font-weight:100;font-size:30mm;color:#ae9d7f;text-wrap:wrap;z-index:1;flex-shrink:1;text-align:center;padding:10mm;background-image:url(/images/parchment_texture.jpg);background-clip:text;-webkit-background-clip:text;color:transparent;background-size:100mm;filter:drop-shadow(.5mm .5mm black) drop-shadow(0mm 0mm 1mm black);word-spacing:-10mm;flex:0 1 130mm;display:flex;flex-wrap:wrap;justify-content:center}.sheet-backing h1 .ampersand{font-size:45mm;line-height:30mm;vertical-align:-5mm}.back-info-container{position:absolute;display:flex;gap:10mm;align-items:center;bottom:0;flex-direction:column-reverse;justify-content:space-between;height:100%;width:100%;padding:20mm}.title-container{z-index:1;display:flex;justify-content:center}.minor-word{padding:0 8mm;font-size:15mm;word-spacing:-6mm;display:flex}.night-orders-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;box-shadow:inset 0 0 5px #000;padding:2mm}.night-orders-container p{width:26mm;text-align:end;margin:0;flex-shrink:0;color:#222;font-size:5mm}.night-order:not(:last-child){margin-bottom:2mm}.night-order{padding:2mm;display:flex;align-items:center;gap:2mm}.icon-row{box-sizing:border-box;display:flex;flex-wrap:wrap;column-gap:2mm;row-gap:4mm}.icon{width:6mm;box-sizing:border-box;scale:2.1;filter:drop-shadow(0px 0px 2px #2224)}.player-count-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;padding:4mm;box-shadow:inset 0 0 5px #000;display:flex;gap:5mm;max-width:130mm;flex-direction:row;color:#222;font-size:6mm}.count-column{display:flex;flex-direction:column;align-items:center}.count-column.titles{align-items:end}.good-count{color:#00469e}.evil-count{color:#580709}.night-sheet{width:210mm;min-height:297mm;max-height:297mm;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#222}.night-sheet-heading{display:flex;align-items:center;justify-content:space-between}.night-sheet .night-title{font-family:Dumbledor;font-size:7mm;margin:0}.night-sheet .script-title{font-family:Unlovable,serif;font-weight:lighter;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:11mm;line-height:9mm;margin:-20mm -7mm;padding:7mm;max-width:50%;text-align:center;word-spacing:-4mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228)}.night-sheet .sheet-content{padding:10mm;gap:5mm}.night-sheet-order{display:flex;flex-direction:column;gap:1mm}.night-sheet-entry{display:flex;align-items:center;min-height:10mm}.reminder-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-weight:700;font-size:3.3mm}.reminder-text{font-family:Trade Gothic;font-size:3mm}.night-sheet-entry p{margin:0}.night-sheet-entry p strong{font-family:Trade Gothic Bold}.night-sheet-entry>img{width:7mm;height:7mm;flex-shrink:0;scale:2;margin-right:3mm}.reminder-icon{width:10px;scale:1;opacity:.8;margin-right:4px;margin-bottom:-1px}.info-author-credit{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right;padding-bottom:3mm;padding-right:3mm;position:absolute;right:0;top:-50%}.info-author-credit p{font-size:2.5mm;margin:0}.info-footer-container{position:relative}.info-footer-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:100%;height:20mm}.info-footer-overlay{position:absolute;top:0;left:0;width:100%;height:20mm;background-color:#0003;mix-blend-mode:multiply}.spacer{flex:1 0 0px}.print-only{visibility:hidden;display:none}@media print{.print-only{visibility:visible;display:block}}
|