diff --git a/Altered Carbon Official/altered-carbon.css b/Altered Carbon Official/altered-carbon.css new file mode 100644 index 0000000000..6a7a4df33c --- /dev/null +++ b/Altered Carbon Official/altered-carbon.css @@ -0,0 +1,877 @@ +@import url("https://fonts.googleapis.com/css?family=Montserrat:200|Montserrat:400|Montserrat:600|Montserrat:700|Montserrat:800|Montserrat:900&display=swap"); +.sheet-ac-wrapper { + background: white; + color: black; + font-family: Montserrat, sans-serif; + font-size: 10pt; +} +.sheet-ac-wrapper * { + box-sizing: border-box; +} +.sheet-ac-wrapper input { + height: 1.75em; +} +.sheet-ac-wrapper input[type=number] { + -moz-appearance: textfield; + text-align: center; +} +.sheet-ac-wrapper input[type=number]::-webkit-outer-spin-button, .sheet-ac-wrapper input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.sheet-ac-wrapper input[type=number], +.sheet-ac-wrapper input[type=text], +.sheet-ac-wrapper textarea, +.sheet-ac-wrapper select { + min-width: 0; + width: 100%; + border-radius: 0; + background-color: transparent; + color: black; + font-family: "Montserrat", Verdana, sans-serif; + font-size: 10pt; + font-variant: normal; +} +.sheet-ac-wrapper input[type=number]:hover, +.sheet-ac-wrapper input[type=text]:hover, +.sheet-ac-wrapper textarea:hover, +.sheet-ac-wrapper select:hover { + border: 1px solid #38e0d5; + box-shadow: 0 0 5px #38e0d5; +} +.sheet-ac-wrapper button:hover { + border: 1px solid #38e0d5; + box-shadow: 0 0 5px #38e0d5; +} +.sheet-ac-wrapper select { + -webkit-appearance: none; + -moz-appearance: none; + height: 1.75em; + cursor: pointer; + background: transparent url("https://s3.amazonaws.com/files.d20.io/images/138210258/mZTqw1vke8SrkprMJmiZQw/med.png?1590443723") right 5px center no-repeat; +} +.sheet-ac-wrapper textarea { + resize: vertical; + width: 100%; + margin: 0; + padding: 0; + border: 0; + border-radius: 0; +} +.sheet-ac-wrapper label { + padding: 0; + margin: 0; +} +.sheet-ac-wrapper .itemcontrol { + position: relative; +} +.sheet-ac-wrapper .itemcontrol button.repcontrol_del, +.sheet-ac-wrapper .itemcontrol a.repcontrol_move { + display: block; + top: calc(50% - 1.5rem); + position: relative; + border: 1px solid black; + border-radius: 0; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + box-shadow: none; + line-height: 2em; + text-shadow: none; + font-weight: bold; +} +.sheet-ac-wrapper .itemcontrol button.repcontrol_del:hover, +.sheet-ac-wrapper .itemcontrol a.repcontrol_move:hover { + border: 1px solid #38e0d5; + box-shadow: 0 0 5px #38e0d5; +} +.sheet-ac-wrapper .itemcontrol button.repcontrol_del { + margin-right: 0.25rem; + background: transparent; + border: 1px solid #d2232a; + color: #d2232a; +} +.sheet-ac-wrapper .itemcontrol button.repcontrol_del:hover { + border: 1px solid #d2232a; + box-shadow: 0 0 5px #d2232a; +} +.sheet-ac-wrapper .itemcontrol a.repcontrol_move { + margin-left: 0.25rem; + background: transparent; + color: black; +} +.sheet-ac-wrapper .itemcontrol a.repcontrol_move:hover { + border: 1px solid #38e0d5; + box-shadow: 0 0 5px #38e0d5; +} +.sheet-ac-wrapper .repcontrol { + padding: 0.25em; + background-color: transparent; +} +.sheet-ac-wrapper .repcontrol button.repcontrol_add, +.sheet-ac-wrapper .repcontrol button.repcontrol_del, +.sheet-ac-wrapper .repcontrol button.repcontrol_move, +.sheet-ac-wrapper .repcontrol button.repcontrol_edit { + display: block; + border: 1px solid black; + border-radius: 0; + background: none; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + box-shadow: none; + font-size: 0; + line-height: 1em; + text-shadow: none; +} +.sheet-ac-wrapper .repcontrol button.repcontrol_add:hover, +.sheet-ac-wrapper .repcontrol button.repcontrol_del:hover, +.sheet-ac-wrapper .repcontrol button.repcontrol_move:hover, +.sheet-ac-wrapper .repcontrol button.repcontrol_edit:hover { + border: 1px solid #38e0d5; + box-shadow: 0 0 5px #38e0d5; +} +.sheet-ac-wrapper .repcontrol button.repcontrol_add:before { + display: block; + content: "&"; + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; +} +.sheet-ac-wrapper .repcontrol button.repcontrol_edit:before { + display: block; + content: "p"; + right: 5px; + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; +} +.sheet-ac-wrapper h1 { + font-size: 16pt; + font-weight: 700; + letter-spacing: 2px; + text-align: center; + text-transform: uppercase; +} + +.sheet-ac-trait__label, .sheet-ac-header__label { + font-weight: 400; + text-transform: uppercase; +} + +.sheet-ac-stat__value input[type=number], .sheet-ac-stat__header input[type=number], [type=number].sheet-ac-header__input, .sheet-ac-stat__value input[type=text], .sheet-ac-stat__header input[type=text], [type=text].sheet-ac-header__input { + margin: 0; + padding: 0; + border: 0; +} + +.sheet-ac-header { + padding: 1em; + background: linear-gradient(164deg, #042938 0%, #031f27 100%); + background-color: #042938; + color: white; +} +.sheet-ac-header__grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 0 1em; +} +.sheet-ac-header__item, .sheet-ac-header__item--subitem { + grid-column: span 2; +} +.sheet-ac-header__item--subitem { + grid-column: span 1; +} +.sheet-ac-header__label { + font-family: 12pt; +} +.sheet-ac-header__input[type=number], .sheet-ac-header__input[type=text] { + border: 1px solid transparent; + border-bottom: 1px solid white; + color: white !important; + font-size: 12pt !important; + font-weight: 800 !important; + text-transform: uppercase; +} +.sheet-ac-nav { + display: flex; + flex-direction: row; + justify-content: flex-end; +} +.sheet-ac-nav > label { + margin: 5px; +} +.sheet-ac-nav__item { + width: auto; + padding: 5px; + cursor: pointer; + font-size: 11pt; + font-weight: 600; + text-transform: uppercase; +} +.sheet-ac-nav__label { + padding: 0 5px; + border-radius: 3px; + border: 1px solid black; +} +.sheet-ac-nav__label:hover { + border: 1px solid #38e0d5; + box-shadow: 0 0 5px #38e0d5; +} +.sheet-ac-nav__hide { + display: none; +} +.sheet-ac-nav input[type=radio]:checked + .sheet-ac-nav__label { + border: 1px solid #00a99d; + background: rgba(0, 169, 157, 0.15); + color: #00a99d; +} +.sheet-ac-body__stats { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 1em; +} +.sheet-ac-body__traits { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + margin: 1em 0; + padding: 1em 1em; + background-color: #042938; + background: linear-gradient(164deg, #042938 0%, #031f27 100%); + color: white; +} +.sheet-ac-body__traits .itemcontrol button.repcontrol_del, +.sheet-ac-body__traits .itemcontrol a.repcontrol_move { + border: 1px solid white; + color: white; +} +.sheet-ac-body__traits .itemcontrol a.repcontrol_move { + color: white; +} +.sheet-ac-body__traits .repcontrol { + margin-bottom: 1em; +} +.sheet-ac-body__traits .repcontrol button.repcontrol_add, +.sheet-ac-body__traits .repcontrol button.repcontrol_del, +.sheet-ac-body__traits .repcontrol button.repcontrol_move, +.sheet-ac-body__traits .repcontrol button.repcontrol_edit { + border: 1px solid white; + color: white; +} +.sheet-ac-body__misc { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 1em; +} +.sheet-ac-stat__header { + display: grid; + grid-template-columns: 1fr 5em; + align-items: center; + padding: 0.125em 0.5em; + background: #bd9c55; + color: white; + font-size: 12pt; + font-weight: 800; + text-transform: uppercase; +} +.sheet-ac-stat__title { + letter-spacing: 2px; +} +.sheet-ac-stat__value { + display: grid; + grid-template-columns: 1fr 0.75fr; + align-items: center; + color: white; +} +.sheet-ac-stat__value input[type=text], .sheet-ac-stat__value input[type=number] { + background: rgba(0, 0, 0, 0.125); + color: white; + font-size: 14pt; + font-weight: 800; +} +.sheet-ac-stat__value span { + text-align: center; + font-weight: 600; +} +.sheet-ac-stat__bonus { + font-size: 12pt; +} +.sheet-ac-stat__bonus:before, .sheet-ac-stat__bonus:after { + display: inline; +} +.sheet-ac-stat__bonus:before { + content: "("; +} +.sheet-ac-stat__bonus:after { + content: ")"; +} +.sheet-ac-stat__body { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.25em 0; +} +.sheet-ac-skill { + display: grid; + grid-template-columns: 1fr 3.5em; + gap: 0; + align-items: center; +} +.sheet-ac-skill__name[type=roll] { + display: flex; + flex-grow: 0; + align-items: center; + border: 0; + background: none; + font-size: 9pt !important; + font-weight: 600; + text-align: left; + text-transform: uppercase; +} +.sheet-ac-skill__name[type=roll]:before { + display: none; +} +.sheet-ac-skill__name[type=roll]:after { + display: block; + flex-grow: 1; + content: ""; + height: 0; + margin: 0; + margin-left: 4px; + border-bottom: 3px solid #bd9c55; +} +.sheet-ac-skill__name[type=roll]:hover { + color: #38e0d5; + box-shadow: none !important; + border: 0 !important; +} +.sheet-ac-skill__name[type=roll]:hover:after { + border-color: #38e0d5; +} +.sheet-ac-skill__value { + margin: 0; + padding: 0; +} +.sheet-ac-skill__value select { + margin: 0 !important; + padding: 0; + border: 0; + font-size: 10pt; + line-height: 10pt; +} +.sheet-ac-traits { + border-right: 1px solid rgba(255, 255, 255, 0.25); + padding: 1em; +} +.sheet-ac-traits:last-child { + border-right: 0; +} +.sheet-ac-traits__header { + padding: 0.5em; + margin-bottom: 0.5em; + font-weight: 800; + text-align: center; + text-transform: uppercase; +} +.sheet-ac-trait { + margin-bottom: 1em; + border: 1px solid rgba(0, 169, 157, 0.5); +} +.sheet-ac-trait__title { + display: flex; + align-items: center; + flex-flow: row nowrap; + margin-bottom: 0; + padding: 0; + border: 1px solid transparent; +} +.sheet-ac-trait__title > div { + flex-shrink: 0; + margin-right: 5px; +} +.sheet-ac-trait__title > input { + flex-grow: 1; + height: 2.5em; + background: rgba(0, 0, 40, 0.25) !important; + border: 1px solid transparent; + border-bottom: 1px solid rgba(0, 169, 157, 0.5); + border-radius: 0; + color: #38e0d5 !important; + font-size: 9pt !important; + font-weight: 600 !important; +} +.sheet-ac-trait__description { + padding: 0; +} +.sheet-ac-trait__description textarea { + width: 100%; + height: 7.5em; + padding: 0.25em; + margin: 0; + border: 1px solid transparent; + border-radius: none; + background: rgba(0, 0, 40, 0.25); + color: white; + font-size: 9pt; +} +.sheet-ac-networks__header, .sheet-ac-baggage__header { + color: #d2232a; + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; +} +.sheet-ac-networks__item, .sheet-ac-baggage__item { + display: flex; + align-items: center; + flex-flow: row nowrap; + margin-bottom: 0.5em; + border: 0; + border-bottom: 1px solid #aaa; +} +.sheet-ac-networks__item:before, .sheet-ac-baggage__item:before { + display: inline-block; + flex-shrink: 0; + content: "4"; + margin-right: 0.25em; + color: #00a99d; + font-family: "Pictos"; +} +.sheet-ac-networks__item > input, .sheet-ac-baggage__item > input { + flex-grow: 1; + border: 0; + font-size: 10pt !important; +} +.sheet-ac-baggage textarea { + height: 4.5em; +} +.sheet-ac-baggage__item { + align-items: flex-start !important; +} +.sheet-ac-baggage__item:before { + margin-top: 0.1em; +} +.sheet-ac-biometrics__header { + color: #d2232a; + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; +} +.sheet-ac-biometrics__container { + border: 1px solid #bd9c55; + padding: 0.5em; +} +.sheet-ac-biometrics__row { + display: flex; + flex-flow: row nowrap; + align-items: center; +} +.sheet-ac-biometrics__row--textarea { + margin-top: 0.5em; +} +.sheet-ac-biometrics__row--textarea textarea { + background: #eee; +} +.sheet-ac-biometrics__label { + flex-shrink: 0; + font-size: 10pt; + font-weight: 600; + text-transform: uppercase; +} +.sheet-ac-biometrics__label:after { + display: inline; + content: ":"; + margin-right: 0.5em; +} +.sheet-ac-biometrics__input, .sheet-ac-health__input--minmax, .sheet-ac-biometrics__input--minmax { + flex-grow: 1; + font-size: 10pt; + font-weight: 600; +} +.sheet-ac-biometrics__input input[type=number], .sheet-ac-health__input--minmax input[type=number], .sheet-ac-biometrics__input--minmax input[type=number], +.sheet-ac-biometrics__input input[type=text], +.sheet-ac-health__input--minmax input[type=text], +.sheet-ac-biometrics__input--minmax input[type=text] { + border: 0; + border-bottom: 1px solid #aaa; +} +.sheet-ac-biometrics__input--minmax { + flex-grow: 0; + display: grid; + grid-template-columns: 1fr 0.5em 1fr; + align-items: center; + width: 50%; +} +.sheet-ac-biometrics textarea { + height: 7.5em; +} +.sheet-ac-health { + margin-top: 2em; +} +.sheet-ac-health__label { + flex-shrink: 0; + font-size: 10pt; + font-weight: 600; + text-transform: uppercase; +} +.sheet-ac-health__label:after { + display: inline; + content: ":"; + margin-right: 0.5em; +} +.sheet-ac-health__input { + flex-grow: 1; + font-size: 10pt; + font-weight: 600; +} +.sheet-ac-health__input input[type=number], +.sheet-ac-health__input input[type=text] { + border: 0; + border-bottom: 1px solid #aaa; +} +.sheet-ac-health__input--minmax { + flex-grow: 0; + display: grid; + grid-template-columns: 1fr 0.5em 1fr; + align-items: center; + width: 30%; +} +.sheet-ac-health__row { + display: flex; + flex-flow: row nowrap; + align-items: center; + margin-bottom: 0.5em; +} +.sheet-ac-health__row--textarea textarea { + background: #eee; +} +.sheet-ac-equipment { + display: grid; + grid-template-columns: 1fr 1fr; + align-items: stretch; + gap: 1em 0; +} +.sheet-ac-equipment > * { + padding: 0.75em; +} +.sheet-ac-equipment__credits { + grid-column: 1/-1; +} +.sheet-ac-equipment__header { + color: #d2232a; + font-size: 14pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; +} +.sheet-ac-equipment__tools { + border-left: 1px dashed #aaa; +} +.sheet-ac-credits { + display: grid; + grid-template-columns: repeat(6, 1fr); + gap: 1.5em; + align-items: center; +} +.sheet-ac-credits__title { + color: #d2232a; + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; +} +.sheet-ac-credits__item { + display: flex; + border: 1px solid #00a99d; + border-left: 3px solid #00a99d; + border-right: 3px solid #00a99d; + font-size: 10pt; + font-weight: 600; +} +.sheet-ac-credits__item input { + border: 0; + text-align: center; +} +.sheet-ac-credits__label { + padding: 0.125em; +} +.sheet-ac-credits__input { + margin-left: 0.5em; +} +.sheet-ac-tool, .sheet-ac-item { + margin-bottom: 1.5em; + padding: 0.75em; + border: 2px solid #00a99d; +} +.sheet-ac-tool input, .sheet-ac-item input { + flex-shrink: 1; + border: 0; + width: 100%; +} +.sheet-ac-tool__row, .sheet-ac-item__row, .sheet-ac-tool__row--name, .sheet-ac-tool__row--skillchecks, .sheet-ac-item__row--name, .sheet-ac-item__row--skillchecks { + display: flex; + flex-flow: row nowrap; + align-items: center; + margin-bottom: 1em; +} +.sheet-ac-tool__row input, .sheet-ac-item__row input, .sheet-ac-tool__row--name input, .sheet-ac-tool__row--skillchecks input, .sheet-ac-item__row--name input, .sheet-ac-item__row--skillchecks input { + flex-grow: 1; + border-bottom: 1px solid #aaa; +} +.sheet-ac-tool__row--bonus, .sheet-ac-item__row--bonus { + display: grid; + grid-template-columns: 1fr 1fr; + margin-bottom: 1em; +} +.sheet-ac-tool__row--checks, .sheet-ac-item__row--checks { + display: grid; + grid-template-columns: 1fr 1.5fr; + margin-bottom: 1em; +} +.sheet-ac-tool__row--special, .sheet-ac-item__row--special { + display: grid; +} +.sheet-ac-tool__label, .sheet-ac-item__label, .sheet-ac-tool__label--name, .sheet-ac-item__label--name { + flex-shrink: 0; + font-size: 9pt; + font-weight: 800; +} +.sheet-ac-tool__label:after, .sheet-ac-item__label:after, .sheet-ac-tool__label--name:after, .sheet-ac-item__label--name:after { + display: inline; + content: ":"; + margin-right: 0.5em; +} +.sheet-ac-tool__label--name, .sheet-ac-item__label--name { + color: #d2232a; + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; +} +.sheet-ac-tool__label--small, .sheet-ac-item__label--small { + flex-basis: 1.5em; + font-weight: 400; +} +.sheet-ac-tool__bonus, .sheet-ac-item__bonus { + grid-column: span 2; + display: flex; + flex-flow: row nowrap; + align-items: center; +} +.sheet-ac-tool__checkmarks, .sheet-ac-item__checkmarks { + display: grid; + grid-template-columns: repeat(10, 1fr); +} +.sheet-ac-tool__checkmarks label, .sheet-ac-item__checkmarks label { + cursor: pointer; +} +.sheet-ac-tool__checkmarks label span, .sheet-ac-item__checkmarks label span { + display: block; + height: 1em; + width: 1em; + border-radius: 50%; + background-color: rgba(0, 169, 157, 0.125); + border: 1px solid #38e0d5; +} +.sheet-ac-tool__checkmarks label input[type=radio], .sheet-ac-item__checkmarks label input[type=radio] { + display: none; +} +.sheet-ac-tool__checkmarks label input[type=radio]:checked + span, .sheet-ac-item__checkmarks label input[type=radio]:checked + span { + background-color: #00a99d; +} +.sheet-ac-tool__checkmarks label.sheet-ac-checkmark--red span, .sheet-ac-item__checkmarks label.sheet-ac-checkmark--red span { + background-color: rgba(210, 35, 42, 0.125); + border: 1px solid #d2232a; +} +.sheet-ac-tool__checkmarks label.sheet-ac-checkmark--red input[type=radio], .sheet-ac-item__checkmarks label.sheet-ac-checkmark--red input[type=radio] { + display: none; +} +.sheet-ac-tool__checkmarks label.sheet-ac-checkmark--red input[type=radio]:checked + span, .sheet-ac-item__checkmarks label.sheet-ac-checkmark--red input[type=radio]:checked + span { + background-color: #d2232a; +} +.sheet-ac-tool__price, .sheet-ac-item__price { + display: flex; + flex-flow: row nowrap; + align-items: center; + margin: 0.25em; + padding: 0.25em; + border: 1px solid #bd9c55; +} +.sheet-ac-tool__price .sheet-ac-tool__label, +.sheet-ac-tool__price .sheet-ac-item__label, +.sheet-ac-tool__price .sheet-ac-tool__label--name, +.sheet-ac-tool__price .sheet-ac-item__label--name, .sheet-ac-item__price .sheet-ac-tool__label, +.sheet-ac-item__price .sheet-ac-item__label, +.sheet-ac-item__price .sheet-ac-tool__label--name, +.sheet-ac-item__price .sheet-ac-item__label--name { + font-size: 8pt; + font-weight: 400; +} +.sheet-ac-tool__price input[type=text], .sheet-ac-item__price input[type=text] { + width: 4em; +} +.sheet-ac-tool__special textarea, .sheet-ac-item__special textarea { + border: 1px solid #aaa; + height: 5em; +} +.sheet-ac-tool__triggered, .sheet-ac-item__triggered { + display: grid; + grid-template-columns: 1fr 2fr; + align-items: center; + gap: 0.5em; + width: 100%; +} +.sheet-ac-tool__triggered .sheet-ac-item__checkmarks, .sheet-ac-item__triggered .sheet-ac-item__checkmarks { + grid-template-columns: repeat(5, 1fr); +} +.sheet-ac-tool__special .sheet-ac-tool__label, +.sheet-ac-tool__special .sheet-ac-item__label, +.sheet-ac-tool__special .sheet-ac-tool__label--name, +.sheet-ac-tool__special .sheet-ac-item__label--name, .sheet-ac-tool__triggered .sheet-ac-tool__label, +.sheet-ac-tool__triggered .sheet-ac-item__label, +.sheet-ac-tool__triggered .sheet-ac-tool__label--name, +.sheet-ac-tool__triggered .sheet-ac-item__label--name, .sheet-ac-item__special .sheet-ac-tool__label, +.sheet-ac-item__special .sheet-ac-item__label, +.sheet-ac-item__special .sheet-ac-tool__label--name, +.sheet-ac-item__special .sheet-ac-item__label--name, .sheet-ac-item__triggered .sheet-ac-tool__label, +.sheet-ac-item__triggered .sheet-ac-item__label, +.sheet-ac-item__triggered .sheet-ac-tool__label--name, +.sheet-ac-item__triggered .sheet-ac-item__label--name { + grid-column: 1/-1; + color: #00a99d; + font-size: 10pt; +} +.sheet-ac-tool__wrap, .sheet-ac-item__wrap { + font-size: 14pt; + font-weight: 600; +} + +.sheet-ac-body { + display: none; +} + +.sheet-ac-equipment { + display: none; +} + +input[name=attr_nav][value="Character Sheet"] ~ .sheet-ac-body { + display: block; +} + +input[name=attr_nav][value=Equipment] ~ .sheet-ac-equipment { + display: grid; +} + +.sheet-rolltemplate-alteredcarbon { + background: white; + padding: 0.5em; +} +.sheet-rolltemplate-alteredcarbon h1 { + margin-bottom: 0.25em; + color: #00a99d; + font-size: 14pt; + letter-spacing: 2px; + line-height: 14pt; + text-align: center; + text-transform: uppercase; +} +.sheet-rolltemplate-alteredcarbon h2 { + margin-bottom: 0.25em; + color: #d2232a; + font-size: 10pt; + font-weight: 600; + line-height: 10pt; + text-align: center; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-container { + padding: 0.5em; + border: 2px solid #38e0d5; + color: black; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-target { + margin: 0.5em 0; + padding: 0.5em; + text-align: center; + background: #042938; + color: white; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-target .sheet-ac-roll-target-label { + font-size: 12pt; + font-weight: 600; + letter-spacing: 2px; + text-transform: uppercase; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-target .sheet-ac-roll-target-label:after { + display: inline; + content: ":"; + margin-right: 0.75em; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-target .sheet-ac-roll-target-value { + color: #38e0d5; + font-size: 12pt; + font-weight: 800; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result { + display: flex; + justify-content: space-around; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-roll *, .sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-luck *, .sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-bonus * { + text-align: center; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-roll strong, .sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-luck strong, .sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-bonus strong { + display: block; + font-size: 9pt; + font-weight: 400; + text-transform: uppercase; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-roll div, .sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-luck div, .sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result-bonus div { + width: 1em; + height: 1em; + margin: auto; + padding: 0.25em; + border: 1px solid #aaa; + font-size: 16pt; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result .importantroll, +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result .fullcrit, +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result .fullfail, +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result .inlinerollresult { + border: none; + background: transparent; + font-family: inherit; + line-height: 1em; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result .fullcrit { + color: #00a99d; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-result .fullfail { + color: #d2232a; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-tag { + margin-top: 0.5em; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-tag .sheet-ac-roll-ace { + padding: 5px; + border: 1px solid #00a99d; + color: #00a99d; + font-size: 12pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-tag .sheet-ac-roll-stroke { + padding: 5px; + background: #38e0d5; + color: white; + font-size: 12pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; +} +.sheet-rolltemplate-alteredcarbon .sheet-ac-roll-tag .sheet-ac-roll-catastrophe { + padding: 5px; + background: #d2232a; + color: white; + font-size: 12pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; +} diff --git a/Altered Carbon Official/altered-carbon.html b/Altered Carbon Official/altered-carbon.html new file mode 100644 index 0000000000..f3bcde6353 --- /dev/null +++ b/Altered Carbon Official/altered-carbon.html @@ -0,0 +1,1025 @@ + +
+

DHF Protectorate Citizenship Record

+
+
+
+
Character Name
+ +
+
+
Planet of Origin
+ +
+
+
Age
+ +
+
+
Sleeve Type
+ +
+
+
Archetype
+ +
+
+
Campaign
+ +
+
+
Stackpoints
+ +
+
+
Influence Points
+ +
+
+
Ego Points
+ +
+
+
Wealth Level
+ +
+
+
+
+ + +
+ +
+
+
+
+
Strength
+
+ - +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
Perception
+
+ - +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
Empathy
+
+ - +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
Willpower
+
+ - +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
Acuity
+
+ - +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
Intelligence
+
+ - +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+
+
+
Traits
+
+
+
+ +
+
+ +
+
+
+
+
+
Abilities
+
+
+
+ +
+
+ +
+
+
+
+
+
Specializations
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
Networks/Contacts
+
+
+ +
+
+
+
+
Baggage/Scandals
+
+
+ +
+
+
+
+
+
+
Sleeve Biometrics
+
+
+
Tech Points
+
+ / + +
+
+
+
Damage Threshold
+
+ +
+
+
+
Special
+
+ +
+
+
+
+
+
+
Health Points
+
+ / + +
+
+
+
Injuries
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
Lv.1
+ +
+
+
Lv.2
+ +
+
+
Lv.3
+ +
+
+
Lv.4
+ +
+
+
Lv.5
+ +
+
+
+
+
Equipment
+
+
+
+
Name
+ +
+
Price Level
+ +
+
+
+
Skill Check(s)
{ + } +
+
+
+ +
×
+
Bonus Dice
+
+
+
+
Tech Point Chassis
+
+ + + + + + + + + + +
+
+
+
Tech Points Used
+
+ + + + + + + + + + +
+
+
+
+
Special
+ +
+
+
+
+
Triggered Effects
+
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+ + + + + +
+
+ +
+
+
+
+
+
+
+
Tools
+
+
+
+
Name
+ +
+
Price Level
+ +
+
+
+
Skill Check(s)
{ + } +
+
+
+ +
×
+
Bonus Dice
+
+
+
+
Skill Check(s)
{ + } +
+
+
+ +
×
+
Bonus Dice
+
+
+
+
Tech Point Chassis
+
+ + + + + +
+
+
+
Tech Points Used
+
+ + + + + +
+
+
+
+
Special
+ +
+
+
+
+
+
+
+ +
{{#name}} +

{{name}}

{{/name}} +
{{#character_name}} +

{{character_name}}

{{/character_name}} + {{#target_number}} +
{{target_number}}
{{/target_number}} +
{{#roll}} +
+
{{roll}}
+
{{/roll}} + {{#rollGreater() luck 0}} +
+
{{luck}}
+
{{/rollGreater() luck 0}} + {{#rollGreater() bonus 0}} +
+
{{bonus}}
+
{{/rollGreater() bonus 0}} +
+
+ {{#rollWasCrit() roll}} + {{#^rollWasCrit() luck}} +
{{/^rollWasCrit() luck}} + {{/rollWasCrit() roll}} + {{#^rollWasCrit() roll}} + {{#rollWasCrit() bonus}} +
{{/rollWasCrit() bonus}} + {{/^rollWasCrit() roll}} + {{#rollWasCrit() roll}} + {{#rollWasCrit() luck}} +
{{/rollWasCrit() luck}} + {{/rollWasCrit() roll}} + {{#rollWasFumble() roll}} + {{#rollWasFumble() luck}} +
{{/rollWasFumble() luck}} + {{/rollWasFumble() roll}} +
+
+
+
+ \ No newline at end of file diff --git a/Altered Carbon Official/altered-carbon.png b/Altered Carbon Official/altered-carbon.png new file mode 100644 index 0000000000..263e4b625c Binary files /dev/null and b/Altered Carbon Official/altered-carbon.png differ diff --git a/Altered Carbon Official/sheet.json b/Altered Carbon Official/sheet.json new file mode 100644 index 0000000000..ea84844111 --- /dev/null +++ b/Altered Carbon Official/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "altered-carbon.html", + "css": "altered-carbon.css", + "authors": "Nic B.", + "roll20userid": "45398", + "preview": "altered-carbon.png", + "instructions": "Official Altered Carbon by Hunters Entertainment" +} \ No newline at end of file diff --git a/Altered Carbon Official/src/js/sheetworker.js b/Altered Carbon Official/src/js/sheetworker.js new file mode 100644 index 0000000000..0e4cfc47bc --- /dev/null +++ b/Altered Carbon Official/src/js/sheetworker.js @@ -0,0 +1,26 @@ + +const updateBonuses = () => { + const array = ["strength","empathy","acuity","perception","willpower","intelligence"]; + + getAttrs(array, values => { + + array.forEach(item => updateBonus(item, values[item])); + + }); +} + +const updateBonus = (stat, new_value) => { + const bonus = Math.floor(new_value/10); + + const updateAttrs = {}; + + updateAttrs[`${stat}_bonus`] = bonus; + + setAttrs(updateAttrs); + + console.log(updateAttrs); +} + +["strength","empathy","acuity","perception","willpower","intelligence"].forEach(item => on(`change:${item}`, eventInfo => updateBonus(item, eventInfo.newValue))); + +on(`sheet:opened`, eventInfo => updateBonuses()) \ No newline at end of file diff --git a/Altered Carbon Official/src/pug/altered-carbon.pug b/Altered Carbon Official/src/pug/altered-carbon.pug new file mode 100644 index 0000000000..2dfe5f64b4 --- /dev/null +++ b/Altered Carbon Official/src/pug/altered-carbon.pug @@ -0,0 +1,221 @@ +include mixins.pug + +.ac-wrapper + h1(data-i18n="DHF Protectorate Citizenship Record") DHF Protectorate Citizenship Record + .ac-header + .ac-header__grid + each entry in ["Character Name", "Planet of Origin", "Age", "Sleeve Type", "Archetype", "Campaign"] + - + const attr = entry.toLowerCase().replace(/ /g,"_"); + .ac-header__item + .ac-header__label(data-i18n=entry)=entry + input.ac-header__input(name=`attr_${attr}`, type="text") + each entry in ["Stackpoints", "Influence Points", "Ego Points", "Wealth Level"] + - const attr = entry.toLowerCase().replace(/ /g,"_"); + .ac-header__item--subitem + .ac-header__label(data-i18n=entry)=entry + input.ac-header__input(name=`attr_${attr}`, type="text") + .ac-nav + each link in ["Character Sheet", "Equipment"] + label.ac-nav__item + input.ac-nav__hide(type="radio", name="attr_nav", value=link) + .ac-nav__label(data-i18n=link)=link + + input.ac-nav__hide(type="hidden", name="attr_nav") + .ac-body + .ac-body__stats + each entry in [{"Strength":["Athletics", "Brawl", "Endurance", "Melee Combat", "Toughness"]},{"Perception":["Detection", "D. Energy Wpns", "Firearms", "Search", "Stealth", "Throw"]},{"Empathy":["Diplomacy", "Expression", "Read Person"]}, {"Willpower":["Composure", "Discipline", "Intimidation"]}, {"Acuity":["Data Analysis", "Data Engineering", "Digi. Networking", "Investigation", "Mechanics", "Navigation", "Pilot", "Survival"]}, {"Intelligence":["Bureaucracy", "Cultures", "Engineering", "Geography", "History", "Science", "Medicine"]}] + - + const block_title = Object.keys(entry)[0]; + const skill_array = Object.values(entry)[0]; + const attr = block_title.toLowerCase().replace(/ /g,"_"); + .ac-stat + .ac-stat__header + .ac-stat__title(data-i18n=block_title)=block_title + .ac-stat__value + input(name=`attr_${attr}`, type="number", value=20) + span.ac-stat__bonus(name=`attr_${attr}_bonus`) - + .ac-stat__body + each skill in skill_array + - + const attr = skill.toLowerCase().replace(/ /g,"_"); + const roll = [ + `&{template:alteredcarbon}`, + `{{name=${skill}}}`, + `{{character_name=@{character_name}}}`, + `{{target_number=?{Target Number|5}}}`, + `{{roll=[[@{${attr}}]]}}`, + `{{bonus=[[?{Number of Bonus Dice|0}?{Bonus|none,0|d20,d20cs1cf20kl1|d12,d12cs1cf12kl1|d10,d10cs1cf10kl1|d8,d8cs1cf8kl1|d6,d6cs1cf6kl1|d4,d4cs1cf4kl1}]]}}`, + `{{luck=[[?{Luck|none,0|d20,d20cs1cf20|d12,d12cs1cf12|d10,d10cs1cf10|d8,d8cs1cf8|d6,d6cs1cf6|d4,d4cs1cf4}]]}}` + ].join(" "); + .ac-skill + button.ac-skill__name(data-i18n=skill, type="roll", value=roll)=skill + .ac-skill__value + select(name=`attr_${attr}`) + +dice-select() + .ac-body__traits + each repeating in ["Traits", "Abilities", "Specializations"] + - const attr = repeating.toLowerCase().replace(/ /g,"_"); + .ac-traits + .ac-traits__header(data-i18n=repeating)=repeating + fieldset(class=`repeating_${attr}`) + .ac-trait + .ac-trait__title + input.ac-trait__input(data-i18n-placeholder="Name", name=`attr_${attr}_name`, type="text") + .ac-trait__description + textarea(data-i18n-placeholder="Description", name=`attr_${attr}_description`) + .ac-body__misc + .ac-body__col + .ac-networks + .ac-networks__header(data-i18n="Networks/Contacts") Networks/Contacts + fieldset(class=`repeating_networks`) + .ac-networks__item + input.ac-networks__input(name="attr_network", type="text") + .ac-baggage + .ac-baggage__header(data-i18n="Baggage/Scandals") Baggage/Scandals + fieldset(class=`repeating_baggage`) + .ac-baggage__item + textarea.ac-baggage__input(name="attr_baggage", type="text") + .ac-body__col + .ac-biometrics + .ac-biometrics__header(data-i18n="Sleeve Biometrics") Sleeve Biometrics + .ac-biometrics__container + .ac-biometrics__row + .ac-biometrics__label(data-i18n="Tech Points") Tech Points + .ac-biometrics__input--minmax + input.ac-minmax(name="attr_techpoints", type="number") + | / + input.ac-minmax(name="attr_techpoints_max", type="number") + .ac-biometrics__row + .ac-biometrics__label(data-i18n="Damage Threshold") Damage Threshold + .ac-biometrics__input + input.ac-minmax(name="attr_damagethreshold", type="text") + .ac-biometrics__row--textarea + .ac-biometrics__label(data-i18n="Special") Special + .ac-biometrics__input + textarea(name="attr_special") + .ac-health + .ac-health__row + .ac-health__label(data-i18n="Health Points") Health Points + .ac-health__input--minmax + input.ac-minmax(name="attr_hitpoints", type="number") + | / + input.ac-minmax(name="attr_hitpoints_max", type="number") + .ac-health__injuries + .ac-health__label(data-i18n="Injuries") Injuries + fieldset(class=`repeating_injuries`) + .ac-networks__item + input.ac-networks__input(name="attr_injuries", type="text") + .ac-equipment + .ac-equipment__credits + .ac-credits + .ac-credits__title(data-i18n="Credits") + each level in [1, 2, 3, 4, 5] + .ac-credits__item + .ac-credits__label(data-i18n=`Lv.${level}`) Lv.#{level} + input.ac-credits__input(name=`attr_credits_${level}`, type="text") + + .ac-equipment__equipment + .ac-equipment__header(data-i18n="Equipment") Equipment + fieldset(class=`repeating_equipment`) + .ac-item + .ac-item__row--name + .ac-item__label--name(data-i18n="Name") Name + input(name="attr_equipment_name", type="text") + .ac-item__price + .ac-item__label(data-i18n="Price Level") Price Level + input(name="attr_equipment_price", type="text") + .ac-item__row--skillchecks + .ac-item__label(data-i18n="Skill Check(s)") Skill Check(s) + span.ac-item__wrap { + input.ac-item__input--wrap(name="attr_equipment_checks", type="text") + span.ac-item__wrap } + .ac-item__bonus + .ac-item__label--small + + input(name="attr_equipment_bonusdice", type="text") + .ac-item__label--small × + .ac-item__label--small(data-i18n="Bonus Dice") Bonus Dice + .ac-item__row--checks + .ac-item__label(data-i18n="Tech Point Chassis") Tech Point Chassis + .ac-item__checkmarks + each index in [1,2,3,4,5,6,7,8,9,10] + label.ac-checkmark + input(name="attr_equipment_tp_chassis", type="radio", value=index) + span + .ac-item__row--checks + .ac-item__label(data-i18n="Tech Points Used") Tech Points Used + .ac-item__checkmarks + each index in [1,2,3,4,5,6,7,8,9,10] + label.ac-checkmark--red + input(name="attr_equipment_tp_used", type="radio", value=index) + span + .ac-item__row--special + .ac-item__special + .ac-item__label(data-i18n="Special") Special + textarea.ac-item__textarea(name="attr_equipment_special") + .ac-item__row + .ac-item__triggered + .ac-item__label(data-i18n="Triggered Effects") Triggered Effects + each index in [1,2,3,4,5] + .ac-item__checkmarks + each ch_index in [1,2,3,4,5] + label.ac-checkmark--cyan + input(name=`attr_equipment_triggered_${index}`, type="radio", value=ch_index) + span + .ac-item__input + input(name=`attr_equipment_triggered_${index}_desc`, type="text") + + .ac-equipment__tools + .ac-equipment__header(data-i18n="Tools") Tools + fieldset(class=`repeating_tools`) + .ac-tool + .ac-tool__row--name + .ac-tool__label--name(data-i18n="Name") Name + input(name="attr_equipment_name", type="text") + .ac-tool__price + .ac-tool__label(data-i18n="Price Level") Price Level + input(name="attr_equipment_price", type="text") + .ac-tool__row--skillchecks + .ac-tool__label(data-i18n="Skill Check(s)") Skill Check(s) + span.ac-tool__wrap { + input.ac-tool__input--wrap(name="attr_equipment_checks", type="text") + span.ac-tool__wrap } + .ac-tool__bonus + .ac-tool__label--small + + input(name="attr_equipment_bonusdice", type="text") + .ac-tool__label--small × + .ac-tool__label--small(data-i18n="Bonus Dice") Bonus Dice + .ac-tool__row--skillchecks + .ac-tool__label(data-i18n="Skill Check(s)") Skill Check(s) + span.ac-tool__wrap { + input.ac-tool__input--wrap(name="attr_equipment_checks", type="text") + span.ac-tool__wrap } + .ac-tool__bonus + .ac-tool__label--small + + input(name="attr_equipment_bonusdice", type="text") + .ac-tool__label--small × + .ac-tool__label--small(data-i18n="Bonus Dice") Bonus Dice + .ac-tool__row--checks + .ac-tool__label(data-i18n="Tech Point Chassis") Tech Point Chassis + .ac-tool__checkmarks + each index in [1,2,3,4,5] + label.ac-checkmark + input(name="attr_equipment_tp_chassis", type="radio", value=index) + span + .ac-tool__row--checks + .ac-tool__label(data-i18n="Tech Points Used") Tech Points Used + .ac-tool__checkmarks + each index in [1,2,3,4,5] + label.ac-checkmark--red + input(name="attr_equipment_tp_used", type="radio", value=index) + span + .ac-tool__row--special + .ac-tool__special + .ac-tool__label(data-i18n="Special") Special + textarea.ac-tool__textarea(name="attr_tool_special") + +include rolltemplates.pug + +script(type="text/worker") + + include ../js/sheetworker.js \ No newline at end of file diff --git a/Altered Carbon Official/src/pug/mixins.pug b/Altered Carbon Official/src/pug/mixins.pug new file mode 100644 index 0000000000..266e43613c --- /dev/null +++ b/Altered Carbon Official/src/pug/mixins.pug @@ -0,0 +1,4 @@ +mixin dice-select(selected) + - const dice = ["20", "12", "10", "8", "6", "4"]; + each die in dice + option(value=`d${die}cs1cf${die}` selected=(die == selected)) d#{die} \ No newline at end of file diff --git a/Altered Carbon Official/src/pug/rolltemplates.pug b/Altered Carbon Official/src/pug/rolltemplates.pug new file mode 100644 index 0000000000..ae654f604e --- /dev/null +++ b/Altered Carbon Official/src/pug/rolltemplates.pug @@ -0,0 +1,56 @@ + +rolltemplate.sheet-rolltemplate-alteredcarbon + .ac-roll-container + | {{#name}} + h1 {{name}} + | {{/name}} + .ac-roll-body + | {{#character_name}} + h2 {{character_name}} + | {{/character_name}} + | {{#target_number}} + .ac-roll-target + span.ac-roll-target-label(data-i18n="Target") + span.ac-roll-target-value {{target_number}} + | {{/target_number}} + .ac-roll-result + | {{#roll}} + .ac-roll-result-roll + strong(data-i18n="Roll") + div {{roll}} + | {{/roll}} + | {{#rollGreater() luck 0}} + .ac-roll-result-luck + strong(data-i18n="Luck") + div {{luck}} + | {{/rollGreater() luck 0}} + | {{#rollGreater() bonus 0}} + .ac-roll-result-bonus + strong(data-i18n="Bonus") + div {{bonus}} + | {{/rollGreater() bonus 0}} + + .ac-roll-tag + | {{#rollWasCrit() roll}} + | {{#^rollWasCrit() luck}} + .ac-roll-ace(data-i18n="Ace") + | {{/^rollWasCrit() luck}} + | {{/rollWasCrit() roll}} + + | {{#^rollWasCrit() roll}} + | {{#rollWasCrit() bonus}} + .ac-roll-ace(data-i18n="Ace") + | {{/rollWasCrit() bonus}} + | {{/^rollWasCrit() roll}} + + | {{#rollWasCrit() roll}} + | {{#rollWasCrit() luck}} + .ac-roll-stroke(data-i18n="Stroke of Luck") + | {{/rollWasCrit() luck}} + | {{/rollWasCrit() roll}} + + | {{#rollWasFumble() roll}} + | {{#rollWasFumble() luck}} + .ac-roll-catastrophe(data-i18n="Catastrophe") + | {{/rollWasFumble() luck}} + | {{/rollWasFumble() roll}} \ No newline at end of file diff --git a/Altered Carbon Official/src/scss/altered-carbon.scss b/Altered Carbon Official/src/scss/altered-carbon.scss new file mode 100644 index 0000000000..7a65d1affa --- /dev/null +++ b/Altered Carbon Official/src/scss/altered-carbon.scss @@ -0,0 +1,1211 @@ +@import url("https://fonts.googleapis.com/css?family=Montserrat:200|Montserrat:400|Montserrat:600|Montserrat:700|Montserrat:800|Montserrat:900&display=swap"); + +$foreground: black; +$background: white; + +$invert-foreground: white; +$invert-input-background: rgba(0, 0, 40, .25); +$invert-background: rgb(4, 41, 56); + +$invert-background-gradient: linear-gradient(164deg, rgb(4, 41, 56) 0%, rgb(3, 31, 39) 100%); + +$cyan-sheet: #00a99d; +$cyan: #38e0d5; +$red: #d2232a; +$yellow: #bd9c55; +$grey: #aaa; +$light-grey: #eee; + +.sheet-ac-wrapper { + background: $background; + color: $foreground; + + font-family: Montserrat, sans-serif; + font-size: 10pt; + + * { + box-sizing: border-box; + } + + input { + height: 1.75em; + } + + input[type="number"] { + -moz-appearance: textfield; + + text-align: center; + + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + } + + input[type="number"], + input[type="text"], + textarea, + select { + min-width: 0; + width: 100%; + + border-radius: 0; + + background-color: transparent; + color: $foreground; + + font-family: "Montserrat", Verdana, sans-serif; + font-size: 10pt; + font-variant: normal; + + &:hover { + border: 1px solid $cyan; + box-shadow: 0 0 5px $cyan; + } + } + + button { + &:hover { + border: 1px solid $cyan; + box-shadow: 0 0 5px $cyan; + } + } + + select { + -webkit-appearance: none; + -moz-appearance: none; + + height: 1.75em; + + cursor: pointer; + + background: transparent url("https://s3.amazonaws.com/files.d20.io/images/138210258/mZTqw1vke8SrkprMJmiZQw/med.png?1590443723") right 5px center no-repeat; + } + + textarea { + resize: vertical; + width: 100%; + margin: 0; + padding: 0; + + border: 0; + border-radius: 0; + } + + label { + padding: 0; + margin: 0; + } + + .itemcontrol { + position: relative; + + button.repcontrol_del, + a.repcontrol_move { + display: block; + top: calc(50% - 1.5rem); + position: relative; + border: 1px solid $foreground; + border-radius: 0; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + box-shadow: none; + + line-height: 2em; + text-shadow: none; + + font-weight: bold; + + &:hover { + border: 1px solid $cyan; + box-shadow: 0 0 5px $cyan; + } + } + + button.repcontrol_del { + margin-right: .25rem; + + background: transparent; + border: 1px solid $red; + color: $red; + + &:hover { + border: 1px solid $red; + box-shadow: 0 0 5px $red; + } + } + + a.repcontrol_move { + margin-left: .25rem; + + background: transparent; + color: $foreground; + + &:hover { + border: 1px solid $cyan; + box-shadow: 0 0 5px $cyan; + } + } + + } + + .repcontrol { + padding: .25em; + + background-color: transparent; + + button.repcontrol_add, + button.repcontrol_del, + button.repcontrol_move, + button.repcontrol_edit { + display: block; + border: 1px solid $foreground; + border-radius: 0; + background: none; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + box-shadow: none; + + font-size: 0; + line-height: 1em; + text-shadow: none; + + &:hover { + border: 1px solid $cyan; + box-shadow: 0 0 5px $cyan; + } + } + + button.repcontrol_add:before { + display: block; + content: "&"; + + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; + } + + button.repcontrol_edit { + &:before { + display: block; + content: "p"; + right: 5px; + + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; + } + } + } + + h1 { + font-size: 16pt; + font-weight: 700; + letter-spacing: 2px; + text-align: center; + text-transform: uppercase; + } + +} + +%label { + font-weight: 400; + text-transform: uppercase; +} + +%input { + &[type="number"], + &[type="text"] { + margin: 0; + padding: 0; + + border: 0; + } +} + +.sheet-ac { + + &-header { + padding: 1em; + + background: $invert-background-gradient; + background-color: $invert-background; + color: $invert-foreground; + + &__grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 0 1em; + } + + &__item { + grid-column: span 2; + + &--subitem { + @extend .sheet-ac-header__item; + grid-column: span 1; + } + + } + + &__label { + @extend %label; + font-family: 12pt; + } + + &__input { + @extend %input; + + &[type="number"], + &[type="text"] { + border: 1px solid transparent; + border-bottom: 1px solid $invert-foreground; + color: $invert-foreground !important; + + font-size: 12pt !important; + font-weight: 800 !important; + text-transform: uppercase; + } + } + + + } + + &-nav { + display: flex; + flex-direction: row; + justify-content: flex-end; + + > label { + margin: 5px; + } + + &__item { + width: auto; + padding: 5px; + + cursor: pointer; + + font-size: 11pt; + font-weight: 600; + text-transform: uppercase; + } + + &__label { + padding: 0 5px; + + border-radius: 3px; + border: 1px solid $foreground; + + &:hover { + border: 1px solid $cyan; + box-shadow: 0 0 5px $cyan; + } + } + + &__hide { + display: none; + } + + input[type=radio]:checked + .sheet-ac-nav__label { + border: 1px solid $cyan-sheet; + background: rgba($cyan-sheet, 15%); + color: $cyan-sheet; + } + } + + &-body { + + &__stats { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 1em; + } + + &__traits { + display: grid; + grid-template-columns: 1fr 1fr 1fr; + margin: 1em 0; + padding: 1em 1em; + + background-color: $invert-background; + background: $invert-background-gradient; + color: $invert-foreground; + + .itemcontrol { + + button.repcontrol_del, + a.repcontrol_move { + border: 1px solid $invert-foreground; + + color: $invert-foreground + } + + a.repcontrol_move { + color: $invert-foreground; + } + + } + + .repcontrol { + margin-bottom: 1em; + + button.repcontrol_add, + button.repcontrol_del, + button.repcontrol_move, + button.repcontrol_edit { + border: 1px solid $invert-foreground; + color: $invert-foreground; + } + } + } + + &__misc { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 1em; + } + + } + + &-stat { + + &__header { + display: grid; + grid-template-columns: 1fr 5em; + align-items: center; + padding: .125em .5em; + + background: $yellow; + color: $background; + + font-size: 12pt; + font-weight: 800; + text-transform: uppercase; + + input { + @extend %input; + } + } + + &__title { + letter-spacing: 2px; + } + + &__value { + display: grid; + grid-template-columns: 1fr .75fr; + align-items: center; + + color: $background; + + input { + @extend %input; + + &[type="text"], + &[type="number"] { + background: rgba($foreground, .125); + color: $background; + + font-size: 14pt; + font-weight: 800; + } + } + + span { + text-align: center; + font-weight: 600; + } + } + + &__bonus { + font-size: 12pt; + + &:before, + &:after { + display: inline; + } + + &:before { + content: "("; + } + + &:after { + content: ")"; + } + } + + &__body { + display: grid; + grid-template-columns: 1fr 1fr; + gap: .25em 0; + } + + } + + &-skill { + + display: grid; + grid-template-columns: 1fr 3.5em; + gap: 0; + align-items: center; + + &__name[type="roll"] { + display: flex; + flex-grow: 0; + align-items: center; + border: 0; + background: none; + + font-size: 9pt !important; + font-weight: 600; + text-align: left; + text-transform: uppercase; + + &:before { + display: none; + } + + &:after { + display: block; + flex-grow: 1; + content: ""; + height: 0; + margin: 0; + margin-left: 4px; + + border-bottom: 3px solid $yellow; + } + + &:hover { + color: $cyan; + box-shadow: none !important; + border: 0 !important; + + &:after { + border-color: $cyan; + } + } + } + + &__value { + margin: 0; + padding: 0; + + select { + margin: 0 !important; + padding: 0; + + border: 0; + + font-size: 10pt; + line-height: 10pt; + } + } + + } + + &-traits { + border-right: 1px solid rgba($invert-foreground, .25); + padding: 1em; + + &:last-child { + border-right: 0; + } + + &__header { + padding: .5em; + margin-bottom: .5em; + + font-weight: 800; + text-align: center; + text-transform: uppercase; + } + + } + + &-trait { + margin-bottom: 1em; + + border: 1px solid rgba($cyan-sheet, .5); + + &__title { + display: flex; + align-items: center; + flex-flow: row nowrap; + margin-bottom: 0; + padding: 0; + + border: 1px solid transparent; + + > div { + flex-shrink: 0; + margin-right: 5px; + } + + > input { + flex-grow: 1; + height: 2.5em; + + background: $invert-input-background !important; + border: 1px solid transparent; + border-bottom: 1px solid rgba($cyan-sheet, .5); + border-radius: 0; + color: $cyan !important; + + font-size: 9pt !important; + font-weight: 600 !important; + } + } + + &__label { + @extend %label; + } + + &__description { + padding: 0; + + textarea { + width: 100%; + height: 7.5em; + padding: .25em; + margin: 0; + + border: 1px solid transparent; + border-radius: none; + background: $invert-input-background; + color: $invert-foreground; + + font-size: 9pt; + } + } + + } + + &-networks, + &-baggage { + + &__header { + color: $red; + + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; + } + + &__item { + display: flex; + align-items: center; + flex-flow: row nowrap; + margin-bottom: .5em; + + border: 0; + border-bottom: 1px solid $grey; + + &:before { + display: inline-block; + flex-shrink: 0; + content: "4"; + margin-right: .25em; + + color: $cyan-sheet; + + font-family: "Pictos"; + } + + > input { + flex-grow: 1; + border: 0; + + font-size: 10pt !important; + } + } + + } + + &-baggage { + textarea { + height: 4.5em; + } + + &__item { + align-items: flex-start !important; + + &:before { + margin-top: .1em; + } + } + + } + + &-biometrics { + + &__header { + color: $red; + + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; + } + + &__container { + border: 1px solid $yellow; + padding: .5em; + } + + &__row { + display: flex; + flex-flow: row nowrap; + align-items: center; + + &--textarea { + margin-top: .5em; + + textarea { + background: $light-grey; + } + } + } + + &__label { + flex-shrink: 0; + + font-size: 10pt; + font-weight: 600; + text-transform: uppercase; + + &:after { + display: inline; + content: ":"; + margin-right: .5em; + } + } + + &__input { + flex-grow: 1; + + font-size: 10pt; + font-weight: 600; + + input[type="number"], + input[type="text"] { + border: 0; + border-bottom: 1px solid $grey; + } + + &--minmax { + @extend .sheet-ac-biometrics__input; + flex-grow: 0; + + display: grid; + grid-template-columns: 1fr .5em 1fr; + align-items: center; + width: 50%; + + } + } + + textarea { + height: 7.5em; + } + + } + + &-health { + margin-top: 2em; + + &__label { + flex-shrink: 0; + + font-size: 10pt; + font-weight: 600; + text-transform: uppercase; + + &:after { + display: inline; + content: ":"; + margin-right: .5em; + } + } + + &__input { + flex-grow: 1; + + font-size: 10pt; + font-weight: 600; + + input[type="number"], + input[type="text"] { + border: 0; + border-bottom: 1px solid $grey; + } + + &--minmax { + @extend .sheet-ac-biometrics__input; + flex-grow: 0; + display: grid; + grid-template-columns: 1fr .5em 1fr; + align-items: center; + width: 30%; + } + } + + &__row { + display: flex; + flex-flow: row nowrap; + align-items: center; + + margin-bottom: .5em; + + &--textarea { + + textarea { + background: $light-grey; + } + } + } + + } + + &-equipment { + display: grid; + grid-template-columns: 1fr 1fr; + align-items: stretch; + gap: 1em 0; + + > * { + padding: 0.75em; + } + + &__credits { + grid-column: 1 / -1; + } + + &__header { + color: $red; + + font-size: 14pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; + } + + &__tools { + border-left: 1px dashed $grey; + } + } + + &-credits { + + display: grid; + grid-template-columns: repeat(6, 1fr); + gap: 1.5em; + align-items: center; + + &__title { + color: $red; + + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; + } + + &__item { + display: flex; + border: 1px solid $cyan-sheet; + border-left: 3px solid $cyan-sheet; + border-right: 3px solid $cyan-sheet; + + font-size: 10pt; + font-weight: 600; + + input { + border: 0; + + text-align: center; + } + } + + &__label { + padding: .125em; + } + + &__input { + margin-left: .5em; + } + + } + + &-tool, + &-item { + margin-bottom: 1.5em; + padding: .75em; + + border: 2px solid $cyan-sheet; + + input { + flex-shrink: 1; + + border: 0; + width: 100%; + } + + &__row { + display: flex; + flex-flow: row nowrap; + align-items: center; + margin-bottom: 1em; + + input { + flex-grow: 1; + border-bottom: 1px solid $grey; + } + + &--name, + &--skillchecks { + @extend .sheet-ac-item__row; + } + + &--bonus { + display: grid; + grid-template-columns: 1fr 1fr; + margin-bottom: 1em; + } + + &--checks { + display: grid; + grid-template-columns: 1fr 1.5fr; + margin-bottom: 1em; + } + + &--special { + display: grid; + } + } + + &__label { + flex-shrink: 0; + + font-size: 9pt; + font-weight: 800; + + &:after { + display: inline; + content: ":"; + + margin-right: .5em; + } + + &--name { + @extend .sheet-ac-item__label; + color: $red; + + font-size: 14pt; + font-weight: 800; + text-transform: uppercase; + } + + &--small { + flex-basis: 1.5em; + + font-weight: 400; + } + } + + &__bonus { + grid-column: span 2; + display: flex; + flex-flow: row nowrap; + align-items: center; + + } + + &__checkmarks { + display: grid; + grid-template-columns: repeat(10, 1fr); + + label { + cursor: pointer; + + span { + display: block; + height: 1em; + width: 1em; + border-radius: 50%; + + background-color: rgba($cyan-sheet, .125); + border: 1px solid $cyan; + } + + input[type="radio"] { + display: none; + + &:checked { + + & + span { + background-color: $cyan-sheet; + } + } + } + + &.sheet-ac-checkmark--red { + span { + background-color: rgba($red, .125); + border: 1px solid $red; + } + + input[type="radio"] { + display: none; + + &:checked { + & + span { + background-color: $red; + } + } + } + } + } + } + + &__price { + display: flex; + flex-flow: row nowrap; + align-items: center; + margin: .25em; + padding: .25em; + + border: 1px solid $yellow; + + .sheet-ac-tool__label, + .sheet-ac-item__label { + font-size: 8pt; + font-weight: 400; + } + + input[type=text] { + width: 4em; + } + } + + &__special { + + textarea { + border: 1px solid $grey; + + height: 5em; + } + + } + + &__triggered { + display: grid; + grid-template-columns: 1fr 2fr; + align-items: center; + gap: .5em; + width: 100%; + + .sheet-ac-item__checkmarks { + grid-template-columns: repeat(5, 1fr); + } + } + + &__special, + &__triggered { + + .sheet-ac-tool__label, + .sheet-ac-item__label { + grid-column: 1 / -1; + + color: $cyan-sheet; + + font-size: 10pt; + } + + } + + &__wrap { + font-size: 14pt; + font-weight: 600; + } + } +} + +.sheet-ac-body { + display: none; +} + +.sheet-ac-equipment { + display: none; +} + +input[name="attr_nav"][value="Character Sheet"] ~ .sheet-ac-body { + display: block; +} + +input[name="attr_nav"][value="Equipment"] ~ .sheet-ac-equipment { + display: grid; +} + +.sheet-rolltemplate-alteredcarbon { + background: $background; + padding: .5em; + + h1 { + margin-bottom: .25em; + + color: $cyan-sheet; + + font-size: 14pt; + letter-spacing: 2px; + line-height: 14pt; + text-align: center; + text-transform: uppercase; + } + + h2 { + margin-bottom: .25em; + + color: $red; + + font-size: 10pt; + font-weight: 600; + line-height: 10pt; + text-align: center; + } + + .sheet-ac-roll-container { + padding: .5em; + + border: 2px solid $cyan; + color: $foreground; + } + + .sheet-ac-roll-target { + margin: .5em 0; + padding: .5em; + + text-align: center; + + background: $invert-background; + color: $invert-foreground; + + .sheet-ac-roll-target-label { + font-size: 12pt; + font-weight: 600; + letter-spacing: 2px; + text-transform: uppercase; + + &:after { + display: inline; + content: ":"; + margin-right: .75em; + } + } + + .sheet-ac-roll-target-value { + color: $cyan; + + font-size: 12pt; + font-weight: 800; + } + + + } + + .sheet-ac-roll-result { + + display: flex; + justify-content: space-around; + + &-roll, + &-luck, + &-bonus { + * { + text-align: center; + } + + strong { + display: block; + + font-size: 9pt; + font-weight: 400; + text-transform: uppercase; + } + + div { + width: 1em; + height: 1em; + margin: auto; + padding: .25em; + border: 1px solid $grey; + font-size: 16pt; + } + } + + .importantroll, + .fullcrit, + .fullfail, + .inlinerollresult { + border: none; + background: transparent; + + font-family: inherit; + line-height: 1em; + } + + .fullcrit { + color: $cyan-sheet; + } + + .fullfail { + color: $red; + } + } + + .sheet-ac-roll-tag { + margin-top: .5em; + + .sheet-ac-roll-ace { + padding: 5px; + + border: 1px solid $cyan-sheet; + color: $cyan-sheet; + + font-size: 12pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; + } + + .sheet-ac-roll-stroke { + padding: 5px; + + background: $cyan; + color: $background; + + font-size: 12pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; + } + + .sheet-ac-roll-catastrophe { + padding: 5px; + + background: $red; + color: $background; + + font-size: 12pt; + font-weight: 800; + text-align: center; + text-transform: uppercase; + } + + } + +} \ No newline at end of file diff --git a/Altered Carbon Official/translation.json b/Altered Carbon Official/translation.json new file mode 100644 index 0000000000..7f4bd99a5f --- /dev/null +++ b/Altered Carbon Official/translation.json @@ -0,0 +1,87 @@ +{ + "DHF Protectorate Citizenship Record":"DHF Protectorate Citizenship Record", + "Character Name":"Character Name", + "Planet of Origin":"Planet of Origin", + "Age":"Age", + "Sleeve Type":"Sleeve Type", + "Archetype":"Archetype", + "Campaign":"Campaign", + "Stackpoints":"Stackpoints", + "Influence Points":"Influence Points", + "Ego Points":"Ego Points", + "Wealth Level":"Wealth Level", + "Character Sheet":"Character Sheet", + "Equipment":"Equipment", + "Strength":"Strength", + "Athletics":"Athletics", + "Brawl":"Brawl", + "Endurance":"Endurance", + "Melee Combat":"Melee Combat", + "Toughness":"Toughness", + "Perception":"Perception", + "Detection":"Detection", + "D. Energy Wpns":"D. Energy Wpns", + "Firearms":"Firearms", + "Search":"Search", + "Stealth":"Stealth", + "Throw":"Throw", + "Empathy":"Empathy", + "Diplomacy":"Diplomacy", + "Expression":"Expression", + "Read Person":"Read Person", + "Willpower":"Willpower", + "Composure":"Composure", + "Discipline":"Discipline", + "Intimidation":"Intimidation", + "Acuity":"Acuity", + "Data Analysis":"Data Analysis", + "Data Engineering":"Data Engineering", + "Digi. Networking":"Digi. Networking", + "Investigation":"Investigation", + "Mechanics":"Mechanics", + "Navigation":"Navigation", + "Pilot":"Pilot", + "Survival":"Survival", + "Intelligence":"Intelligence", + "Bureaucracy":"Bureaucracy", + "Cultures":"Cultures", + "Engineering":"Engineering", + "Geography":"Geography", + "History":"History", + "Science":"Science", + "Medicine":"Medicine", + "Traits":"Traits", + "Abilities":"Abilities", + "Specializations":"Specializations", + "Name":"Name", + "Description":"Description", + "Networks/Contacts":"Networks/Contacts", + "Baggage/Scandals":"Baggage/Scandals", + "Sleeve Biometrics":"Sleeve Biometrics", + "Damage Threshold":"Damage Threshold", + "Tech Points":"Tech Points", + "Special":"Special", + "Health Points":"Health Points", + "Credits":"Credits", + "Lv.1":"Lv.1", + "Lv.2":"Lv.2", + "Lv.3":"Lv.3", + "Lv.4":"Lv.4", + "Lv.5":"Lv.5", + "Price Level":"Price Level", + "Skill Check(s)":"Skill Check(s)", + "Bonus Dice":"Bonus Dice", + "Tech Point Chassis":"Tech Point Chassis", + "Tech Points Used":"Tech Points Used", + "Triggered Effects":"Triggered Effects", + "Tool":"Tool", + "Tools":"Tools", + "Injuries":"Injuries", + "Target":"Target", + "Ace":"Ace", + "Stroke of Luck":"Stroke of Luck", + "Catastrophe":"Catastrophe", + "Roll":"Roll", + "Luck":"Luck", + "Bonus":"Bonus" +} \ No newline at end of file diff --git a/Teens in Space Official/sheet.json b/Teens in Space Official/sheet.json new file mode 100644 index 0000000000..7114bfd7a8 --- /dev/null +++ b/Teens in Space Official/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "tis.html", + "css": "tis.css", + "authors": "Nic B.", + "roll20userid": "45398", + "preview": "tis.png", + "instructions": "Official Teens in Space by Hunters Entertainment" +} \ No newline at end of file diff --git a/Teens in Space Official/src/pug/mixins.pug b/Teens in Space Official/src/pug/mixins.pug new file mode 100644 index 0000000000..15d07ff4d4 --- /dev/null +++ b/Teens in Space Official/src/pug/mixins.pug @@ -0,0 +1,32 @@ +mixin characteristic-display(name, attr) + .tis-characteristic(class=`tis-characteristic--${attr}`) + .tis-characteristic__label(data-i18n=name)=name + input.tis-characteristic__input(name=`attr_${attr}`, type="text") + +mixin select-display(name, attr, options) + label.tis-characteristic(class=`tis-characteristic--${attr}`) + .tis-characteristic__label(data-i18n=name)=name + select.tis-characteristic__select(name=`attr_${attr}`, type="text") + each option in options + - const val = option.toLowerCase(); + option(data-i18n=option, value=val)=option + +mixin stat-display(name, attr) + - + const roll = [ + `&{template:tispace}`, + `{{name=${name}}}`, + `{{character_name=@{character_name}}}`, + `{{roll=[[1@{${attr}}!+?{Bonus|Yes,@{${attr}_bonus}|No,0|None,0}+?{Bonuses / Penalties|0}]]}}`, + ].join(" "); + .tis-stat + button.tis-stat__button(data-i18n=name, name=`roll_${attr}`, type="roll", value=roll)=name + .tis-stat__bonus + input(name=`attr_${attr}_bonus`, type="number", value="0") + select.tis-stat__select(name=`attr_${attr}`) + +dice-select() + +mixin dice-select(selected) + - const dice = ["d4", "d6", "d8", "d10", "d12", "d20"]; + each die in dice + option(value=die selected=(die == selected))=die \ No newline at end of file diff --git a/Teens in Space Official/src/pug/rolltemplates.pug b/Teens in Space Official/src/pug/rolltemplates.pug new file mode 100644 index 0000000000..3eb61458a7 --- /dev/null +++ b/Teens in Space Official/src/pug/rolltemplates.pug @@ -0,0 +1,13 @@ +rolltemplate.sheet-rolltemplate-tispace + .sheet-tispace-container + | {{#name}} + h1 {{name}} + | {{/name}} + .sheet-tispace-body + | {{#character_name}} + h2 {{character_name}} + | {{/character_name}} + | {{#roll}} + .sheet-tispace-roll-result + | Result: {{roll}} + | {{/roll}} \ No newline at end of file diff --git a/Teens in Space Official/src/pug/tis.pug b/Teens in Space Official/src/pug/tis.pug new file mode 100644 index 0000000000..1030025d7a --- /dev/null +++ b/Teens in Space Official/src/pug/tis.pug @@ -0,0 +1,55 @@ +include mixins.pug + +.tis-wrapper + .tis-name + h1.tis-name__label(data-i18n="Name") Name + input.tis-name__input(name=`attr_character_name`, type="text") + .tis-body + .tis-body__leftcol + .tis-body__character + .tis-characteristics__general + each characteristic in ["Age","Species","Species Drawback","Trope","Fatal Flaw"] + - const attr = characteristic.toLowerCase().replace(/ /g, "_"); + +characteristic-display(characteristic, attr) + .tis-characteristic--textarea(class=`tis-characteristic--description`) + .tis-characteristic__label--description(data-i18n="Description") Description + textarea.tis-characteristic__textarea(name=`attr_description`) + .tis-body__improvements + h2(data-i18n="Improvements") Improvements + .tis-improvementrow--header + strong.tis-improvementrow__label(data-i18n="Name") Strength Name + strong.tis-improvementrow__label(data-i18n="Description") Description + fieldset(class="repeating_improvements") + .tis-improvementrow + .tis-improvementrow__input + input(name="attr_improvement_name", type="text") + .tis-improvementrow__divider + .tis-improvementrow__input + input(name="attr_improvement_description", type="text") + .tis-body__records + h2(data-i18n="Records") Records + .tis-records + textarea.tis-records__textarea(name="attr_") + + .tis-body__rightcol + .tis-body__stats + h2(data-i18n="Stats") Stats + each stat in ["Flight", "Fight", "Brawn", "Brains", "Grit", "Charm"] + - const attr = stat.toLowerCase().replace(/ /g, "_"); + +stat-display(stat, attr) + .tis-body__hex--first + h2(data-i18n="Adversity Tokens") Adversity Tokens + label.tis-adversity + input.tis-adversity__input(name=`attr_adversity`, type="number", value="3") + .tis-body__hex + h2(data-i18n="Improvement Points") Improvement Points + label.tis-improvement + input.tis-improvement__input(name=`attr_improvement`, type="number", value="3") + .tis-body__shiproles + h2.tis-textblock__label(data-i18n="Ship Roles") Ship Roles + textarea.tis-textblock__textarea(name=`attr_ship_roles`) + .tis-body__backpack + h2.tis-textblock__label(data-i18n="Space Backpack") Space Backpack + textarea.tis-textblock__textarea(name=`attr_space_backpack`) + +include rolltemplates.pug \ No newline at end of file diff --git a/Teens in Space Official/src/scss/_rolltemplate.scss b/Teens in Space Official/src/scss/_rolltemplate.scss new file mode 100644 index 0000000000..45afdc7436 --- /dev/null +++ b/Teens in Space Official/src/scss/_rolltemplate.scss @@ -0,0 +1,64 @@ +.sheet-rolltemplate-tispace { + + .sheet-tispace-container { + display: block; + padding: 1em; + + border: 1px solid #023; + background: #fff; + + h1 { + width: 80%; + margin: auto; + + color: #fff; + background: #023; + + @include hexagon-short; + + font-family: "Audiowide", sans-serif; + font-size: 14pt; + text-align: center; + text-transform: uppercase; + } + + h2 { + font-family: "Montserrat", sans-serif; + font-size: 12pt; + text-align: center; + } + + .sheet-tispace-roll-result { + margin-top: 1em; + + font-family: "Audiowide", sans-serif; + font-size: 14pt; + text-align: center; + + .importantroll, + .fullcrit, + .fullfail, + .inlinerollresult { + border: none; + background: transparent; + + font-family: inherit; + line-height: 1em; + } + + .importantroll { + color: #3e7bff; + } + + .fullcrit { + color: #4cc016; + } + + .fullfail { + color: #900; + } + + } + + } +} \ No newline at end of file diff --git a/Teens in Space Official/src/scss/tis.scss b/Teens in Space Official/src/scss/tis.scss new file mode 100644 index 0000000000..446a0e993c --- /dev/null +++ b/Teens in Space Official/src/scss/tis.scss @@ -0,0 +1,623 @@ +@mixin polygon($basewidth) { + clip-path: polygon( + #{$basewidth*2}rem 0, + calc(100% - #{$basewidth * 3}rem) 0, + calc(100% - #{$basewidth}rem) #{$basewidth*2}rem, + calc(100% - #{$basewidth}rem) 50%, + 100% calc(50% + #{$basewidth}rem), + 100% calc(100% - #{$basewidth}rem), + calc(100% - #{$basewidth}rem) 100%, + #{$basewidth}rem 100%, + 0 calc(100% - #{$basewidth}rem), + 0rem #{$basewidth*2}rem + ); +} + +@mixin hexagon() { + clip-path: polygon( + 0 0, + 75% 0%, + 100% 50%, + 75% 100%, + 25% 100%, + 0 50%, + 25% 0% + ); +} + +@mixin hexagon-short() { + clip-path: polygon( + 0 0, + 90% 0%, + 100% 50%, + 90% 100%, + 10% 100%, + 0 50%, + 10% 0% + ); +} + +@mixin arrow() { + clip-path: polygon( + 0 0, + 92.5% 0%, + 100% 50%, + 92.5% 100%, + 0 100% + ); +} + +@mixin bevel() { + clip-path: polygon( + 0 0, + 100% 0, + 80% 100%, + 0 100% + ); +} + +@import url('https://fonts.googleapis.com/css?family=Audiowide|Montserrat:400:800&display=swap'); + +.sheet-tis-wrapper { + position: relative; + min-width: 818px; + padding: .5em; + margin: 0; + + font-family: "Audiowide", sans-serif; + font-size: 10pt; + + * { + box-sizing: border-box; + } + + input { + height: 1.75em; + } + + input[type="number"] { + -moz-appearance: textfield; + + text-align: center; + + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + } + + input[type="number"], + input[type="text"], + textarea, + select { + margin:0; + + background-color: transparent; + + font-family: "Montserrat", Verdana, sans-serif; + font-size: 12pt; + font-variant: normal; + + &:hover { + background-color: rgba(0,0,0,0.125); + } + } + + select { + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; + + height: 1.75em; + + background: transparent url("https://s3.amazonaws.com/files.d20.io/images/138210258/mZTqw1vke8SrkprMJmiZQw/med.png?1590443723") right 5px center no-repeat; + } + + textarea { + resize: vertical; + width: 100%; + + border: 0; + border-radius: 0; + } + + label { + padding: 0; + margin: 0; + } + + .itemcontrol { + position: relative; + + button.repcontrol_del, + a.repcontrol_move { + display: block; + top: calc(50% - 1.5rem); + position: relative; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + + box-shadow: none; + border: 1px solid #000; + border-radius: 0; + + line-height: 2em; + text-shadow: none; + + font-weight: bold; + } + + button.repcontrol_del { + margin-right: .25rem; + + background: #a00; + color: #fff; + } + + a.repcontrol_move { + margin-left: .25rem; + + background: transparent; + color: #000; + } + + } + + .repcontrol { + padding: 1em .25em; + clear: both; + + min-height: 5rem; + + background-color: transparent; + + button.repcontrol_add, + button.repcontrol_del, + button.repcontrol_move, + button.repcontrol_edit { + display: block; + border: 1px solid #000; + border-radius: 0; + background: none; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + box-shadow: none; + + font-size: 0; + line-height: 1em; + text-shadow: none; + } + + button.repcontrol_add:before { + display: block; + content: "&"; + + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; + } + + button.repcontrol_edit { + &:before { + display: block; + content: "p"; + right: 5px; + + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; + } + } + } + + .sheet-tis { + + &-body { + display: grid; + grid-template-columns: 2fr 1.5fr; + margin-top: 2em; + gap: 1em; + padding: 1em; + + background: #023; + + @include polygon(3); + + &__stats { + + h2 { + margin: 0; + margin-left: 1.5em; + + color: #fff !important; + + text-align: left !important; + } + } + + &__subtext { + display: block; + font-family: "Montserrat", Verdana, sans-serif; + font-size: 11pt; + text-align: center; + } + + h2 { + font-weight: normal; + text-align: center; + text-transform: uppercase; + + color: #a00; + } + + &__hex { + display: grid; + grid-template-rows: .5fr 1fr; + align-items: center; + justify-items: center; + + height: 6.5em; + width: 12.5em; + margin-left: .5em; + + background: #fff; + + @include hexagon(); + + &--first { + @extend .sheet-tis-body__hex; + margin-top: -2em !important; + } + + &:nth-child(even) { + position: relative; + left: 9.6em; + } + + &:not(:first-child) { + margin-top: -3.1em; + } + + h2 { + width: 55%; + + font-size: 8pt; + line-height: 8pt; + text-align: center; + } + + label.sheet-tis-improvement, + label.sheet-tis-adversity { + height: 100%; + } + + input[type="number"] { + align-self: center; + + width: 100%; + height: 100%; + + border: 0; + + font-size: 30pt; + text-align: center; + } + } + + &__improvements, + &__records, + &__shiproles, + &__backpack { + margin-top: 1em; + padding: 0 1.5em; + + background: #fff; + + @include polygon(1.5); + } + } + + &-name { + position: absolute; + z-index: 1000; + width: 60%; + height: 5em; + padding-left: 2em; + + display: flex; + flex-flow: row nowrap; + align-items: flex-end; + + @include bevel(); + + background: #fff; + + &__label { + flex-shrink: 0; + text-transform: uppercase; + + font-size: 20pt; + + color: #a00; + } + + &__input[type="text"] { + flex-grow: 1; + height: 30pt; + margin-left: .5em; + margin-right: 20%; + + border-radius: 0; + border: 0; + + font-size: 13pt; + font-weight: bold; + } + } + + &-characteristics { + padding: .5em; + margin-top: 3em; + + background: #fff; + + @include polygon(1.5); + + h3 { + grid-column: 1 / -1; + + &:after { + display: inline; + content: ":"; + } + } + + &__general, + &__wand, + &__broom, + &__other { + @extend .sheet-tis-characteristics; + } + + &__general { + padding: .5em 0 0 0; + } + + &__wand { + display: grid; + grid-template-columns: 1fr 1fr; + } + } + + &-characteristic { + grid-column: 1 / -1; + + display: grid; + grid-template-columns: .75fr 1fr; + align-items: center; + + margin-bottom: .25em; + + &__label { + padding: .25em; + + font-size: 10pt; + font-weight: normal; + text-align: center; + text-transform: uppercase; + + @include arrow(); + + color: #fff; + background: #023; + + &--description { + @extend .sheet-tis-characteristic__label; + + width: 43%; + } + } + + &__select, + &__input[type=number], + &__input[type=text] { + flex-grow: 1; + + min-width: 0; + width: 100%; + + margin: 0; + padding: 0; + + text-align: center; + + border: 0; + border-bottom: 3px solid #ddd; + border-radius: 0; + } + + } + + &-stat { + display: grid; + grid-template-columns: 1fr 25%; + grid-template-rows: 2em 1fr; + align-items: stretch; + height: 6.5em; + width: 12.5em; + overflow: hidden; + + background: #fff; + + @include hexagon(); + + &:nth-child(even) { + position: relative; + left: 9.6em; + } + + &:not(:first-child) { + margin-top: -3.1em; + } + + &__select { + margin-left: 25%; + margin-right: .5em; + height: 60%; + width: auto; + + border: 0; + + font-size: 20pt; + line-height: 20pt; + text-align: center; + } + + &__button { + margin-left: 20% !important; + + color: #000; + background: transparent; + border: none; + + font-size: 10pt !important; + line-height: 1.5em; + text-align: center; + text-transform: uppercase; + + &:before { + display: none; + } + + &:hover { + } + } + + &__bonus { + position: relative; + grid-row: span 2; + + background-color: #bbb; + border: none; + color: #023; + + input { + height: 100%; + width: 100%; + padding-left: 30%; + + border: none; + background: #bbb; + color: #023; + + font-family: "Montserrat" sans-serif; + font-size: 16pt; + } + + &:before { + position: absolute; + display: inline-block; + content: "BONUS"; + + top: calc(50% - .75em); + left: -2.75em; + + color: #bbb; + font-size: 12pt; + font-weight: bold; + letter-spacing: 2px; + + transform: rotate(-90deg); + } + + &:after { + position: absolute; + display: inline-block; + content: "&"; + top: calc(50% - .9em); + left: 2px; + + font-family: "Pictos"; + font-size: 10pt; + font-weight: bold; + letter-spacing: 4px; + + transform: rotate(-90deg); + } + } + + } + + &-body__improvements { + + .repitem:not(:last-child) .sheet-tis-improvementrow { + border-bottom: 0; + } + + } + + &-improvementrow { + display: grid; + grid-template-columns: .45fr .5em 1fr; + + border: 2px solid #ddd; + + &--header { + @extend .sheet-tis-improvementrow; + grid-template-columns: .45fr 1fr; + + border: none; + + * { + border: none; + color: #023; + + font-size: 10pt; + font-weight: normal; + text-align: center; + text-transform: uppercase; + } + } + + &__input { + border: 0; + + &:first-child { + border-right: 0; + + input[type="text"] { + font-weight: bold; + } + } + + input[type="text"] { + width: 100%; + padding: 1em 0; + + font-size: 10pt; + + border: 0; + border-radius: 0; + } + + } + + &__divider { + background: #ddd; + + clip-path: polygon(40% 0, 100% 50%, 40% 100%, 0 100%, 65% 50%, 0 0); + + } + + } + + } + +} + +@import "rolltemplate"; \ No newline at end of file diff --git a/Teens in Space Official/tis.css b/Teens in Space Official/tis.css new file mode 100644 index 0000000000..c02b4aa3d7 --- /dev/null +++ b/Teens in Space Official/tis.css @@ -0,0 +1,444 @@ +@import url("https://fonts.googleapis.com/css?family=Audiowide|Montserrat:400:800&display=swap"); +.sheet-tis-wrapper { + position: relative; + min-width: 818px; + padding: 0.5em; + margin: 0; + font-family: "Audiowide", sans-serif; + font-size: 10pt; +} +.sheet-tis-wrapper * { + box-sizing: border-box; +} +.sheet-tis-wrapper input { + height: 1.75em; +} +.sheet-tis-wrapper input[type=number] { + -moz-appearance: textfield; + text-align: center; +} +.sheet-tis-wrapper input[type=number]::-webkit-outer-spin-button, .sheet-tis-wrapper input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.sheet-tis-wrapper input[type=number], +.sheet-tis-wrapper input[type=text], +.sheet-tis-wrapper textarea, +.sheet-tis-wrapper select { + margin: 0; + background-color: transparent; + font-family: "Montserrat", Verdana, sans-serif; + font-size: 12pt; + font-variant: normal; +} +.sheet-tis-wrapper input[type=number]:hover, +.sheet-tis-wrapper input[type=text]:hover, +.sheet-tis-wrapper textarea:hover, +.sheet-tis-wrapper select:hover { + background-color: rgba(0, 0, 0, 0.125); +} +.sheet-tis-wrapper select { + -moz-appearance: none; + -webkit-appearance: none; + cursor: pointer; + height: 1.75em; + background: transparent url("https://s3.amazonaws.com/files.d20.io/images/138210258/mZTqw1vke8SrkprMJmiZQw/med.png?1590443723") right 5px center no-repeat; +} +.sheet-tis-wrapper textarea { + resize: vertical; + width: 100%; + border: 0; + border-radius: 0; +} +.sheet-tis-wrapper label { + padding: 0; + margin: 0; +} +.sheet-tis-wrapper .itemcontrol { + position: relative; +} +.sheet-tis-wrapper .itemcontrol button.repcontrol_del, +.sheet-tis-wrapper .itemcontrol a.repcontrol_move { + display: block; + top: calc(50% - 1.5rem); + position: relative; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + box-shadow: none; + border: 1px solid #000; + border-radius: 0; + line-height: 2em; + text-shadow: none; + font-weight: bold; +} +.sheet-tis-wrapper .itemcontrol button.repcontrol_del { + margin-right: 0.25rem; + background: #a00; + color: #fff; +} +.sheet-tis-wrapper .itemcontrol a.repcontrol_move { + margin-left: 0.25rem; + background: transparent; + color: #000; +} +.sheet-tis-wrapper .repcontrol { + padding: 1em 0.25em; + clear: both; + min-height: 5rem; + background-color: transparent; +} +.sheet-tis-wrapper .repcontrol button.repcontrol_add, +.sheet-tis-wrapper .repcontrol button.repcontrol_del, +.sheet-tis-wrapper .repcontrol button.repcontrol_move, +.sheet-tis-wrapper .repcontrol button.repcontrol_edit { + display: block; + border: 1px solid #000; + border-radius: 0; + background: none; + padding: 0; + margin: 0; + height: 3rem; + width: 3rem; + box-shadow: none; + font-size: 0; + line-height: 1em; + text-shadow: none; +} +.sheet-tis-wrapper .repcontrol button.repcontrol_add:before { + display: block; + content: "&"; + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; +} +.sheet-tis-wrapper .repcontrol button.repcontrol_edit:before { + display: block; + content: "p"; + right: 5px; + font-family: "Pictos"; + font-size: 12pt; + font-weight: bold; +} +.sheet-tis-wrapper .sheet-tis-body { + display: grid; + grid-template-columns: 2fr 1.5fr; + margin-top: 2em; + gap: 1em; + padding: 1em; + background: #023; + clip-path: polygon(6rem 0, calc(100% - 9rem) 0, calc(100% - 3rem) 6rem, calc(100% - 3rem) 50%, 100% calc(50% + 3rem), 100% calc(100% - 3rem), calc(100% - 3rem) 100%, 3rem 100%, 0 calc(100% - 3rem), 0rem 6rem); +} +.sheet-tis-wrapper .sheet-tis-body__stats h2 { + margin: 0; + margin-left: 1.5em; + color: #fff !important; + text-align: left !important; +} +.sheet-tis-wrapper .sheet-tis-body__subtext { + display: block; + font-family: "Montserrat", Verdana, sans-serif; + font-size: 11pt; + text-align: center; +} +.sheet-tis-wrapper .sheet-tis-body h2 { + font-weight: normal; + text-align: center; + text-transform: uppercase; + color: #a00; +} +.sheet-tis-wrapper .sheet-tis-body__hex, .sheet-tis-wrapper .sheet-tis-body__hex--first { + display: grid; + grid-template-rows: 0.5fr 1fr; + align-items: center; + justify-items: center; + height: 6.5em; + width: 12.5em; + margin-left: 0.5em; + background: #fff; + clip-path: polygon(0 0, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0 50%, 25% 0%); +} +.sheet-tis-wrapper .sheet-tis-body__hex--first { + margin-top: -2em !important; +} +.sheet-tis-wrapper .sheet-tis-body__hex:nth-child(even), .sheet-tis-wrapper .sheet-tis-body__hex--first:nth-child(even) { + position: relative; + left: 9.6em; +} +.sheet-tis-wrapper .sheet-tis-body__hex:not(:first-child), .sheet-tis-wrapper .sheet-tis-body__hex--first:not(:first-child) { + margin-top: -3.1em; +} +.sheet-tis-wrapper .sheet-tis-body__hex h2, .sheet-tis-wrapper .sheet-tis-body__hex--first h2 { + width: 55%; + font-size: 8pt; + line-height: 8pt; + text-align: center; +} +.sheet-tis-wrapper .sheet-tis-body__hex label.sheet-tis-improvement, .sheet-tis-wrapper .sheet-tis-body__hex--first label.sheet-tis-improvement, +.sheet-tis-wrapper .sheet-tis-body__hex label.sheet-tis-adversity, +.sheet-tis-wrapper .sheet-tis-body__hex--first label.sheet-tis-adversity { + height: 100%; +} +.sheet-tis-wrapper .sheet-tis-body__hex input[type=number], .sheet-tis-wrapper .sheet-tis-body__hex--first input[type=number] { + align-self: center; + width: 100%; + height: 100%; + border: 0; + font-size: 30pt; + text-align: center; +} +.sheet-tis-wrapper .sheet-tis-body__improvements, .sheet-tis-wrapper .sheet-tis-body__records, .sheet-tis-wrapper .sheet-tis-body__shiproles, .sheet-tis-wrapper .sheet-tis-body__backpack { + margin-top: 1em; + padding: 0 1.5em; + background: #fff; + clip-path: polygon(3rem 0, calc(100% - 4.5rem) 0, calc(100% - 1.5rem) 3rem, calc(100% - 1.5rem) 50%, 100% calc(50% + 1.5rem), 100% calc(100% - 1.5rem), calc(100% - 1.5rem) 100%, 1.5rem 100%, 0 calc(100% - 1.5rem), 0rem 3rem); +} +.sheet-tis-wrapper .sheet-tis-name { + position: absolute; + z-index: 1000; + width: 60%; + height: 5em; + padding-left: 2em; + display: flex; + flex-flow: row nowrap; + align-items: flex-end; + clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); + background: #fff; +} +.sheet-tis-wrapper .sheet-tis-name__label { + flex-shrink: 0; + text-transform: uppercase; + font-size: 20pt; + color: #a00; +} +.sheet-tis-wrapper .sheet-tis-name__input[type=text] { + flex-grow: 1; + height: 30pt; + margin-left: 0.5em; + margin-right: 20%; + border-radius: 0; + border: 0; + font-size: 13pt; + font-weight: bold; +} +.sheet-tis-wrapper .sheet-tis-characteristics, .sheet-tis-wrapper .sheet-tis-characteristics__general, .sheet-tis-wrapper .sheet-tis-characteristics__wand, .sheet-tis-wrapper .sheet-tis-characteristics__broom, .sheet-tis-wrapper .sheet-tis-characteristics__other { + padding: 0.5em; + margin-top: 3em; + background: #fff; + clip-path: polygon(3rem 0, calc(100% - 4.5rem) 0, calc(100% - 1.5rem) 3rem, calc(100% - 1.5rem) 50%, 100% calc(50% + 1.5rem), 100% calc(100% - 1.5rem), calc(100% - 1.5rem) 100%, 1.5rem 100%, 0 calc(100% - 1.5rem), 0rem 3rem); +} +.sheet-tis-wrapper .sheet-tis-characteristics h3, .sheet-tis-wrapper .sheet-tis-characteristics__general h3, .sheet-tis-wrapper .sheet-tis-characteristics__wand h3, .sheet-tis-wrapper .sheet-tis-characteristics__broom h3, .sheet-tis-wrapper .sheet-tis-characteristics__other h3 { + grid-column: 1/-1; +} +.sheet-tis-wrapper .sheet-tis-characteristics h3:after, .sheet-tis-wrapper .sheet-tis-characteristics__general h3:after, .sheet-tis-wrapper .sheet-tis-characteristics__wand h3:after, .sheet-tis-wrapper .sheet-tis-characteristics__broom h3:after, .sheet-tis-wrapper .sheet-tis-characteristics__other h3:after { + display: inline; + content: ":"; +} +.sheet-tis-wrapper .sheet-tis-characteristics__general { + padding: 0.5em 0 0 0; +} +.sheet-tis-wrapper .sheet-tis-characteristics__wand { + display: grid; + grid-template-columns: 1fr 1fr; +} +.sheet-tis-wrapper .sheet-tis-characteristic { + grid-column: 1/-1; + display: grid; + grid-template-columns: 0.75fr 1fr; + align-items: center; + margin-bottom: 0.25em; +} +.sheet-tis-wrapper .sheet-tis-characteristic__label, .sheet-tis-wrapper .sheet-tis-characteristic__label--description { + padding: 0.25em; + font-size: 10pt; + font-weight: normal; + text-align: center; + text-transform: uppercase; + clip-path: polygon(0 0, 92.5% 0%, 100% 50%, 92.5% 100%, 0 100%); + color: #fff; + background: #023; +} +.sheet-tis-wrapper .sheet-tis-characteristic__label--description { + width: 43%; +} +.sheet-tis-wrapper .sheet-tis-characteristic__select, .sheet-tis-wrapper .sheet-tis-characteristic__input[type=number], .sheet-tis-wrapper .sheet-tis-characteristic__input[type=text] { + flex-grow: 1; + min-width: 0; + width: 100%; + margin: 0; + padding: 0; + text-align: center; + border: 0; + border-bottom: 3px solid #ddd; + border-radius: 0; +} +.sheet-tis-wrapper .sheet-tis-stat { + display: grid; + grid-template-columns: 1fr 25%; + grid-template-rows: 2em 1fr; + align-items: stretch; + height: 6.5em; + width: 12.5em; + overflow: hidden; + background: #fff; + clip-path: polygon(0 0, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0 50%, 25% 0%); +} +.sheet-tis-wrapper .sheet-tis-stat:nth-child(even) { + position: relative; + left: 9.6em; +} +.sheet-tis-wrapper .sheet-tis-stat:not(:first-child) { + margin-top: -3.1em; +} +.sheet-tis-wrapper .sheet-tis-stat__select { + margin-left: 25%; + margin-right: 0.5em; + height: 60%; + width: auto; + border: 0; + font-size: 20pt; + line-height: 20pt; + text-align: center; +} +.sheet-tis-wrapper .sheet-tis-stat__button { + margin-left: 20% !important; + color: #000; + background: transparent; + border: none; + font-size: 10pt !important; + line-height: 1.5em; + text-align: center; + text-transform: uppercase; +} +.sheet-tis-wrapper .sheet-tis-stat__button:before { + display: none; +} +.sheet-tis-wrapper .sheet-tis-stat__bonus { + position: relative; + grid-row: span 2; + background-color: #bbb; + border: none; + color: #023; +} +.sheet-tis-wrapper .sheet-tis-stat__bonus input { + height: 100%; + width: 100%; + padding-left: 30%; + border: none; + background: #bbb; + color: #023; + font-family: "Montserrat" sans-serif; + font-size: 16pt; +} +.sheet-tis-wrapper .sheet-tis-stat__bonus:before { + position: absolute; + display: inline-block; + content: "BONUS"; + top: calc(50% - .75em); + left: -2.75em; + color: #bbb; + font-size: 12pt; + font-weight: bold; + letter-spacing: 2px; + transform: rotate(-90deg); +} +.sheet-tis-wrapper .sheet-tis-stat__bonus:after { + position: absolute; + display: inline-block; + content: "&"; + top: calc(50% - .9em); + left: 2px; + font-family: "Pictos"; + font-size: 10pt; + font-weight: bold; + letter-spacing: 4px; + transform: rotate(-90deg); +} +.sheet-tis-wrapper .sheet-tis-body__improvements .repitem:not(:last-child) .sheet-tis-improvementrow, .sheet-tis-wrapper .sheet-tis-body__improvements .repitem:not(:last-child) .sheet-tis-improvementrow--header { + border-bottom: 0; +} +.sheet-tis-wrapper .sheet-tis-improvementrow, .sheet-tis-wrapper .sheet-tis-improvementrow--header { + display: grid; + grid-template-columns: 0.45fr 0.5em 1fr; + border: 2px solid #ddd; +} +.sheet-tis-wrapper .sheet-tis-improvementrow--header { + grid-template-columns: 0.45fr 1fr; + border: none; +} +.sheet-tis-wrapper .sheet-tis-improvementrow--header * { + border: none; + color: #023; + font-size: 10pt; + font-weight: normal; + text-align: center; + text-transform: uppercase; +} +.sheet-tis-wrapper .sheet-tis-improvementrow__input { + border: 0; +} +.sheet-tis-wrapper .sheet-tis-improvementrow__input:first-child { + border-right: 0; +} +.sheet-tis-wrapper .sheet-tis-improvementrow__input:first-child input[type=text] { + font-weight: bold; +} +.sheet-tis-wrapper .sheet-tis-improvementrow__input input[type=text] { + width: 100%; + padding: 1em 0; + font-size: 10pt; + border: 0; + border-radius: 0; +} +.sheet-tis-wrapper .sheet-tis-improvementrow__divider { + background: #ddd; + clip-path: polygon(40% 0, 100% 50%, 40% 100%, 0 100%, 65% 50%, 0 0); +} + +.sheet-rolltemplate-tispace .sheet-tispace-container { + display: block; + padding: 1em; + border: 1px solid #023; + background: #fff; +} +.sheet-rolltemplate-tispace .sheet-tispace-container h1 { + width: 80%; + margin: auto; + color: #fff; + background: #023; + clip-path: polygon(0 0, 90% 0%, 100% 50%, 90% 100%, 10% 100%, 0 50%, 10% 0%); + font-family: "Audiowide", sans-serif; + font-size: 14pt; + text-align: center; + text-transform: uppercase; +} +.sheet-rolltemplate-tispace .sheet-tispace-container h2 { + font-family: "Montserrat", sans-serif; + font-size: 12pt; + text-align: center; +} +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result { + margin-top: 1em; + font-family: "Audiowide", sans-serif; + font-size: 14pt; + text-align: center; +} +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result .importantroll, +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result .fullcrit, +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result .fullfail, +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result .inlinerollresult { + border: none; + background: transparent; + font-family: inherit; + line-height: 1em; +} +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result .importantroll { + color: #3e7bff; +} +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result .fullcrit { + color: #4cc016; +} +.sheet-rolltemplate-tispace .sheet-tispace-container .sheet-tispace-roll-result .fullfail { + color: #900; +} diff --git a/Teens in Space Official/tis.html b/Teens in Space Official/tis.html new file mode 100644 index 0000000000..fda839b38c --- /dev/null +++ b/Teens in Space Official/tis.html @@ -0,0 +1,179 @@ + +
+
+

Name

+ +
+
+
+
+
+
+
Age
+ +
+
+
Species
+ +
+
+
Species Drawback
+ +
+
+
Trope
+ +
+
+
Fatal Flaw
+ +
+
+
Description
+ +
+
+
+
+

Improvements

+
Strength NameDescription
+
+
+
+ +
+
+
+ +
+
+
+
+
+

Records

+
+ +
+
+
+
+
+

Stats

+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+

Adversity Tokens

+ +
+
+

Improvement Points

+ +
+
+

Ship Roles

+ +
+
+

Space Backpack

+ +
+
+
+
+ +
{{#name}} +

{{name}}

{{/name}} +
{{#character_name}} +

{{character_name}}

{{/character_name}} + {{#roll}} +
Result: {{roll}}
{{/roll}} +
+
+
\ No newline at end of file diff --git a/Teens in Space Official/tis.png b/Teens in Space Official/tis.png new file mode 100644 index 0000000000..ada6e290ea Binary files /dev/null and b/Teens in Space Official/tis.png differ diff --git a/Teens in Space Official/translation.json b/Teens in Space Official/translation.json new file mode 100644 index 0000000000..ac5ab32971 --- /dev/null +++ b/Teens in Space Official/translation.json @@ -0,0 +1,24 @@ +{ + "Name": "Name", + "Age":"Age", + "Species":"Species", + "Species Drawback":"Species Drawback", + "Trope":"Trope", + "Fatal Flaw":"Fatal Flaw", + "Description":"Description", + "Stats":"Stats", + "Fight":"Fight", + "Flight":"Flight", + "Brains":"Brains", + "Brawn":"Brawn", + "Charm":"Charm", + "Grit":"Grit", + "Improvements":"Improvements", + "Records":"Records", + "Adversity Tokens":"Adversity Tokens", + "Improvement Points":"Improvement Points", + "Space Backpack":"Space Backpack", + "Strength Name": "Strength Name", + "Strength Effects": "Strength Effects", + "Ship Roles": "Ship Roles" +} \ No newline at end of file diff --git a/approved.yaml b/approved.yaml index 348ead13c0..3fa066923d 100644 --- a/approved.yaml +++ b/approved.yaml @@ -13,6 +13,12 @@ agonofficial: - "Agon" - "publisher" +alteredcarbonofficial: + - 'Altered Carbon Official' + - 'Altered Carbon by Hunters Entertainment"' + - 'Hazard System' + - 'publisher' + bandofbladesofficial: - "Band of Blades Official" - "Band of Blades by Evil Hat Productions" @@ -67,6 +73,12 @@ kidsonbikesofficial: - "Kids on Bikes" - "publisher" +kidsonbroomsofficial: + - 'Kids on Brooms Official' + - 'Kids on Brooms by Hunters Entertainment"' + - 'Kids on Bikes' + - 'publisher' + talesfromtheloopofficial: - "Tales from the Loop Official" - "Tales from the Loop by Free League Publishing" @@ -115,6 +127,12 @@ swordandscoundreloofficial: - "Sword & Scoundrel" - "publisher" +teensinspaceofficial: + - 'Teens in Space Official' + - 'Teens in Space by Hunters Entertainment"' + - 'GLORY' + - 'publisher' + tesoroygloriaofficial: - "Tesoro-y-Gloria" - "Tesoro y Gloria by Telmo Arnedo"