diff --git a/Thirsty Sword Lesbians/TSL.css b/Thirsty Sword Lesbians/TSL.css index 49c0a7a4c3..a112ad3182 100644 --- a/Thirsty Sword Lesbians/TSL.css +++ b/Thirsty Sword Lesbians/TSL.css @@ -1,5 +1,20 @@ .sheet-aaaaainterceptor {} +/* Strip off all the unwanted bells and whistles Roll20 saddles us with */ + +.charsheet .btn { + background: transparent; + background-image: none; + text-shadow: none; + box-shadow: none; +} + +.ui-dialog .charsheet button[type=roll]::before, +.charsheet .btn::before, +.charsheet .btn::after { + content: ''; +} + /* Google font, doesn't work and in fact makes the whole sheet barf. Too bad. @import url('https://fonts.googleapis.com/css2?family=Qwigley&display=swap'); @@ -7,22 +22,45 @@ Google font, doesn't work and in fact makes the whole sheet barf. Too bad. /* This is supposed to be the established way to set variables, but it seems to be resisting me. Either documentation is wrong, browser support is poor, or roll20 is blocking it. I'll leave these here as good reminders of color values tho. +*/ +.sheet-rolltemplate-2d6-roll, :root { --tsl-pink: #e85761; --tsl-faint: #fceeef; --tsl-mild: #f8cccf; --tsl-dark: #a23c43; - --tsl-faint-gradient: linear-gradient(90deg, #fceeef 0%, #ffffff 5%, #ffffff 95%, #fceeef 100%); + /* --tsl-faint-gradient: linear-gradient(90deg, #fceeef 0%, #ffffff 5%, #ffffff 95%, #fceeef 100%); */ + --tsl-scrollbar-bg: linear-gradient(90deg, #fceeef 0%, #ffffff 50% #fceeef 100%); + --tsl-scrollbar-thumb: #f5bbbf; + --tsl-roll-bg: linear-gradient(0deg, #f26928 0%, #db4086 100%); + --tsl-sheet-bg: linear-gradient(90deg, #fceeef 0%, #ffffff 5%, #ffffff 95%, #fceeef 100%); + --tsl-text: black; + --tsl-tooltip-fg: black; + --tsl-tooltip-bg: var(--tsl-faint); + --tsl-popmenu-buttontext: var(--tsl-dark); +} - --logo-gradient: linear-gradient(0deg, #f26928 0%, #db4086 100%) +.sheet-darkmode .tab-content .charsheet { + --tsl-pink: #e85761; + --tsl-faint: #fceeef; + --tsl-mild: #f8cccf; + --tsl-dark: #a23c43; + /* --tsl-faint-gradient: linear-gradient(90deg, #fceeef 0%, #ffffff 5%, #ffffff 95%, #fceeef 100%); */ + --tsl-scrollbar-bg: linear-gradient(90deg, #fceeef 0%, #1f1f1f 50% #fceeef 100%); + --tsl-scrollbar-thumb: #f5bbbf; + --tsl-roll-bg: linear-gradient(0deg, #f26928 0%, #db4086 100%); + --tsl-sheet-bg: linear-gradient(90deg, #570f14 0%, #1f1f1f 5%, #1f1f1f 95%, #570f14 100%); + --tsl-text: #eee; + --tsl-tooltip-fg: var(--tsl-faint); + --tsl-tooltip-bg: black; + --tsl-popmenu-buttontext: var(--tsl-mild); } -*/ /* The emerging W3C standard that is currently Firefox-only */ * { scrollbar-width: thin; - scrollbar-color: #f5bbbf linear-gradient(90deg, #fceeef 0%, #ffffff 50% #fceeef 100%); + scrollbar-color: var(--tsl-scrollbar-thumb) var(--tsl-scrollbar-bg); } /* Works on Chrome/Edge/Safari */ @@ -30,35 +68,35 @@ Google font, doesn't work and in fact makes the whole sheet barf. Too bad. width: 12px; } *::-webkit-scrollbar-track { - background: #fceeef; - background: linear-gradient(90deg, #fceeef 0%, #ffffff 50%, #fceeef 100%); + background: var(--tsl-faint); + background: var(--tsl-scrollbar-bg); } *::-webkit-scrollbar-thumb { - background-color: #f5bbbf; + background-color: var(--tsl-scrollbar-thumb); border-radius: 20px; - border: 3px solid #fceeef; + border: 3px solid var(--tsl-faint); } /* Roll20's class .ui-dialog .charsheet has padding of 10px, which I can't seem to override, so a workaround by making the margins negative. */ -.sheet-whole { +.whole { margin-right: -36px; margin-left: -36px; margin-top: -28px; padding-left: 15px; padding-top: 5px; padding-right: 15px; - background: linear-gradient(90deg, #fceeef 0%, #ffffff 5%, #FFFFFF 95%, #fceeef 100%); + background: var(--tsl-sheet-bg); } /* url('https://imgsrv.roll20.net/?src=https%3A//raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-logo-faint.png') no-repeat 100% 108px/160px 80px fixed, */ -.sheet-whole button[type="roll"]:before { +.charsheet .whole button[type="roll"]::before { content: ''; } -.sheet-whole button[type="roll"] { +.charsheet .whole button[type="roll"] { font-size: 100%; } @@ -80,7 +118,7 @@ input[type="number"].sheet-bignumber { width: 1.5em; } -.sheet-bignumber.sheet-make-plus { +.sheet-bignumber.make-plus { font-size: 30px; } @@ -88,7 +126,7 @@ input[type="number"].sheet-bignumber { text-align: center; } -.sheet-columns { +.columns { clear: both; display: flex; flex-direction: row; @@ -98,16 +136,16 @@ input[type="number"].sheet-bignumber { align-content: stretch; } -.sheet-columns .sheet-wide { +.columns .wide { margin-left: 12px; padding-left: 12px; - border-left: 1px dotted #f8cccf; + border-left: 1px dotted var(--tsl-mild); margin-right: 12px; padding-right: 12px; - border-right: 1px dotted #f8cccf; + border-right: 1px dotted var(--tsl-mild); } -.sheet-columns .sheet-narrow { +.columns .narrow { flex-grow: 0; flex-shrink: 0; /* flex-basis: 15%; */ @@ -121,23 +159,23 @@ input[type="number"].sheet-bignumber { justify-content: space-between; } -.sheet-flexspacer { +.flexspacer { flex-grow: 10; } -.sheet-copyright-bloc { +.copyright-bloc { font-size: 8pt; font-style: italic; color: #ee8990; } -.sheet-copyright-statement { +.copyright-statement { font-size: 8pt; font-style: italic; } -.sheet-columns .sheet-standard { +.columns .standard { flex-grow: 0; flex-shrink: 0; width: 225px; @@ -148,7 +186,7 @@ input[type="number"].sheet-bignumber { /* flex-basis: 25%; */ } -.sheet-columns .sheet-wide { +.columns .wide { flex-grow: 1; flex-shrink: 1; min-width: 350px; @@ -159,41 +197,42 @@ input[type="number"].sheet-bignumber { overflow-y: scroll; } -input.sheet-height[value="default"] + .sheet-columns .sheet-standard, -input.sheet-height[value="default"] + .sheet-columns .sheet-wide, -input.sheet-height[value="default"] + .sheet-columns .sheet-narrow +input.height[value="default"] + .columns .standard, +input.height[value="default"] + .columns .wide, +input.height[value="default"] + .columns .narrow { max-height: 552px; height: 552px; } -input.sheet-height[value="tall"] + .sheet-columns .sheet-standard, -input.sheet-height[value="tall"] + .sheet-columns .sheet-wide, -input.sheet-height[value="tall"] + .sheet-columns .sheet-narrow +input.height[value="tall"] + .columns .standard, +input.height[value="tall"] + .columns .wide, +input.height[value="tall"] + .columns .narrow { max-height: 800px; height: 800px; } -input.sheet-height[value="max"] + .sheet-columns .sheet-standard, -input.sheet-height[value="max"] + .sheet-columns .sheet-wide, -input.sheet-height[value="max"] + .sheet-columns .sheet-narrow +input.height[value="max"] + .columns .standard, +input.height[value="max"] + .columns .wide, +input.height[value="max"] + .columns .narrow { max-height: none; height: 100%; } -.sheet-condition { +.condition { text-indent: -18px; margin-left: 18px; margin-block-end: 6px; } -.sheet-tooltip .sheet-tooltip-pop, -.sheet-condition .sheet-condition-pop { +.tsl-tooltip .tsl-tooltip-pop, +.condition .condition-pop { visibility: hidden; - border: 1px solid #f8cccf; - background-color: #fceeef; + border: 1px solid var(--tsl-mild); + background-color: var(--tsl-tooltip-bg); + color: var(--tsl-tooltip-fg); text-align: left; padding: 6px; border-radius: 6px; @@ -203,35 +242,35 @@ input.sheet-height[value="max"] + .sheet-columns .sheet-narrow top: 100%; left: 50%; margin-left: -95px; - box-shadow: 0px 3px 6px #f8cccf; + box-shadow: 0px 3px 6px var(--tsl-mild); font-size: 90%; } -.sheet-string .sheet-tooltip-pop, -.sheet-condition .sheet-condition-pop { +.string .tsl-tooltip-pop, +.condition .condition-pop { width: 175px; } -.sheet-string .sheet-tooltip-pop button { +.string .tsl-tooltip-pop button { z-index: 3; } -.sheet-tooltip.sheet-bio:hover, .sheet-tooltip.sheet-bio { - background-color: #fceeef; - color: black; +.tsl-tooltip.bio:hover, .tsl-tooltip.bio { + background-color: var(--tsl-tooltip-bg); + color: var(--tsl-tooltip-fg); } -.sheet-tooltip.sheet-bio .sheet-tooltip-pop { +.tsl-tooltip.bio .tsl-tooltip-pop { margin-left: 0px; - background-color: #fceeef; /* ZOD */ - color: black; + background-color: var(--tsl-tooltip-bg); /* ZOD */ + color: var(--tsl-tooltip-fg); } -.sheet-narrow .sheet-tooltip-pop { +.narrow .tsl-tooltip-pop { margin-left: -50px; } -.sheet-tooltip span.sheet-tooltip-pop { +.tsl-tooltip span.tsl-tooltip-pop { margin-left: -20px; width: auto; text-indent: 0px; @@ -240,8 +279,8 @@ input.sheet-height[value="max"] + .sheet-columns .sheet-narrow /* This makes the little pointy arrow thing if you want that */ -.sheet-tooltip div.sheet-tooltip-pop::after, -.sheet-condition div.sheet-condition-pop::after { +.tsl-tooltip div.tsl-tooltip-pop::after, +.condition div.condition-pop::after { content: " "; position: absolute; bottom: 100%; @@ -249,32 +288,32 @@ input.sheet-height[value="max"] + .sheet-columns .sheet-narrow margin-left: 4px; border-width: 4px; border-style: solid; - border-color: transparent transparent #f8cccf transparent; + border-color: transparent transparent var(--tsl-mild) transparent; } -.sheet-string.sheet-tooltip div:focus-within + .sheet-tooltip-pop, -/* .sheet-string:hover .sheet-tooltip .sheet-tooltip-pop, */ -.sheet-tooltip:hover .sheet-tooltip-pop, -.sheet-condition:hover .sheet-condition-pop { +.string.tsl-tooltip div:focus-within + .tsl-tooltip-pop, +/* .string:hover .tsl-tooltip .tsl-tooltip-pop, */ +.tsl-tooltip:hover .tsl-tooltip-pop, +.condition:hover .condition-pop { visibility: visible; } /* Relative position for outer container necessary in order for inner container to render! That was a frustrated discovery. */ -.sheet-condition, -.sheet-tooltip { +.condition, +.tsl-tooltip { position: relative; } -.sheet-condition .sheet-condition-penalty { +.condition .condition-penalty { display: none; } -.sheet-condition input[name="attr_marked"]:checked ~ .sheet-condition-penalty { +.condition input[name="attr_marked"]:checked ~ .condition-penalty { display: block; } -.sheet-condition div { +.condition div { text-indent: 0px; } @@ -292,7 +331,7 @@ input.sheet-height[value="max"] + .sheet-columns .sheet-narrow height: auto; } -input[type="checkbox"].sheet-checkboxer { +input[type="checkbox"].checkboxer { opacity: 0.0; width: 16px; height: 16px; @@ -304,7 +343,7 @@ input[type="checkbox"].sheet-checkboxer { z-index: 1; } -input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { +input[type="checkbox"].checkboxer + span.checkboxed::before { margin-right: -9px; margin-left: 12px; margin-top: 1px; @@ -318,7 +357,7 @@ input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { font-size: 12px; } -input[type="checkbox"].sheet-checkboxer:checked + span.sheet-checkboxed::before { +input[type="checkbox"].checkboxer:checked + span.checkboxed::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/checkbox-checked-tsl.png); } @@ -326,52 +365,52 @@ input[type="checkbox"].sheet-checkboxer:checked + span.sheet-checkboxed::before /* -.sheet-xptrack input[type="checkbox"].sheet-checkboxer { +.xptrack input[type="checkbox"].checkboxer { left: 10px; } -.sheet-xptrack input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { +.xptrack input[type="checkbox"].checkboxer + span.checkboxed::before { margin-right: -2px; margin-left: 4px; } */ -.sheet-popmenu-box input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { +.popmenu-box input[type="checkbox"].checkboxer + span.checkboxed::before { margin-right: 0px; margin-left: 0px; margin-top: 0px; } -.sheet-popmenu-box .sheet-checkline input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { +.popmenu-box .checkline input[type="checkbox"].checkboxer + span.checkboxed::before { margin-right: -6px; margin-left: 10px; margin-top: 0px; } -.sheet-minimum input[type="checkbox"].sheet-checkboxer { +.minimum input[type="checkbox"].checkboxer { left: 12px; top: 0px; margin-right: -8px; } -.sheet-minimum input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { +.minimum input[type="checkbox"].checkboxer + span.checkboxed::before { margin-top: -3px; margin-right: -2px; margin-left: 4px; } -.sheet-condition input[type="checkbox"].sheet-checkboxer { +.condition input[type="checkbox"].checkboxer { top: -1px; left: 11px; } -.sheet-condition input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { +.condition input[type="checkbox"].checkboxer + span.checkboxed::before { margin-left: 15px; margin-right: -9px; } -.sheet-fill-the-blank input[type="checkbox"].sheet-checkboxer + span.sheet-checkboxed::before { +.fill-the-blank input[type="checkbox"].checkboxer + span.checkboxed::before { margin-right: 2px; margin-left: 1px; margin-top: 6px; @@ -379,7 +418,7 @@ input[type="checkbox"].sheet-checkboxer:checked + span.sheet-checkboxed::before /* */ -input[type="checkbox"].sheet-expand-toggle { +input[type="checkbox"].expand-toggle { opacity: 0.0; width: 80px; height: 16px; @@ -391,239 +430,241 @@ input[type="checkbox"].sheet-expand-toggle { z-index: 1; } -.sheet-infobar { +.infobar { color: #999999; /* grayed out for low contrast */ } -.sheet-expand-toggle-container { +.expand-toggle-container { white-space: nowrap; width: 80px; } -.sheet-expand-toggle-container .sheet-expand-toggle ~ .sheet-expand-toggle-off, -.sheet-expand-toggle-container .sheet-expand-toggle:checked ~ .sheet-expand-toggle-on { +.expand-toggle-container .expand-toggle ~ .expand-toggle-off, +.expand-toggle-container .expand-toggle:checked ~ .expand-toggle-on { display: initial; text-align: left; margin-left: -64px; } -.sheet-expand-toggle-container .sheet-expand-toggle:checked ~ .sheet-expand-toggle-off, -.sheet-expand-toggle-container .sheet-expand-toggle ~ .sheet-expand-toggle-on { +.expand-toggle-container .expand-toggle:checked ~ .expand-toggle-off, +.expand-toggle-container .expand-toggle ~ .expand-toggle-on { display: none; } -.sheet-bold { +.bold { font-weight: bold; - color: #e85761; + color: var(--tsl-pink); } -.sheet-bold-uncolored { +.bold-uncolored { font-weight: bold; } -.sheet-buttonless { +.buttonless { border: none; background: none; - color: black; + color: var(--tsl-text); font-weight: normal; text-align: left; padding: 0px; } -input.sheet-popmenu-reveal + * { +input.popmenu-reveal + * { display: none; } -input.sheet-popmenu-reveal[value="yes"] + * { +input.popmenu-reveal[value="yes"] + * { display: block; } -.sheet-buttonless:hover, -.sheet-buttonless:hover span, -.sheet-buttonless:hover .sheet-bold, -input.sheet-popmenu-select[value=""] + button:hover, -.sheet-popmenu-box .repitem:hover { - background: #e85761; - color: white; +.buttonless:hover, +.buttonless:hover span, +.buttonless:hover .bold, +input.popmenu-select[value=""] + button:hover, +.popmenu-box .repitem:hover { + background-color: var(--tsl-tooltip-bg); + color: var(--tsl-tooltip-fg); } -.sheet-popmenu-box.sheet-no-hover .repitem:hover { - background: #fceeef; +.popmenu-box.sheet-no-hover .repitem:hover { + background: var(--tsl-faint); color: black; } -input.sheet-popmenu-select[value=""] + button { - color: #a23c43; +input.popmenu-select[value=""] + button { + color: var(--tsl-popmenu-buttontext); } -.sheet-popmenu input[type="text"] { +.popmenu input[type="text"] { width: 200px; max-width: 200px; } -.sheet-examples-list { +.examples-list { font-size: 90%; font-style: italic; padding-left: 6px; display: none; } -.sheet-popmenu-box .sheet-examples-list { +.popmenu-box .examples-list { width: 200px; max-width: 200px; } -.sheet-popmenu-section { +.popmenu-section { padding-top: 3px; - border-top: 1px solid #f8cccf; + border-top: 1px solid var(--tsl-mild); } .sheet-float-right { float: right; } -.sheet-fill-the-blank input.sheet-fillme:focus ~ div.sheet-suggestions, -textarea:focus ~ div.sheet-examples-list, -input:focus + div.sheet-examples-list { +.fill-the-blank input.fillme:focus ~ div.suggestions, +textarea:focus ~ div.examples-list, +input:focus + div.examples-list { display: block; } -.sheet-fill-the-blank, .sheet-fill-in-the-blank { +.fill-the-blank, .sheet-fill-in-the-blank { text-indent: 0px; } -.sheet-fillme { +.fillme { border: none; - border-bottom: 0.5px solid #fceeef; + border-bottom: 0.5px solid var(--tsl-faint); border-radius: 6px; padding-left: 0px; margin-left: 0px; margin-bottom: 6px; + background: transparent; + color: var(--tsl-text); } -.sheet-fillme:focus, .sheet-fillme:hover { - border-bottom: 0.5px solid #f8cccf; - box-shadow: 0px 3px 6px #f8cccf; +.fillme:focus, .fillme:hover { + border-bottom: 0.5px solid var(--tsl-mild); + box-shadow: 0px 3px 6px var(--tsl-mild); } -.sheet-fillme:focus { +.fillme:focus { padding-left: 3px; } -.sheet-fullwidth { +.fullwidth { width: 100%; } -input.sheet-show-on-checked, input.sheet-show-on-checked + * { +input.show-on-checked, input.show-on-checked + * { display: none; } -input.sheet-show-on-checked:checked + * { +input.show-on-checked:checked + * { display: initial; } -input.sheet-hide-on-checked, input.sheet-hide-on-checked:checked + * { +input.hide-on-checked, input.hide-on-checked:checked + * { display: none; } -input.sheet-show-on-yes + *, -input.sheet-hide-on-yes[value="yes"] + * { +input.show-on-yes + *, +input.hide-on-yes[value="yes"] + * { display: none; } -input.sheet-show-on-yes[value="yes"] + * { +input.show-on-yes[value="yes"] + * { display: initial; } -input.sheet-hide-on-no[value="no"] + * { +input.hide-on-no[value="no"] + * { display: none; } -input.sheet-hide-on-null[value=""] + * { +input.hide-on-null[value=""] + * { display: none; } -input.sheet-hide-on-zero[value="0"] + * { +input.hide-on-zero[value="0"] + * { display: none; } -input.sheet-make-plus + span.sheet-make-plus:before { +input.make-plus + span.make-plus::before { content: "+"; } -input.sheet-make-plus[value^="-"] + span.sheet-make-plus:before { +input.make-plus[value^="-"] + span.make-plus::before { content: ""; } -.sheet-mod-state-button[value="forward"] + button:before { +.mod-state-button[value="forward"] + button::before { font-family: "Pictos"; font-style: normal; font-weight: normal; content: ']'; - color: #e85761; + color: var(--tsl-pink); background: white; } -.sheet-mod-state-button[value="ongoing"] + button:before { +.mod-state-button[value="ongoing"] + button::before { font-family: "Pictos"; font-style: normal; font-weight: normal; content: '0'; - color: #e85761; + color: var(--tsl-pink); background: white; } -.sheet-mod-state-button + button > span { +.mod-state-button + button > span { display: none; } -.sheet-mod-state-button + button:hover > span, -.sheet-mod-state-button + button:focus > span { +.mod-state-button + button:hover > span, +.mod-state-button + button:focus > span { display: inline; color: white; - background: #e85761; + background: var(--tsl-pink); } -.sheet-mod-state-button + button:hover, -.sheet-mod-state-button + button:focus, -.sheet-mod-state-button + button:hover:before, -.sheet-mod-state-button + button:focus:before { +.mod-state-button + button:hover, +.mod-state-button + button:focus, +.mod-state-button + button:hover::before, +.mod-state-button + button:focus::before { color: white; - background: #e85761; + background: var(--tsl-pink); } /* Tried this, it looks shit */ /* -div.sheet-move-whole { +div.move-whole { max-height: 80px; overflow: scroll; } */ -.sheet-move-whole .sheet-move-extras { +.move-whole .move-extras { display: none; } -.sheet-move-whole:hover .sheet-move-extras { +.move-whole:hover .move-extras { display: initial; } -.sheet-move { +.move { text-indent: -18px; margin-left: 18px; margin-block-end: 6px; } -.sheet-move .sheet-indented { +.move .indented { text-indent: 1em; } -.sheet-move ul { +.move ul { text-indent: 0px; } -.sheet-move ul li { +.move ul li { margin-left: 24px; } @@ -634,15 +675,15 @@ input.sheet-collapse-on-checked { } -input.sheet-collapse-on-unchecked + .sheet-move-compressor, -input.sheet-collapse-on-checked:checked + .sheet-move-compressor, -.sheet-moves-all .sheet-move-compressor { +input.sheet-collapse-on-unchecked + .move-compressor, +input.sheet-collapse-on-checked:checked + .move-compressor, +.moves-all .move-compressor { display: none; } -input.sheet-collapse-on-unchecked:checked + .sheet-move-compressor , -input.sheet-collapse-on-checked + .sheet-move-compressor, -.sheet-moves-all:hover .sheet-move-compressor { +input.sheet-collapse-on-unchecked:checked + .move-compressor , +input.sheet-collapse-on-checked + .move-compressor, +.moves-all:hover .move-compressor { display: block; } */ @@ -661,11 +702,11 @@ input.sheet-collapse-on-checked + .sheet-move-compressor, overflow: visible; } -.sheet-nocontrol .repcontrol { +.nocontrol .repcontrol { display: none; } -.sheet-one-line { +.one-line { white-space: nowrap; display: flex; flex-direction: row; @@ -675,111 +716,111 @@ input.sheet-collapse-on-checked + .sheet-move-compressor, align-content: stretch; } -.sheet-one-line > div { +.one-line > div { padding-right: 6px; } -.sheet-one-line > div.sheet-unpadded { +.one-line > div.unpadded { padding-right: 2px; } -.sheet-one-line .sheet-minimum { +.one-line .minimum { flex-grow: 0; flex-shrink: 1; } -.sheet-one-line .sheet-stretch { +.one-line .stretch { flex-grow: 1; flex-shrink: 1; } -.sheet-one-line input { +.one-line input { width: auto; } -.sheet-one-line .sheet-stretch input[type="text"] { +.one-line .stretch input[type="text"] { width: 100%; } -.sheet-one-line input.sheet-plus-enabled { +.one-line input.plus-enabled { width: 1em; } -.sheet-one-line input.sheet-make-plus[value^="-"] ~ input.sheet-plus-enabled { +.one-line input.make-plus[value^="-"] ~ input.plus-enabled { width: 1.5em; } -.sheet-one-line input.sheet-make-plus[value^="-"] ~ input.sheet-plus-enabled:hover, -.sheet-one-line input.sheet-plus-enabled:hover, -.sheet-one-line input.sheet-make-plus[value^="-"] ~ input.sheet-plus-enabled:focus, -.sheet-one-line input.sheet-plus-enabled:focus { +.one-line input.make-plus[value^="-"] ~ input.plus-enabled:hover, +.one-line input.plus-enabled:hover, +.one-line input.make-plus[value^="-"] ~ input.plus-enabled:focus, +.one-line input.plus-enabled:focus { width: 3.5em; } /* Chrome, Safari, Edge, Opera */ -.sheet-one-line input.sheet-plus-enabled::-webkit-outer-spin-button, -.sheet-one-line input.sheet-plus-enabled::-webkit-inner-spin-button { +.one-line input.plus-enabled::-webkit-outer-spin-button, +.one-line input.plus-enabled::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } -.sheet-one-line input.sheet-plus-enabled:hover::-webkit-outer-spin-button, -.sheet-one-line input.sheet-plus-enabled:hover::-webkit-inner-spin-button, -.sheet-one-line input.sheet-plus-enabled:focus::-webkit-outer-spin-button, -.sheet-one-line input.sheet-plus-enabled:focus::-webkit-inner-spin-button { +.one-line input.plus-enabled:hover::-webkit-outer-spin-button, +.one-line input.plus-enabled:hover::-webkit-inner-spin-button, +.one-line input.plus-enabled:focus::-webkit-outer-spin-button, +.one-line input.plus-enabled:focus::-webkit-inner-spin-button { -webkit-appearance: auto; margin: inherit; } /* Firefox */ -input.sheet-plus-enabled[type=number] { +input.plus-enabled[type=number] { -moz-appearance: textfield; } -input.sheet-plus-enabled[type=number]:hover, -input.sheet-plus-enabled[type=number]:focus { +input.plus-enabled[type=number]:hover, +input.plus-enabled[type=number]:focus { -moz-appearance: auto; } -.sheet-one-line input[type="checkbox"] { +.one-line input[type="checkbox"] { vertical-align: 0px; } -.sheet-one-line .sheet-buttonless { +.one-line .buttonless { vertical-align: 7px; } -.sheet-one-line span.sheet-make-plus { +.one-line span.make-plus { vertical-align: 0px; } -.sheet-one-line.sheet-modifier span.sheet-make-plus { +.one-line.modifier span.make-plus { vertical-align: 4px; } -.sheet-pictos { +.pictos { font-family: 'Pictos'; } -.sheet-show-following-on-hover + * { +.show-following-on-hover + * { display: none; } -.sheet-show-following-on-hover:hover + * { +.show-following-on-hover:hover + * { display: initial; } -.sheet-popmenu, -.sheet-popmenu-box { +.popmenu, +.popmenu-box { display: inline-block } -.sheet-popmenu repcontainer { +.popmenu repcontainer { margin-top: 0px; padding-top: 0px; } -.sheet-popmenu-box { +.popmenu-box { font-size: 12px; vertical-align: middle; text-align: left; @@ -790,146 +831,148 @@ input.sheet-plus-enabled[type=number]:focus { display: none; } -.sheet-popmenu-box button { +.popmenu-box button { display: none; width: 100%; z-index: 2; } -.sheet-popmenu-box .sheet-checkline { +.popmenu-box .checkline { text-align: left; margin-left: 1.5em; text-indent: -1.5em; } -.sheet-popmenu:hover .sheet-popmenu-box { +.popmenu:hover .popmenu-box { display: inline-block; - background: #fceeef; + background-color: var(--tsl-tooltip-bg); + color: var(--tsl-tooltip-fg); position: absolute; width: auto; height: auto; z-index: 2; - border: .5px solid #f8cccf; + border: .5px solid var(--tsl-mild); padding: 6px; - box-shadow: 3px 3px 6px #f8cccf; + box-shadow: 3px 3px 6px var(--tsl-mild); border-radius: 3px 3px 6px 6px } -.sheet-popmenu-rightside { +.popmenu-rightside { right: 20px; } -.sheet-popmenu:hover .sheet-popmenu-box button { +.popmenu:hover .popmenu-box button { display: inline-block; } -.sheet-popmenu-trigger { +.popmenu-trigger { margin-bottom: 0px; padding-bottom: 0px; } -.sheet-popmenu-righthand .sheet-popmenu-trigger:after, -.sheet-popmenu-trigger:before { +.popmenu-righthand .popmenu-trigger::after, +.popmenu-trigger::before { font-family: "Pictos"; font-style: normal; font-weight: normal; content: 'l'; margin-right: 6px; padding: 1px; - color: #e85761; + color: var(--tsl-pink); } -.sheet-popmenu-righthand .sheet-popmenu-trigger:before { +.popmenu-righthand .popmenu-trigger::before { content: ''; margin-right: 0px; } -.sheet-popmenu-righthand .sheet-popmenu-trigger:after { +.popmenu-righthand .popmenu-trigger::after { margin-left: 6px; } -.sheet-popmenu:hover .sheet-popmenu-trigger:before, -.sheet-popmenu:hover .sheet-popmenu-trigger:after { +.popmenu:hover .popmenu-trigger::before, +.popmenu:hover .popmenu-trigger::after { color: white; - background: #e85761; + background: var(--tsl-pink); } -button[type="roll"].sheet-2d6-button.sheet-no-dice:after, -button[type="roll"].sheet-2d6-button-nofloat.sheet-no-dice:after { +.charsheet button[type="roll"].sheet-2d6-button.no-dice::after, +.charsheet button[type="roll"].sheet-2d6-button-nofloat.no-dice::after { content: ''; } -button[type="roll"].sheet-2d6-button.sheet-no-dice, -button[type="roll"].sheet-2d6-button-nofloat.sheet-no-dice { +.charsheet button[type="roll"].sheet-2d6-button.no-dice, +.charsheet button[type="roll"].sheet-2d6-button-nofloat.no-dice { text-align: left; margin-left: 0px; } -.sheet-narrow button[type="roll"].sheet-2d6-button.sheet-no-dice, -.sheet-narrow button[type="roll"].sheet-2d6-button-nofloat.sheet-no-dice { +.narrow button[type="roll"].sheet-2d6-button.no-dice, +.narrow button[type="roll"].sheet-2d6-button-nofloat.no-dice { text-align: left; margin-left: -6px; } -button[type="roll"].sheet-sharemove, -button[type="roll"].sheet-2d6-button, -button[type="roll"].sheet-2d6-button-nofloat { - background: transparent; +.charsheet button[type="roll"].sharemove, +.charsheet button[type="roll"].sheet-2d6-button, +.charsheet button[type="roll"].sheet-2d6-button-nofloat { + /* background: transparent; + background-image: none; */ border-style: none; margin: 0px; margin-left: 6px; padding: 0px; } -div.sheet-right-buttons { +div.right-buttons { float: right; display: flex; /* PAIN */ flex-direction: row; } /* -button[type="roll"].sheet-sharemove, -button[type="roll"].sheet-2d6-button { +.charsheet button[type="roll"].sharemove, +.charsheet button[type="roll"].sheet-2d6-button { float: right; } */ -button[type="roll"].sheet-sharemove:after { +.charsheet button[type="roll"].sharemove::after { font-family: "Pictos"; font-style: normal; text-transform: uppercase; font-weight: normal; content: 'R'; - color: #e85761; + color: var(--tsl-pink); } -button[type="roll"].sheet-2d6-button:after, -button[type="roll"].sheet-2d6-button-nofloat:after { +.charsheet button[type="roll"].sheet-2d6-button::after, +.charsheet button[type="roll"].sheet-2d6-button-nofloat::after { content: 'Fa'; font-family: 'dicefontd6'; font-size: 116%; - color: #e85761; + color: var(--tsl-pink); } -.sheet-result { +.result { margin-left: 30px; } -.sheet-result ul { +.result ul { margin-left: 0px; margin-block-end: 3px; } -.sheet-result ul li { +.result ul li { margin-left: 10px; } .sheet-rolltemplate-2d6-roll { - border: 1px solid #e85761; - background: linear-gradient(0deg, #f26928 0%, #db4086 100%); + border: 1px solid var(--tsl-pink); + background: var(--tsl-roll-bg); /* background: url('https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-roll-bg.png') repeat-x; */ padding: 6px; - box-shadow: 3px 3px 6px #a23c43; + box-shadow: 3px 3px 6px var(--tsl-dark); border-radius: 3px 3px 6px 6px; } @@ -939,7 +982,7 @@ button[type="roll"].sheet-2d6-button-nofloat:after { margin-left: -6px; margin-right: -6px; color: white; - text-shadow: 0px 0px 6px #a23c43; + text-shadow: 0px 0px 6px var(--tsl-dark); } /* @@ -992,7 +1035,7 @@ button[type="roll"].sheet-2d6-button-nofloat:after { color: white; font-style: italic; text-align: center; - text-shadow: 0px 0px 6px #a23c43; + text-shadow: 0px 0px 6px var(--tsl-dark); } .sheet-rolltemplate-2d6-roll .sheet-dice .sheet-dieroll-hit, @@ -1004,14 +1047,15 @@ button[type="roll"].sheet-2d6-button-nofloat:after { text-align: center; vertical-align: bottom; color: white; - text-shadow: 0px 0px 6px #a23c43; + text-shadow: 0px 0px 6px var(--tsl-dark); } .sheet-rolltemplate-sharemove { - border: 1px solid #e85761; - background-color: white; + border: 1px solid var(--tsl-pink); + background-color: black; + color: var(--tsl-pink); padding: 6px; - box-shadow: 3px 3px 6px #a23c43; /* ZORK */ + box-shadow: 3px 3px 6px var(--tsl-dark); /* ZORK */ border-radius: 3px 3px 6px 6px; } @@ -1021,7 +1065,7 @@ button[type="roll"].sheet-2d6-button-nofloat:after { margin-block-end: 6px; } -.sheet-rolltemplate-sharemove .sheet-move .sheet-indented { +.sheet-rolltemplate-sharemove .sheet-move .indented { text-indent: 1em; } @@ -1058,24 +1102,24 @@ button[type="roll"].sheet-2d6-button-nofloat:after { margin-top: -6px; margin-left: -6px; margin-right: -6px; - background-color: #e85761; + background-color: var(--tsl-pink); color: white; - text-shadow: 0px 0px 6px #a23c43; + text-shadow: 0px 0px 6px var(--tsl-dark); } -.sheet-show-on-unchecked-combo { +.show-on-unchecked-combo { display: none; } -input.sheet-show-on-yes-combo[value="yes"] + input.sheet-show-on-unchecked-combo + * { +input.show-on-yes-combo[value="yes"] + input.show-on-unchecked-combo + * { display: initial; } -input.sheet-show-on-yes-combo:not([value="yes"]) + input.sheet-show-on-unchecked-combo + * { +input.show-on-yes-combo:not([value="yes"]) + input.show-on-unchecked-combo + * { display: none; } -input.sheet-show-on-yes-combo + input.sheet-show-on-unchecked-combo:checked + * { +input.show-on-yes-combo + input.show-on-unchecked-combo:checked + * { display: none; } @@ -1089,79 +1133,79 @@ input.sheet-show-on-yes-combo + input.sheet-show-on-unchecked-combo:checked + * long-expand: show-on-checked-combo */ -.sheet-show-on-checked-combo { +.show-on-checked-combo { display: none; } -input.sheet-show-on-yes-combo + input.sheet-show-on-checked-combo + * { +input.show-on-yes-combo + input.show-on-checked-combo + * { display: none; } /* If the value is not yes and it's paired with show-on-checked, show it; if the value is yes and it's paired with a checked show-on-checked, show it */ -input.sheet-show-on-yes-combo:not([value="yes"]) + input.sheet-show-on-checked-combo + *, -input.sheet-show-on-yes-combo[value="yes"] + input.sheet-show-on-checked-combo:checked + * { +input.show-on-yes-combo:not([value="yes"]) + input.show-on-checked-combo + *, +input.show-on-yes-combo[value="yes"] + input.show-on-checked-combo:checked + * { display: initial; } -.sheet-space-below { +.space-below { padding-bottom: 6px; } -.sheet-section-head { +.section-head { margin-top: 12px; font-size: 18px; font-weight: bold; font-family: 'Arial'; /* Tried Shadows Into Light, but it's crap as a header font goes. Sticking with Arial. */ - border-bottom: 1px solid #f8cccf; - color: #e85761; + border-bottom: 1px solid var(--tsl-mild); + color: var(--tsl-pink); padding-bottom: 0px; } -.sheet-section-head.sheet-one-line { +.section-head.one-line { border-bottom: none; } -.sheet-section-head .sheet-popmenu-box { +.section-head .popmenu-box { font-family: 'Arial'; } -.sheet-section-subhead { +.section-subhead { margin-top: 6px; font-size: 15px; font-weight: bold; - color: #e85761; - border-bottom: .5px solid #fceeef; + color: var(--tsl-pink); + border-bottom: .5px solid var(--tsl-faint); } -.sheet-buttonless.sheet-trashit:after { +.buttonless.trashit::after { font-family: "Pictos"; font-style: normal; font-weight: normal; content: '*'; - color: #f5bbbf; + color: var(--tsl-scrollbar-thumb); } -.sheet-buttonless.sheet-trashit:hover { +.buttonless.trashit:hover { background: none; background-color: none; - color: #e85761; + color: var(--tsl-pink); } -.sheet-buttonless.sheet-trashit:hover:after { +.buttonless.trashit:hover::after { content: '*'; background: none; background-color: none; - color: #e85761; + color: var(--tsl-pink); } -.sheet-topname { +.topname { font-size: 24px; font-weight: bold; width: 100%; } -.sheet-toprow { +.toprow { display: flex; flex-direction: row; justify-content: space-between; @@ -1169,16 +1213,16 @@ input.sheet-show-on-yes-combo[value="yes"] + input.sheet-show-on-checked-combo:c margin-right: 160px; } -.sheet-track { +.track { text-align: center; vertical-align: middle; } -.sheet-track .sheet-bold { +.track .bold { vertical-align: 2px; } -input.sheet-tracker + .sheet-tracker-bar:before { +input.tracker + .tracker-bar::before { display: inline-block; margin-left: 0px; margin-right: 0px; @@ -1190,61 +1234,61 @@ input.sheet-tracker + .sheet-tracker-bar:before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-tracker-0.png); } -input.sheet-tracker[value="0"] + .sheet-tracker-bar:before { +input.tracker[value="0"] + .tracker-bar::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-tracker-0.png); } -input.sheet-tracker[value="1"] + .sheet-tracker-bar:before { +input.tracker[value="1"] + .tracker-bar::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-tracker-1.png); } -input.sheet-tracker[value="2"] + .sheet-tracker-bar:before { +input.tracker[value="2"] + .tracker-bar::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-tracker-2.png); } -input.sheet-tracker[value="3"] + .sheet-tracker-bar:before { +input.tracker[value="3"] + .tracker-bar::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-tracker-3.png); } -input.sheet-tracker[value="4"] + .sheet-tracker-bar:before { +input.tracker[value="4"] + .tracker-bar::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-tracker-4.png); } -input[type=number].sheet-tracker-number { +input[type=number].tracker-number { font-size: 16px; width: 1em; } -input[type=number].sheet-tracker-number:hover, -input[type=number].sheet-tracker-number:focus { +input[type=number].tracker-number:hover, +input[type=number].tracker-number:focus { font-size: 12px; width: 3em; } -.sheet-tracker-label { +.tracker-label { font-size: 16px; } /* Chrome, Safari, Edge, Opera */ -input.sheet-tracker-number::-webkit-outer-spin-button, -input.sheet-tracker-number::-webkit-inner-spin-button { +input.tracker-number::-webkit-outer-spin-button, +input.tracker-number::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } -input.sheet-tracker-number:hover::-webkit-outer-spin-button, -input.sheet-tracker-number:hover::-webkit-inner-spin-button, -input.sheet-tracker-number:focus::-webkit-outer-spin-button, -input.sheet-tracker-number:focus::-webkit-inner-spin-button { +input.tracker-number:hover::-webkit-outer-spin-button, +input.tracker-number:hover::-webkit-inner-spin-button, +input.tracker-number:focus::-webkit-outer-spin-button, +input.tracker-number:focus::-webkit-inner-spin-button { -webkit-appearance: auto; margin: inherit; } -.sheet-whole { - color: black; +.whole { + color: var(--tsl-text); } -.sheet-whole ul li { +.whole ul li { background: url('https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-bullet.png') no-repeat left top; background-size: 14px 14px; margin-left: -14px; @@ -1253,19 +1297,19 @@ input.sheet-tracker-number:focus::-webkit-inner-spin-button { vertical-align: top; } -.sheet-result.sheet-hit { +.result.hit { background: url('https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-hit.png') no-repeat left top; } -.sheet-result.sheet-mixed { +.result.mixed { background: url('https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-mixed.png') no-repeat left top; } -.sheet-result.sheet-miss { +.result.miss { background: url('https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-miss.png') no-repeat left top; } -.sheet-result.sheet-hit, .sheet-result.sheet-mixed, .sheet-result.sheet-miss { +.result.hit, .result.mixed, .result.miss { background-size: 26px 18px; margin-left: 11px; padding-left: 29px; @@ -1274,12 +1318,12 @@ input.sheet-tracker-number:focus::-webkit-inner-spin-button { text-indent: 0; } -.sheet-string .sheet-string-mask, -.sheet-string .sheet-string-mask ~ .sheet-string-checked-reveal { +.string .string-mask, +.string .string-mask ~ .string-checked-reveal { display: none; } -.sheet-string-mask:checked ~ .sheet-string-checked-reveal { +.string-mask:checked ~ .string-checked-reveal { display: block; } @@ -1289,7 +1333,7 @@ textarea { width: calc( 100% - 12px ); /* Note to fred: the spaces between terms in calc are apparently meaningful and needed */ } -.sheet-smallbutton { +.smallbutton { font-size: 12px; } @@ -1297,19 +1341,19 @@ ul { margin-block-end: 6px; } -.sheet-xptrack, .sheet-xptrack .sheet-fillme { +.xptrack, .xptrack .fillme { text-align: center; font-size: 24px; } -.sheet-track-container { +.track-container { text-align: center; text-indent: 0; margin-top: 6px; white-space: nowrap; } -.sheet-track-container input[type="radio"] { +.track-container input[type="radio"] { opacity: 0.0; width: 24px; height: 24px; @@ -1321,7 +1365,7 @@ ul { z-index: 1; } -.sheet-track-container input[type="radio"] + span::before { +.track-container input[type="radio"] + span::before { margin-right: -2px; margin-left: -3px; margin-top: 1px; @@ -1334,43 +1378,43 @@ ul { font-size: 12px; } -.sheet-track-container input[type="radio"][value="0"] + span::before { +.track-container input[type="radio"][value="0"] + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-off0.png); } -.sheet-track-container input[type="radio"][value="1"] + span::before { +.track-container input[type="radio"][value="1"] + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-off1.png); } -.sheet-track-container input[type="radio"][value="2"] + span::before { +.track-container input[type="radio"][value="2"] + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-off2.png); } -.sheet-track-container input[type="radio"][value="3"] + span::before { +.track-container input[type="radio"][value="3"] + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-off3.png); } -.sheet-track-container input[type="radio"][value="4"] + span::before { +.track-container input[type="radio"][value="4"] + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-off4.png); } -.sheet-track-container input[type="radio"][value="0"]:checked + span::before { +.track-container input[type="radio"][value="0"]:checked + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-on0.png); } -.sheet-track-container input[type="radio"][value="1"]:checked + span::before { +.track-container input[type="radio"][value="1"]:checked + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-on1.png); } -.sheet-track-container input[type="radio"][value="2"]:checked + span::before { +.track-container input[type="radio"][value="2"]:checked + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-on2.png); } -.sheet-track-container input[type="radio"][value="3"]:checked + span::before { +.track-container input[type="radio"][value="3"]:checked + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-on3.png); } -.sheet-track-container input[type="radio"][value="4"]:checked + span::before { +.track-container input[type="radio"][value="4"]:checked + span::before { content: url(https://raw.githubusercontent.com/fredhicks/ehp-roll20/master/art/tsl-track-on4-animated.gif); } diff --git a/Thirsty Sword Lesbians/TSL.html b/Thirsty Sword Lesbians/TSL.html index 97b3283a1c..a6ed3d1e36 100644 --- a/Thirsty Sword Lesbians/TSL.html +++ b/Thirsty Sword Lesbians/TSL.html @@ -3144,6 +3144,136 @@ pbother: "no" } ] + }, + "bladesoul": { + name: "The Bladesoul", + bio: "The Bladesoul is a shapeshifter with the power to become a living weapon. They are dangerous on their own, but only unleash their true potential in the hands of one they trust. Their central conflict lies in giving their all to support the people they care for versus loving themselves even when they aren’t being “useful.”", + relationships: [ + "Who do you most trust to be gentle with your feelings?", + "Who has asked the most of you?", + "Who seems like they could hold their own in a fight with you?" + ], + look: { + demeanor: "cold demeanor, witty demeanor, protective demeanor", + clothes: "pristine clothes, ripped clothes, flashy clothes, minimal clothes", + sword: "you become: an ornate sword, a savage sword, an ever-changing sword" + }, + startstats: [ + { daring: 1, grace: 0, heart: 1, wit: -1, spirit: 0 }, + { daring: 0, grace: 1, heart: 1, wit: 0, spirit: -1 } + ], + moves: [ + { + subheader: "Becoming the Blade", + pbdefault: "yes", + pbother: "no" + }, + { + name: "Becoming the Blade", + body: "You don’t need to carry a weapon – you are the weapon. You have the ability to change between your human form and blade form at will. While you are in blade form, you can communicate as normal, but your mobility is limited, so you must choose an individual to act as your wielder. As long as you and your wielder both consent, you share a telepathic link whenever you fight together. If you are ever defeated or rendered unconscious in blade form, you immediately shift back into your human form.", + pbdefault: "yes", + pbother: "no" + }, + { + subheader: "Synchronicity", + pbdefault: "yes", + pbother: "no" + }, + { + name: "Synchronicity", + body: "You align your heart with your wielder’s to unleash your true power. Whenever you gain a String on your wielder, or your wielder gets a String on you, gain 1 point of Synchronicity, up to a maximum of 5. While you are at maximum Synchronicity, you are so attuned to your wielder that you achieve a nearly magical link.", + preamble: "You can spend 5 points of Synchronicity to unleash a mighty Finishing Blow. Roll Fight or Defy Disaster, and add your wielder’s Daring or Grace to the result in addition to your own. On a result of 13+ you can perform an otherwise impossible feat of supernatural might or skill. This can be used in either form.", + alternative: "Whenever you use your Finishing Blow, or choose a new wielder, reset your Synchronicity to 0.", + blanks: [ + { + name: "Current Synchronicity (max 5)", + type: "scoreonly", + score: 0, + checkbox: "no" + } + ], + pbdefault: "yes", + pbother: "no" + }, + { + name: "We Fight As One", + body: "While you are in your human form, even your bare hands are as deadly as the sharpest blade. Whenever you roll a 7+ to Fight, you must choose to inflict a Condition.", + preamble: "While you are in your blade form, you are unable to roll danger moves, and must rely on your wielder to do so for you. Whenever your wielder rolls to Fight or Defy Danger, if you Influence With a String, you can add a +2 to their roll instead of a +1. If your wielder would gain a Condition, you can give them a String on you to gain that Condition instead.", + pbdefault: "yes", + pbother: "no" + }, + { + subheader: "Playbook Moves", + instructions: "(start with the move marked and choose two more)", + pbdefault: "yes" + }, + { + name: "Don’t Give Up!", + body: "Fighting side by side grants you a special insight into your companion’s emotional state. Once per scene, when you roll Emotional Support during a physical confrontation, if the person you’re supporting opens up to you, they clear a Condition even if you roll a 6-. They can clear two Conditions with the same Emotional Support action when you use this move.", + rolled: "yes", + rolldefault: "heart", + pbdefault: "yes" + }, + { + name: "The Sword that Protects", + body: "You won’t allow anyone or anything to threaten the ones you love. Once per session, you may take an excessively destructive action towards a person or things that is causing an ally distress. If the person you’re defending approves of the act, they clear a Condition. If they disapprove of the act, you Stagger." + }, + { + name: "Make Them Look Good", + body: "You know how to give an ally the spotlight. When you roll to Entice after doing something impressive, on a 7+ you may choose to direct the benefits to another PC as if they had gotten the same result.", + rolled: "yes", + rolldefault: "heart" + }, + { + name: "Our Hearts Beat Together", + body: "As long as you and another PC are Smitten with each other, they always count as your wielder, even when separated. Being shared or handed off between wielders does not reset your Synchronicity to 0. If you are otherwise stolen or lost in your blade form, reset your Synchronicity to 0." + }, + { + name: "Pain Begets Pain", + body: "Your wielder may roll +Spirit instead of +Daring to Fight. If they do so, they must take a Condition immediately after determining the result of the roll. On a 7+, the target of their attack takes the same Condition. Your wielder can inflict two Conditions with the same Fight action using this move.", + preamble: "Additionally, you may add their Spirit to your Finishing Blow instead of their Daring." + }, + { + name: "Clashing Souls", + body: "When you’re in a physical confrontation, you can roll +Heart to call out to your opponent and make an impassioned speech about why violence isn’t the answer.", + hit: "Choose 2 of the following.", + mixed: "On a 7-9 choose 1.", + rolled: "yes", + rolldefault: "heart", + mixedbullets: [ + "Your opponent’s resolve falters, give an ally +1 forward to deescalate the confrontation", + "Your opponent questions their actions, inflict a Condition", + "Your opponent reveals a personal truth, gain a String on them and increase your Synchronicity by 1." + ], + }, + { + name: "On The Edge", + body: "When you gain your third String on another PC, you may immediately confess a strong, personal feeling that relates to them and that they were not previously aware of. If they react positively towards your confession, gain an additional String on them at the end of the scene. If they react poorly, take a Condition." + }, + { + subheader: "Truths of Heart and Blade", + pbdefault: "yes", + pbother: "no" + }, + { + name: "What can I do for you?", + body: "When you become Smitten with someone, say why, give them a String, and answer this question:", + bullets: [ + "What useful act do you believe their affection for you is contingent on?" + ], + pbdefault: "yes", + pbother: "no" + }, + { + name: "Cut to the Quick", + body: "When you Figure Out a Person in physical conflict, you may additionally ask one of these questions, even on a 6-:", + bullets: [ + "What stirs your soul to battle?", "What would you give your life to protect?" + ], + pbdefault: "yes", + pbother: "no" + } + ] } }; @@ -5105,9 +5235,9 @@ -
+
E
-
+
@@ -5129,7 +5259,7 @@
- + @@ -5159,7 +5289,7 @@
-
+
-
+
:
@@ -5176,7 +5306,7 @@
-
+
@@ -5184,7 +5314,7 @@
-
+
diff --git a/Thirsty Sword Lesbians/sheet.json b/Thirsty Sword Lesbians/sheet.json index 1e757385e9..1a5fd91ad0 100644 --- a/Thirsty Sword Lesbians/sheet.json +++ b/Thirsty Sword Lesbians/sheet.json @@ -1,10 +1,9 @@ { - "html": "TSL.html", - "css": "TSL.css", - "authors": "Fred Hicks (Evil Hat Productions)", - "roll20userid": "3844812", - "preview": "TSL.png", - "compendium": "tsl", - "instructions": "Pop on in, choose a playbook, and get playing! Please note that a new character sheet may take several seconds to render the first time, leaving that tab blank while the sheet populates all of its data. If you run into any issues, have suggestions, or anything else, please reach out to Evil Hat at feedback@evilhat.com. You can learn more about TSL at http://sword.gay — If you're a sheet developer and looking to make changes to this sheet's code, don't. We maintain an external copy as the authoritative source; problems that emerge with the sheet are our customer service problem, not yours. Changes you make are likely to be erased. So talk to us before making changes.", - "legacy": true -} + "html": "TSL.html", + "css": "TSL.css", + "authors": "Fred Hicks (Evil Hat Productions)", + "roll20userid": "3844812", + "preview": "TSL.png", + "instructions": "Pop on in, choose a playbook, and get playing! Please note that a new character sheet may take several seconds to render the first time, leaving that tab blank while the sheet populates all of its data. If you run into any issues, have suggestions, or anything else, please reach out to Evil Hat at feedback@evilhat.com. You can learn more about TSL at http://sword.gay — If you're a sheet developer and looking to make changes to this sheet's code, don't. We maintain an external copy as the authoritative source; problems that emerge with the sheet are our customer service problem, not yours. Changes you make are likely to be erased. So talk to us before making changes.", + "legacy": false +} \ No newline at end of file