diff --git a/CODEOWNERS b/CODEOWNERS index 360a7e9856..af2c130025 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -62,7 +62,6 @@ GODSEND-Agenda/ @Roll20/sheetmaintainers # @Anduh Hc\ Svnt\ Dracones\ Second\ Edition/ @Roll20/sheetmaintainers # @Anduh Hexen\ Academy/ @Roll20/sheetmaintainers # @colearkenach HeXXen-1733-2E/ @Roll20/sheetmaintainers # @sh-dave / Ulisses -Hollow_Knight_Unofficial_TTRPG/ @Roll20/sheetmaintainers # @Ccmaci Imagine/ @Roll20/sheetmaintainers # @MichaelTenery Ironsworn-Starforged/ @Roll20/sheetmaintainers # @aureyia @rsek Ironsworn/ @Roll20/sheetmaintainers # @aureyia @rsek @@ -154,6 +153,7 @@ Slugblaster/ @Roll20/sheetmaintainers # @morgdalaine El\ Rey\ del\ Invierno/ @Roll20/sheetmaintainers # @shadowlandsgames D6++\ Wild\ West/ @Roll20/sheetmaintainers # @mmpAppsCorp D6pp_Wild_West_Quick_Start/ @Roll20/sheetmaintainers # @mmpAppsCorp +D6pp_Modern/ @Roll20/sheetmaintainers # @mmpAppsCorp Rojo/ @Roll20/sheetmaintainers # @Zork04 Streets\ of\ Jade\ (Playtest)/ @Roll20/sheetmaintainers # @fredhicks 3DX\ Corvos/ @Roll20/sheetmaintainers # @ap-gabriel diff --git a/CODEOWNERS.json b/CODEOWNERS.json index 57e6fdd70b..bfe63b2fd3 100644 --- a/CODEOWNERS.json +++ b/CODEOWNERS.json @@ -172,6 +172,7 @@ "Don't Rest Your Head": ["@fredhicks"], "Demon Gate": ["@phaldenby72"], "MythCraft": ["@clevett"], + "D6pp_Modern": ["@mmpAppsCorp"], "Omegaverse_Trpg": [], "AvatarLegends": [] diff --git a/D6pp_Modern/d6ppmodern.css b/D6pp_Modern/d6ppmodern.css new file mode 100644 index 0000000000..a4a9d931ea --- /dev/null +++ b/D6pp_Modern/d6ppmodern.css @@ -0,0 +1,1484 @@ +:root { + /* Font */ + --font-main: 'Arial', serif; /*T*/ + + /* Main Text Colors */ + --text-main: #111111; /*T*/ + --text-secondary: #4b2e0f; + --text-hint: #666; /**/ + --text-table-header: #eeeeee; /*T*/ + --text-readonly: #222; /**/ + + /* Background Colors */ + --bg-sheet-default: #b0c4de; /*T*/ + --bg-editable-text: #fff; /**/ + --bg-table-cell: #f4f4f4; /*T*/ + --bg-table-header: #333333; /*T*/ + --bg-container: #d8d8d8; /*T*/ + --bg-readonly: #b0b0b0; /*T*/ + + /* Border Colors */ + --border-main: #000000; /*T*/ + + /* Table/Interface Specific */ + --grid-line: #000000; /*T*/ + + /* Buttons */ + --button-bg: #2f4f4f; /*T*/ + --button-hover-bg: #3b5f5f; /*T*/ + --button-text: #fff; /**/ + --button-border: #1f2f2f; /*T*/ + --button-text-shadow: 1px 1px 1px #000; + --button-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); /**/ + + /* Controls */ + --radio-button: #000000; /**/ + --checkbox: #000000; /**/ + + /* Shadows */ + --shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); /**/ + + /* Roll Template - NOT SUPPORTED + --shadow-rolltemplate: 2px 2px 6px #888; + --bg-rolltemplate-error: #fbeaea; + --bg-rolltemplate: #4b2e0f; + --border-rolltemplate: #654321; + --text-rolltemplate-error: #8b0000; + --border-rolltemplate-error: #a94442; + */ +} + +.sheet-d6pp-sheet { + background-color: var(--bg-sheet-default); + padding: 20px; + border: 4px solid var(--border-main); + border-radius: 12px; + box-sizing: border-box; + margin: 10px; +} + +.sheet-d6pp-sheet p { + font-family: var(--font-main); + color: var(--text-main); + font-size: 1.1em; +} + +body { + font-family: var(--font-main); +} + +.sheet-rolltemplate-d6plus, +.sheet-rolltemplate-d6plus-no-openend, +.sheet-rolltemplate-speed, +.sheet-rolltemplate-d6plus-message, +.sheet-rolltemplate-d6plus-openend, +.sheet-rolltemplate-d6plus-mishap, +.sheet-rolltemplate-d6plus-initiative, +.sheet-rolltemplate-d6damage { + font-family: 'Arial', serif; /* var(--font-main) */ + background-color: #d8d8d8; /* var(--bg-rolltemplate) */ + border: 2px solid #000; /* var(--border-rolltemplate) */ + box-shadow: 2px 2px 6px #888; /* var(--shadow-rolltemplate) */ + color: #111111; /* var(--text-main) */ + padding: 8px; + border-radius: 6px; +} + +.sheet-rolltemplate-d6plus div, +.sheet-rolltemplate-d6plus-no-openend div, +.sheet-rolltemplate-speed div, +.sheet-rolltemplate-d6plus-message div, +.sheet-rolltemplate-d6plus-openend div, +.sheet-rolltemplate-d6plus-mishap div, +.sheet-rolltemplate-d6plus-initiative div, +.sheet-rolltemplate-d6damage div { + margin: 4px 0; + font-size: 1.1em; +} + +.sheet-rolltemplate-d6plus-openend .inlinerollresult, +.sheet-rolltemplate-d6plus-mishap .inlinerollresult, +.sheet-rolltemplate-d6plus-initiative .inlinerollresult, +.sheet-rolltemplate-d6damage .inlinerollresult, +.sheet-rolltemplate-d6plus .inlinerollresult { + background-color: #d8d8d8; /* var(--bg-rolltemplate) */ + color: #111111; /* var(--text-main) */ + border: 1px solid #000; /* var(--border-rolltemplate) */ + font-weight: bold; + padding: 0 4px; + border-radius: 3px; +} + +.sheet-rolltemplate-d6plus h3, +.sheet-rolltemplate-d6plus-no-openend h3, +.sheet-rolltemplate-speed h3, +.sheet-rolltemplate-d6plus-message h3, +.sheet-rolltemplate-d6plus-openend h3, +.sheet-rolltemplate-d6plus-mishap h3, +.sheet-rolltemplate-d6plus-initiative h3, +.sheet-rolltemplate-d6damage h3 { + font-size: 1.5em; + color: #111111; /* var(--text-main) */ + margin: 0 0 6px 0; + border-bottom: 1px solid #000; /* var(--border-rolltemplate) */ +} + +.sheet-rolltemplate-d6plus-error { + background-color: #fbeaea; /* var(--bg-rolltemplate-error) */ + color: #000; /* var(--text-rolltemplate-error); */ + box-shadow: 2px 2px 6px #888; /* var(--shadow-rolltemplate) */ + border: 2px solid #000; /* var(--border-rolltemplate-error) */ + padding: 10px; + + border-radius: 6px; +} + +.sheet-rolltemplate-d6plus-error h3 { + font-size: 1.4em; + margin: 0 0 6px 0; + color: #000; /* var(--text-rolltemplate-error); */ + text-align: center; +} + +.sheet-rolltemplate-d6plus-error div { + font-size: 1em; + text-align: center; +} + +.skill-section-collapsible { + margin-bottom: 15px; +} + +/* Arrow behavior */ +.skill-toggle-label::before { + content: "▶ "; + display: inline-block; + transition: transform 0.2s ease; +} + +input[type="checkbox"].skill-toggle:checked + .skill-toggle-label::before { + content: "▼ "; +} + +/* Hide/show the collapsible content */ +input[type="checkbox"].skill-toggle:not(:checked) + .skill-toggle-label + .skill-group-content { + display: none; +} + +.skill-group-content { + padding: 12px; + border: 2px solid var(--border-main); + border-radius: 8px; + background-color: var(--bg-container); + box-shadow: var(--shadow); + margin-bottom: 12px; +} + +.section-has-special-ability, +.section-has-skills { + display: none; +} + +input[name="attr_skills_active"][value="1"] ~ .section-has-skills { + display: block; +} + +input[name="attr_special_ability_active"][value="1"] ~ .section-has-special-ability { + display: block; +} + +.melee-grid-one-row, +.melee-grid-two-rows, +.melee-grid-three-rows { + display: none; +} + +input[name="attr_num_melee_attack_active"][value="1"] ~ .melee-grid-one-row { + display: block; +} +input[name="attr_num_melee_attack_active"][value="2"] ~ .melee-grid-two-rows { + display: block; +} +input[name="attr_num_melee_attack_active"][value="3"] ~ .melee-grid-three-rows { + display: block; +} + +.section-has-special-ability { + display: none; +} + +input[name="attr_special_ability_active"][value="1"] ~ .section-has-special-ability { + display: block; +} + +.skill-roll-buttons .activate-skill-button, +.skill-roll-buttons .undo-activate-skill-button, +.skill-roll-buttons .roll-skill-button, +.skill-roll-buttons .activated-label, +.skill-roll-buttons .unactivated-label { + display: none; +} + +input[name$="_active"][value="0"] ~ .skill-roll-buttons .unactivated-label { + display: inline-block; +} + +input[name$="_active"][value="1"] ~ .skill-roll-buttons .activate-skill-button { + display: inline-block; +} + +input[name$="_active"][value="2"] ~ .skill-roll-buttons .undo-activate-skill-button { + display: inline-block; +} + +input[name$="_active"][value="3"] ~ .skill-roll-buttons .roll-skill-button, +input[name$="_active"][value="3"] ~ .skill-roll-buttons .activated-label { + display: inline-block; +} + +.small-hint { + display: block; + font-size: 0.8em; + color: var(--text-hint); + margin-top: 0px; + margin-bottom: 4px; + font-style: italic; +} + +/* Always hide both buttons */ +.enter-spend-mode, +.commit-spend-mode { + display: none; +} + +/* Show Enter button when spend_mode is 0 */ +input[name="attr_spend_mode"][value="0"] ~ .spend-mode .enter-spend-mode { + display: inline-block; +} + +/* Show Commit button when spend_mode is 1 */ +input[name="attr_spend_mode"][value="1"] ~ .spend-mode .commit-spend-mode { + display: inline-block; +} + +.enter-spend-mode, +.commit-spend-mode { + width: 150px; + text-align: center; +} + +/* Hide all by default */ +.preaction-normal, +.preaction-ignorepain, +.preaction-disengage { + display: none; +} + +/* Normal if neither special is active */ +input[name="attr_preaction_ignorepain_active"][value="0"] +~ input[name="attr_preaction_disengage_active"][value="0"] +~ .preaction-normal { + display: block; +} + +/* Show ignorepain dropdown */ +input[name="attr_preaction_ignorepain_active"][value="1"] +~ .preaction-ignorepain { + display: block; +} + +/* Show disengage dropdown */ +input[name="attr_preaction_disengage_active"][value="1"] +~ .preaction-disengage { + display: block; +} + +.reaction-normal, +.reaction-medic, +.reaction-fixit { + display: none; +} + +/* Normal if neither special is active */ +input[name="attr_reaction_fixit_active"][value="0"] +~ input[name="attr_reaction_medic_active"][value="0"] +~ .reaction-normal { + display: block; +} + +/* Show disengage dropdown */ +input[name="attr_reaction_medic_active"][value="1"] +~ .reaction-medic { + display: block; +} + +input[name="attr_reaction_fixit_active"][value="1"] +~ .reaction-fixit { + display: block; +} + +.training-ready-toggle:not(:checked) ~ .next-step-button { + pointer-events: none; + opacity: 0.5; + cursor: not-allowed; +} + +.sheet-ready-toggle:not(:checked) ~ .final-step-button { + pointer-events: none; + opacity: 0.5; + cursor: not-allowed; +} + +.d6pp-checkbox { + display: inline-flex; + align-items: center; + margin-left: 10px; /* Adjust spacing as needed */ + font-weight: bold; +} + +.d6pp-checkbox input { + margin-right: 5px; +} + +.inline-checkbox-label { + display: inline-flex !important; + align-items: center; + gap: 6px; + font-weight: bold; + white-space: nowrap; + margin-right: 5px; +} + +.inline-checkbox-label input[type="checkbox"] { + margin: 0; + transform: scale(1.2); /* Optional */ +} + +select { + width: auto; + max-width: 150px; +} + +.sheet-attack-section { + display: none; + transition: opacity 0.3s ease-in-out, max-height 0.3s ease-in-out; +} + +/* Show only the matching section when the radio is checked */ +input[type="radio"][name="attr_attack_mode"][value="firearms"]:checked ~ .sheet-firearms, +input[type="radio"][name="attr_attack_mode"][value="ranged"]:checked ~ .sheet-ranged, +input[type="radio"][name="attr_attack_mode"][value="armed"]:checked ~ .sheet-armed, +input[type="radio"][name="attr_attack_mode"][value="unarmed"]:checked ~ .sheet-unarmed, +input[type="radio"][name="attr_attack_mode_q"][value="firearms"]:checked ~ .sheet-firearms, +input[type="radio"][name="attr_attack_mode_q"][value="ranged"]:checked ~ .sheet-ranged, +input[type="radio"][name="attr_attack_mode_q"][value="armed"]:checked ~ .sheet-armed, +input[type="radio"][name="attr_attack_mode_q"][value="unarmed"]:checked ~ .sheet-unarmed { + display: block; +} + +button[type="action"].sheet-d6pp, +button[type="roll"].sheet-d6pp, +button[type="action"].roll-skill-button, +button[type="action"].undo-activate-skill-button, +button[type="action"].activate-skill-button, +button[type="action"].enter-spend-mode, +button[type="action"].commit-spend-mode, +button.repcontrol_add, +button.repcontrol_edit, +button[type="action"] { + background: var(--button-bg); + color: var(--button-text); + border: 2px solid var(--button-border); + border-radius: 4px; + font-size: 14px; + padding: 5px 8px; + text-shadow: var(--button-text-shadow); + box-shadow: var(--button-shadow); + cursor: pointer; + transition: all 0.2s ease-in-out; +} + +button[type="action"].sheet-d6pp:hover, +button[type="roll"].sheet-d6pp:hover, +button[type="action"].activate-skill-button:hover, +button[type="action"].undo-activate-skill-button:hover, +button[type="action"].roll-skill-button:hover, +button[type="action"].enter-spend-mode:hover, +button.repcontrol_add:hover, +button.repcontrol_edit:hover, +button[type="action"].commit-spend-mode:hover { + background: var(--button-hover-bg); + transform: scale(1.05); + color: var(--button-text); +} + +.sheet-condition-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); /* Three columns */ + gap: 4px 12px; + margin-bottom: 10px; +} + +.sheet-condition-grid label { + font-weight: bold; + display: flex; + align-items: center; + gap: 6px; +} + +textarea.sheet-d6pp { + resize: vertical; + width: 100%; + line-height: 1.4; + +} + +.textarea-ten-lines { + height: auto !important; + min-height: calc(1.4em * 10 + 8px); /* Matches 10 rows */ +} + +.textarea-two-lines { + height: auto !important; + min-height: calc(1.4em * 2 + 8px); /* Matches 2 rows */ +} + +input.sheet-d6pp, +textarea.sheet-d6pp { + background-color: var(--bg-editable-text); + border: 2px solid var(--border-main); + border-radius: 6px; + padding: 4px 6px; + font-size: 14px; + color: var(--text-main); + box-shadow: var(--shadow); + text-align: left; +} + +.description-display { + white-space: pre-wrap; + padding: 6px; + background-color: var(--bg-parchment); + font-family: var(--font-main); +} + +.sheet-d6pp-label { + font-weight: bold; + font-size: 1.2em; /* Match actual label size */ + color: var(--text-main); + display: inline-block; + margin-bottom: 4px; +} + +.sheet-controls-row { + display: flex; + justify-content: space-between; + align-items: center; + gap: 16px; + flex-wrap: wrap; + margin-bottom: 1em; +} + +/* Each group in the row */ +.sheet-controls-group { + display: flex; + align-items: center; + gap: 8px; +} + +.sheet-character-top-grid { + display: grid; + grid-template-columns: auto 3fr auto 1fr auto 1fr auto 1fr auto 1fr; + gap: 8px 4px; + align-items: center; + margin-bottom: 10px; +} + +.sheet-character-inventory-grid { + display: grid; + grid-template-columns: auto 1fr auto 1fr auto 1fr; + gap: 8px 6px; + align-items: center; + margin-bottom: 10px; +} + +.sheet-character-inventory-grid label { + font-weight: bold; + font-size: 1.1em; + color: var(--text-main); + text-align: right; +} + +.sheet-character-inventory-grid input[type="text"] { + width: 100%; + min-width: 100px; + box-sizing: border-box; + background-color: var(--bg-editable-text); + border: 2px solid var(--border-main); + border-radius: 6px; + padding: 4px 6px; + font-size: 14px; + color: var(--text-main); + text-align: center; + box-shadow: var(--shadow); +} + +.sheet-controls-row label, +.sheet-character-top-grid label { + display: grid; + place-items: center end; /* Vertical + right alignment */ + height: 100%; + margin: 0; + padding: 0; + line-height: 1.2; + box-sizing: border-box; +} + +.sheet-character-top-grid input { + width: 100%; + line-height: 1.2; + box-sizing: border-box; +} + +.sheet-character-top-grid label:not(:first-of-type) { + margin-left: 4px; +} + +.sheet-character-desc-grid { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto auto; + gap: 6px 10px; + margin-bottom: 0px; +} + +.sheet-character-desc-grid label { + text-align: left; + font-weight: bold; + margin: 0; + padding: 0; +} + +.sheet-character-desc-grid textarea { + width: 100%; + height: 100px; + resize: vertical; + box-sizing: border-box; +} + +textarea.sheet-d6pp[readonly], +.sheet-character-desc-grid textarea[readonly], +input.sheet-d6pp[readonly] { + background-color: var(--bg-readonly); + color: var(--text-readonly); + border: 2px solid var(--border-main); + box-sizing: border-box; +} + +#attr_skill_points, +#attr_advantage { + width: 60px; + max-width: 100%; + text-align: center; +} + +.skill-group-content { + padding: 12px; +} + +select.preaction-normal, +select.preaction-ignorepain, +select.preaction-disengage, +select.reaction-normal, +select.reaction-medic, +select.reaction-fixit, +select.background-select, +select[name="attr_significant_action_selection"], +select[name="attr_simple_action_selection"] { + background-color: var(--bg-editable-text); + border: 2px solid var(--border-main); + border-radius: 6px; + padding: 4px 6px; + font-size: 14px; + color: var(--text-main); + box-shadow: var(--shadow); + text-align: left; + max-width: 100%; +} + + +.action-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0px 12px; + align-items: start; + align-self: stretch; +} + +.action-grid-header { + font-size: 1.3em; + font-weight: bold; + color: var(--text-main); + padding-bottom: 4px; +} + +.action-grid > div:nth-child(odd) { + border-right: 2px solid var(--border-main); + padding-right: 16px; + align-self: stretch; +} + +.d6pp-checkbox input[type="checkbox"] { + accent-color: var(--checkbox); + transform: scale(1.2); +} + +input[type="radio"].sheet-tab { + accent-color: var(--radio-button); + transform: scale(1.2); + margin-right: 6px; +} + +.sheet-tab + span { + font-size: 1.1em; + font-weight: bold; + color: var(--text-main); + margin-right: 12px; +} + +.spacer-sm { + height: 8px; +} + +.spacer-md { + height: 16px; +} + +.spacer-lg { + height: 24px; +} + +.spacer-xl { + height: 32px; +} + +.target-number-cell { + text-align: center; + font-size: 2em; + font-weight: bold; + background-color: var(--bg-table-cell); + padding: 6px 8px; + border: 1px solid var(--grid-line); +} + +.number-cell { + text-align: center; + font-size: 1.1em; + background-color: var(--bg-table-cell); + padding: 6px 8px; + border: 1px solid var(--grid-line); +} + +.d6pp-span { + font-size: 1.1em; + color: var(--text-main); + margin-right: 4px; + white-space: nowrap; +} + +.sheet-d6pp-select { + background-color: var(--bg-editable-text); + border: 2px solid var(--border-main); + border-radius: 6px; + padding: 4px 6px; + font-size: 14px; + color: var(--text-main); + box-shadow: var(--shadow); + text-align: left; + max-width: 100%; + box-sizing: border-box; +} + +input[name="attr_spend_mode"][value="1"] ~ .hide-when-spending { + display: none; +} + +.show-when-spending { + display: none; +} + +input[name="attr_spend_mode"][value="1"] ~ .show-when-spending { + display: block; +} + +.sheet-mode-background, +.sheet-mode-vehicle_select, +.sheet-mode-beast_select, +.sheet-mode-training, +.sheet-mode-sheet, +.sheet-mode-type, +.sheet-mode-quicknpc, +.sheet-mode-vehicle, +.sheet-mode-monster { + display: none; +} + +/* Only show background step when attr_sheet_mode is "background" */ +input[name="attr_sheet_mode"][value="type"] ~ .sheet-step-type { + display: block; +} + +/* Only show background step when attr_sheet_mode is "background" */ +input[name="attr_sheet_mode"][value="background"] ~ .sheet-step-background { + display: block; +} + +input[name="attr_sheet_mode"][value="vehicle_select"] ~ .sheet-step-vehicle_select { + display: block; +} + +input[name="attr_sheet_mode"][value="beast_select"] ~ .sheet-step-beast_select { + display: block; +} + +/* Only show training step when attr_sheet_mode is "Training" */ +input[name="attr_sheet_mode"][value="training"] ~ .sheet-step-training { + display: block; +} + +/* Only show character sheet step when attr_sheet_mode is "sheet" */ +input[name="attr_sheet_mode"][value="sheet"] ~ .sheet-step-sheet { + display: block; +} + +/* Only show character sheet step when attr_sheet_mode is "sheet" */ +input[name="attr_sheet_mode"][value="quicknpc"] ~ .sheet-step-quicknpc { + display: block; +} + +/* Only show monster sheet step when attr_sheet_mode is "monster" */ +input[name="attr_sheet_mode"][value="monster"] ~ .sheet-step-monster { + display: block; +} + +/* Only show vehicle sheet step when attr_sheet_mode is "vehicle" */ +input[name="attr_sheet_mode"][value="vehicle"] ~ .sheet-step-vehicle { + display: block; +} + +.attack-count-group { + display: flex; + align-items: center; + justify-content: flex-start; /* ensures items stay to the left */ + gap: 8px; /* space between label and input */ + width: fit-content; /* shrink to fit contents */ +} + +.sheet-small-input { + width: 60px; /* Adjust as needed */ + min-width: 60px; + max-width: 60px; + text-align: center; +} + +.show-if-pc, +.show-if-major, +.show-if-npc { + display: none; +} + +/* These MUST be siblings */ +input[name="attr_character_type"][value="pc"] ~ .show-if-pc { + display: inline-block; +} + +input[name="attr_character_type"][value="major_npc"] ~ .show-if-major { + display: inline-block; +} + +input[name="attr_character_type"][value="npc"] ~ .show-if-npc { + display: inline-block; +} + +.show-if-not-npc { + display: none; +} + +input[name="attr_character_type"][value="pc"] ~ .show-if-not-npc, +input[name="attr_character_type"][value="major_npc"] ~ .show-if-not-npc { + display: block; +} + +/* ================================ + Inventory Card Styles (Wild West) + ================================ */ + +.inventory-card { + border: 2px solid var(--border-main); + border-radius: 8px; + background-color: var(--bg-container); + box-shadow: var(--bg-shadow); + padding: 10px; + margin-bottom: 12px; + font-family: var(--font-main); +} + +.inventory-card-header { + display: grid; + grid-template-columns: 2fr 0.8fr 0.8fr 1fr; + gap: 10px; + align-items: center; + margin-bottom: 6px; +} + +.inventory-item-name, +.inventory-item-location, +.inventory-input { + background-color: var(--bg-editable-text); + border: 2px solid var(--border-main); + border-radius: 6px; + padding: 4px 6px; + font-size: 14px; + color: var(--text-main); + box-shadow: var(--shadow); + width: 100%; + box-sizing: border-box; + font-family: var(--font-main); +} + +.inventory-card-description { + margin-top: 6px; + padding-left: 0; + padding-right: 0; +} + +.inventory-card-description textarea { + width: 100%; + height: calc(1.4em + 15px); /* Two lines high */ + resize: vertical; + border: 2px solid var(--border-main); + border-radius: 6px; + background-color: var(--bg-editable-text); + padding: 6px; + font-size: 14px; + color: var(--text-main); + font-family: var(--font-main); + box-shadow: var(--shadow); + box-sizing: border-box; +} + +.inventory-labeled-input { + display: flex; + align-items: center; + gap: 4px; + font-weight: bold; + font-size: 0.95em; + color: var(--text-main); + width: 100%; +} + +/* Remove arrows from weight field only */ +.weight-input::-webkit-outer-spin-button, +.weight-input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.weight-input { + -moz-appearance: textfield; +} + +/* Hide by default */ +.sheet-view-character, +.sheet-view-inventory { + display: none; +} + +/* Show appropriate view based on attr_view_mode */ +.sheet-view-wrapper input[name="attr_view_mode"][value="character"] ~ .sheet-view-character { + display: block; +} + +.sheet-view-wrapper input[name="attr_view_mode"][value="inventory"] ~ .sheet-view-inventory { + display: block; +} + +/* Hide by default */ +.sheet-view-wrapper .sheet-encumbrance-section { + display: none; +} + +/* Show when visibility flag is set */ +.sheet-view-wrapper input[name="attr_encumbrance_visible"][value="1"] ~ .sheet-encumbrance-section { + display: block; +} + +.skill-group-content textarea.sheet-d6pp { + width: 100%; + box-sizing: border-box; + margin: 0; +} + +.sheet-dodge-toggle { + display: none; +} + +input[name="attr_preaction_selection_normal"][value="Dodge"] ~ .sheet-dodge-toggle, +input[name="attr_preaction_selection_ignorepain"][value="Dodge"] ~ .sheet-dodge-toggle, +input[name="attr_preaction_selection_disengage"][value="Dodge"] ~ .sheet-dodge-toggle { + display: inline-block; +} + +.sheet-multi-attack-toggle { + display: none; +} + +input[name="attr_preaction_selection_normal"][value="Multi-attack"] ~ .sheet-multi-attack-toggle, +input[name="attr_preaction_selection_ignorepain"][value="Multi-attack"] ~ .sheet-multi-attack-toggle, +input[name="attr_preaction_selection_disengage"][value="Multi-attack"] ~ .sheet-multi-attack-toggle { + display: inline-block; +} + +/***** Grid Tables *****/ + +.sheet-grid-table { + display: grid; + width: 500px; + grid-auto-rows: auto; + box-sizing: border-box; +} + +.sheet-grid-table.full-width { + width: 100%; +} + +/* Column count variants */ +.sheet-grid-table.two-col { grid-template-columns: repeat(2, 1fr); } +.sheet-grid-table.three-col { grid-template-columns: repeat(3, 1fr); } +.sheet-grid-table.four-col { grid-template-columns: repeat(4, 1fr); } +.sheet-grid-table.five-col { grid-template-columns: repeat(5, 1fr); } +.sheet-grid-table.six-col { grid-template-columns: repeat(6, 1fr); } +.sheet-grid-table.seven-col { grid-template-columns: repeat(7, 1fr); } +.sheet-grid-table.eight-col { grid-template-columns: repeat(8, 1fr); } +.sheet-grid-table.nine-col { grid-template-columns: repeat(9, 1fr); } +.sheet-grid-table.ten-col { grid-template-columns: repeat(10, 1fr); } + +/* All cells */ +.sheet-grid-table .grid-header, +.sheet-grid-table .grid-cell { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 6px 8px; + font-size: 1.0em; + text-align: center; + box-sizing: border-box; + + /* Only top and left borders to prevent doubling */ + border-top: 0px; + border-left: 1px solid var(--grid-line); + border-bottom: 1px solid var(--grid-line); + border-right: 0px; +} + +/* Header styling */ +.sheet-grid-table .grid-header { + background-color: var(--bg-table-header); + font-weight: bold; + color: var(--text-table-header); + border-top: 1px solid var(--grid-line); +} + +/* Body cell background */ +.sheet-grid-table .grid-cell { + background-color: var(--bg-table-cell); +} + +/* Add right border to the last column of every row */ +.sheet-grid-table.ten-col > *:nth-child(10n), +.sheet-grid-table.two-col > *:nth-child(2n), +.sheet-grid-table.three-col > *:nth-child(3n), +.sheet-grid-table.four-col > *:nth-child(4n), +.sheet-grid-table.five-col > *:nth-child(5n), +.sheet-grid-table.six-col > *:nth-child(6n), +.sheet-grid-table.seven-col > *:nth-child(7n), +.sheet-grid-table.eight-col > *:nth-child(8n), +.sheet-grid-table.nine-col > *:nth-child(9n) { + border-right: 1px solid var(--grid-line); +} + +/***** FIREARM TABLE *****/ + +/* === Base Attack Grid Styling === */ +.sheet-grid-attack { + display: grid; + width: 500px; /* default */ + grid-auto-rows: auto; + box-sizing: border-box; +} + +.sheet-grid-attack.full-width { + width: 100%; +} + +.sheet-grid-table .target-number-cell { + font-weight: bold; + font-size: 2em; + color: var(--text-main); +} + +.sheet-grid-attack > div { + border: 1px solid var(--grid-line); + padding: 6px 8px; + font-size: 1em; + font-family: var(--font-main); + text-align: center; + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; +} + +.sheet-grid-attack .grid-header, +.sheet-grid-attack .grid-cell { + border-left: 1px solid var(--grid-line); + border-right: 0; + border-top: 0; + border-bottom: 1px solid var(--grid-line); +} + +.sheet-grid-attack .grid-cell { + background-color: var(--bg-table-cell); +} + +.sheet-grid-attack .grid-header { + background-color: var(--bg-table-header); + color: var(--text-table-header); + font-weight: bold; + border-top: 1px solid var(--grid-line); +} + +.sheet-grid-attack select { + width: 100%; + font-size: 14px; +} + +.sheet-grid-attack button { + font-size: 1.1em; + margin: 0; + padding: 4px 8px; +} + +.stack-tight { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; +} + +.stack-weapon { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + text-align: center; +} + +.weapon-skill { + font-size: 1.1em; + font-family: var(--font-main); + line-height: 1.2em; +} + +.weapon-skill .small-hint { + display: inline; +} + +.ammo-button-row { + display: flex; + flex-direction: row; + gap: 4px; +} + +.grid-cell.ammo-display { + display: flex; /* Ensure flex container */ + justify-content: flex-start; /* Align contents to left */ + align-items: center; /* Vertically center if desired */ + text-align: left; + padding-left: 4px; + font-size: 1.5em; +} + +/* === Specific Grid Column Layouts === */ +.sheet-grid-firearms { + grid-template-columns: + 2fr /* Weapon */ + 1fr /* Dice */ + 1fr /* Damage */ + 1.2fr /* Ammo */ + 1fr /* Short */ + 1fr /* Medium */ + 1fr /* Long */ + 1fr; /* Extreme */ +} + +.sheet-grid-ranged { + grid-template-columns: + 2fr /* Weapon */ + 1fr /* Dice */ + 1fr /* Damage */ + 1fr /* Short */ + 1fr /* Medium */ + 1fr /* Long */ + 1fr; /* Extreme */ +} + +.sheet-grid-melee { + grid-template-columns: + 2fr /* Weapon */ + 1fr /* Dice */ + 1fr; /* Damage */ +} + +/* Add right border to the last column of every row when grid is melee or ranged */ +.sheet-grid-attack.sheet-grid-firearms > *:nth-child(8n), +.sheet-grid-attack.sheet-grid-melee > *:nth-child(3n), +.sheet-grid-attack.sheet-grid-ranged > *:nth-child(7n) { + border-right: 1px solid var(--grid-line); +} + +.sheet-grid-attack.sheet-grid-firearms > .full-row { + grid-column: span 8; + border-right: 1px solid var(--grid-line); +} + +.sheet-grid-attack.sheet-grid-firearms > .last-row { + grid-column: span 8; + border-bottom: 1px solid var(--grid-line); +} + +/**** START Spinner Arrows trick *****/ +/* Firefox - hide number input spinners by default */ +input[type="number"] { + -moz-appearance: textfield; +} + +/* Firefox - restore spinner on hover */ +input[type="number"]:hover { + -moz-appearance: initial; +} + +/* Chrome/Safari/Edge - hide spinners by default */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + opacity: 0; + transition: opacity 0.2s ease-in-out; +} + +/* Chrome/Safari/Edge - show spinners on hover */ +input[type="number"]:hover::-webkit-inner-spin-button, +input[type="number"]:hover::-webkit-outer-spin-button { + opacity: 1; +} +/**** END Spinner Arrows trick *****/ + +.sheet-grid-actions { + display: grid; + grid-template-columns: 1fr 1fr; /* Two equal columns */ + gap: 1em; + align-items: start; +} + +.sheet-grid-left { + display: flex; + flex-direction: column; + gap: 0.5em; +} + +.sheet-grid-right { + display: flex; + flex-direction: column; + gap: 0.25em; +} + +.sheet-grid-right textarea { + width: 100%; + height: 100%; + resize: none; + box-sizing: border-box; /* Prevents overflow in some Roll20 themes */ +} + +.sheet-new-turn-container { + text-align: right; + margin-top: 1em; +} + +.sheet-inline-row { + display: flex; + flex-wrap: nowrap; /* Ensures the label/input stay on one line */ + align-items: center; + gap: 0.3em; +} + +.sheet-inline-row label { + white-space: nowrap; + margin: 0; +} + +.sheet-divider { + border: none; + border-top: 1px solid #444; + margin: 0.5em 0; +} + +.sheet-skill-select-row select { + width: 180px; +} + +.sheet-skill-select-row { + display: flex; + align-items: baseline; + gap: 16px; +} + +.sheet-skill-select-row select, +.sheet-skill-select-row span, +.sheet-skill-select-row button { + line-height: 1.4; + margin: 0; + padding: 4px 6px; + vertical-align: middle; +} + +.sheet-skill-select-row button { + min-width: 110px; + text-align: center; +} + +/* Default state: editable shown, readonly hidden */ +.sheet-editable-actions { + display: none; +} +.sheet-readonly-actions { + display: none; +} + +/* When locked (value = "1"): hide editable, show readonly */ +input[name="attr_actions_locked"][value="1"] ~ .sheet-editable-actions { + display: none; +} +input[name="attr_actions_locked"][value="1"] ~ .sheet-readonly-actions { + display: inline-block; +} + +input[name="attr_actions_locked"][value="0"] ~ .sheet-editable-actions { + display: inline-block; +} +input[name="attr_actions_locked"][value="0"] ~ .sheet-readonly-actions { + display: none; +} + +.sheet-grid-table select, +.sheet-grid-table button { + width: 100%; + padding: 4px 6px; + font-size: 1em; + height: 2.2em; /* Consistent height for both */ + box-sizing: border-box; +} + +.skill-roll-buttons { + width: 100%; + padding: 4px 6px; + font-size: 1em; + height: 2.2em; /* Consistent height for both */ +} + +.sheet-grid-table .grid-cell { + display: flex; + align-items: center; +} + +.sheet-d6pp-wealth-label::after { + content: "D"; + margin-left: 0px; +} + +/* Choice activations */ + +.sheet-show-if-background-performance, +.sheet-show-if-hobby-performance, +.sheet-show-if-background-physical, +.sheet-show-if-origin-physical, +.sheet-show-if-hobby-physical, +.sheet-show-if-origin-technical, +.sheet-show-if-hobby-technical, +.sheet-show-if-background-technical, +.sheet-show-if-background-origin, +.sheet-show-if-background-ma, +.sheet-show-if-origin-ma, +.sheet-show-if-hobby-ma, +.sheet-show-if-background-science, +.sheet-show-if-hobby-science, +.sheet-show-if-hobby-animals, +.sheet-show-if-background-knowledge, +.sheet-show-if-origin-knowledge, +.sheet-show-if-background-aviation { + display: none; +} + +input[name="attr_choose_background_activate_aviation"][value="1"] ~ .sheet-show-if-background-aviation { + display: inline-block; +} + +input[name="attr_choose_background_activate_ma"][value="1"] ~ .sheet-show-if-background-ma { + display: inline-block; +} + +input[name="attr_choose_origin_activate_ma"][value="1"] ~ .sheet-show-if-origin-ma { + display: inline-block; +} + +input[name="attr_choose_hobby_activate_ma"][value="1"] ~ .sheet-show-if-hobby-ma { + display: inline-block; +} + +input[name="attr_choose_background_activate_science"][value="1"] ~ .sheet-show-if-background-science { + display: inline-block; +} + +input[name="attr_choose_hobby_activate_science"][value="1"] ~ .sheet-show-if-hobby-science { + display: inline-block; +} + +input[name="attr_choose_background_activate_knowledge"][value="1"] ~ .sheet-show-if-background-knowledge { + display: inline-block; +} + +input[name="attr_choose_origin_activate_knowledge"][value="1"] ~ .sheet-show-if-origin-knowledge { + display: inline-block; +} + +input[name="attr_choose_background_specialize_performance"][value="1"] ~ .sheet-show-if-background-performance { + display: inline-block; +} + +input[name="attr_choose_hobby_specialize_performance"][value="1"] ~ .sheet-show-if-hobby-performance { + display: inline-block; +} + +input[name="attr_choose_background_specialize_physical"][value="1"] ~ .sheet-show-if-background-physical { + display: inline-block; +} + +input[name="attr_choose_origin_specialize_physical"][value="1"] ~ .sheet-show-if-origin-physical { + display: inline-block; +} + +input[name="attr_choose_hobby_specialize_physical"][value="1"] ~ .sheet-show-if-hobby-physical { + display: inline-block; +} + +input[name="attr_choose_origin_specialize_technical"][value="1"] ~ .sheet-show-if-origin-technical { + display: inline-block; +} + +input[name="attr_choose_hobby_specialize_technical"][value="1"] ~ .sheet-show-if-hobby-technical { + display: inline-block; +} + +input[name="attr_choose_background_specialize_technical"][value="1"] ~ .sheet-show-if-background-technical { + display: inline-block; +} + +input[name="attr_choose_hobby_specialize_animals"][value="1"] ~ .sheet-show-if-hobby-animals { + display: inline-block; +} + +.sheet-show-if-running { + display: none; +} + +input[name="attr_run_toggle"][value="1"] ~ .sheet-show-if-running { + display: inline-block; +} + +.sheet-armor-row { + display: flex; + gap: 20px; + margin-bottom: 1em; +} + +.sheet-armor-column { + flex: 1; + display: flex; + flex-direction: column; +} + +.sheet-armor-column label { + font-weight: bold; + margin-bottom: 4px; +} + +.sheet-armor-column select { + width: 100%; + margin-bottom: 4px; +} + +.sheet-armor-column span[name^="attr_"] { + font-size: 0.9em; + min-height: 1.5em; + line-height: 1.4; +} + +/******* WEALTH *********/ + +/* Enabled look */ +.ammo-button-row .sheet-wealth-button { + opacity: 1; + pointer-events: auto; +} + +/* Disable when checkbox is checked */ +.ammo-button-row input[name="attr_used_3Dwealth"]:checked ~ .sheet-wealth-button { + opacity: 0.5; /* greyed out */ + pointer-events: none; /* no clicks */ +} + +.ammo-button-row input[name="attr_used_4Dwealth"]:checked ~ .sheet-wealth-button { + opacity: 0.5; /* greyed out */ + pointer-events: none; /* no clicks */ +} + +.ammo-button-row input[name="attr_used_5Dwealth"]:checked ~ .sheet-wealth-button { + opacity: 0.5; /* greyed out */ + pointer-events: none; /* no clicks */ +} + +/******* END WEALTH *****/ + +.sheet-veh-block { display:none; } + +input[name="attr_vehicle_category_val"][value="cars"] ~ .sheet-veh-cars { display:block; } +input[name="attr_vehicle_category_val"][value="utility"] ~ .sheet-veh-utility { display:block; } +input[name="attr_vehicle_category_val"][value="specialty"] ~ .sheet-veh-specialty { display:block; } +input[name="attr_vehicle_category_val"][value="emergency"] ~ .sheet-veh-emergency { display:block; } +input[name="attr_vehicle_category_val"][value="terrain"] ~ .sheet-veh-terrain { display:block; } +input[name="attr_vehicle_category_val"][value="motorcycles"] ~ .sheet-veh-motorcycles { display:block; } +input[name="attr_vehicle_category_val"][value="watercraft"] ~ .sheet-veh-watercraft { display:block; } +input[name="attr_vehicle_category_val"][value="aircraft"] ~ .sheet-veh-aircraft { display:block; } + +.sheet-beast-block { display: none; } + +input[name="attr_beast_category_val"][value="dogs"] ~ .sheet-beast-dogs { display: block; } +input[name="attr_beast_category_val"][value="primates"] ~ .sheet-beast-primates { display: block; } +input[name="attr_beast_category_val"][value="flying"] ~ .sheet-beast-flying { display: block; } +input[name="attr_beast_category_val"][value="wild"] ~ .sheet-beast-wild { display: block; } +input[name="attr_beast_category_val"][value="burden"] ~ .sheet-beast-burden { display: block; } +input[name="attr_beast_category_val"][value="exotic"] ~ .sheet-beast-exotic { display: block; } +input[name="attr_beast_category_val"][value="livestock"] ~ .sheet-beast-livestock { display: block; } +input[name="attr_beast_category_val"][value="insects"] ~ .sheet-beast-insects { display: block; } +input[name="attr_beast_category_val"][value="cats"] ~ .sheet-beast-cats { display: block; } +input[name="attr_beast_category_val"][value="snakes"] ~ .sheet-beast-snakes { display: block; } +input[name="attr_beast_category_val"][value="sea"] ~ .sheet-beast-sea { display: block; } diff --git a/D6pp_Modern/d6ppmodern.html b/D6pp_Modern/d6ppmodern.html new file mode 100644 index 0000000000..dd677f67c3 --- /dev/null +++ b/D6pp_Modern/d6ppmodern.html @@ -0,0 +1,15609 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Choose Character Type

+
+ +
+ +

The heroes of the story. Fully customizable with access to all attributes, skills, gear, and abilities.

+
+ +

A car, truck, plane or boat used by PCs or NPCs.

+
+ +

A pet or wild animal.

+
+
+
+ +

Significant allies or adversaries. Comparable to or stronger than PCs.

+
+ +

Supporting characters who influence scenes but are not central to the narrative. They get 0 skill points.

+
+ +

Background characters or disposable extras. Fast to build and play with 2D in all attributes and skills.

+
+ + +
+

Choose a Profession, Childhood Origin and Hobby

+
+ + +
+
+

Choose a Profession

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

Select an Aviation skill to unlock

+ +
+ +
+

Select an martial art to unlock

+ +
+ +
+

Select a Knowledge skill to unlock

+ +
+ +
+

Select a science skill to unlock

+ +
+ +
+

Select a Performance skill to specialize

+ +
+ +
+

Select a Physical skill to specialize

+ +
+ +
+

Select a Technical skill to specialize

+ +
+
+ +

Choose a Childhood Origin

+ +
+ + + + + + + +
+

Select a Knowledge skill to unlock

+ +
+ +
+

Select an martial art to unlock

+ +
+ +
+

Select a Physical skill to specialize

+ +
+ +
+

Select a Technical skill to specialize

+ +
+ +
+ +

Choose a Hobby

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

Select a science skill to unlock

+ +
+ +
+

Select a Animals skill to specialize

+ +
+ +
+

Select a Technical skill to specialize

+ +
+ +
+

Select an martial art to unlock

+ +
+ +
+

Select a Performance skill to specialize

+ +
+ +
+

Select a Physical skill to specialize

+ +
+ +
+ +

Starting Equipment

+
+ +
+
+ + +
+

Choose a Vehicle Type

+
+ + +
+
+ + + + + + + + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ +
+
Strength
+
Agility
+
Health
+
Quickness
+ + + + + +
+
+ + +
+

Choose a Beast Type

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

Training

+ + +

Distribute 27 points among Attributes and 60 points among Skill Groups, then click ‘Finish’.

+
+ +

This major NPC is a significant character. Customize their stats as needed for story balance.

+
+ +

This standard NPC. You can adjust their attributes but they don't get any skill points.

+
+
+ +
+ + +
+ +
+

:

+
+ +
+

Attributes

+
+
Attribute
+
Base
+ +
(S)trength
+
+ +
(A)gility
+
+ +
(H)ealth
+
+ +
(P)erception
+
+ +
(Q)uickness
+
+ +
(W)illpower
+
+ +
(I)ntelligence
+
+ +
(M)anual Dex
+
+ +
(C)harisma
+
+ +
Total Assigned
+
0 / 27
+
+
+
+ + +
+
+ + +
+
+ +
Skill
+
Attr Code
+
Dice Code
+
+ + +
+
+
+
Activated
+ + +
+
+
+
Activated
+ + +
+
+
+
Activated
+ + +
+
+
+
Activated
+ + +
+
+
+
Activated
+
+
+
+

Trainable Skill Groups

+

Non-Combat Skills

+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
Activated
+
+ Activating a skill costs 12 skill points. +
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
+ +
+ + + Activated +
+
+
+ Activating a skill costs 12 skill points. +
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
Activated
+ +
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
+
Attr Code
+
Dice Code
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ +

Combat Skills

+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
+ +
+ + + Activated +
+
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+ Activating a skill costs 12 skill points. +
+
+ + +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+ +
+
+
+
Activated
+
+
+
+ + +
+ + +
+
+ +
+ + +
Skill Points Left:
+
+
+
+ +
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ + +
+
+
+
Activated
+ + +
+
+
+
Activated
+ + +
+
+
+
Activated
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ + +
+
+
+
+ +
+ + + Activated +
+
+ +
+ + Activating a skill costs 12 skill points. +
+
+ +
+
+ + +
+
+ +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ +
+ +
+
+ +
+ +
+ + +
+
+ + + + + + + + + + +
+ +
+ + + + +
+
+ +
+
+ +
+
+ + + + + + +
+
+
+
+
+ + +
+ +
+ + +
+ +
+ +
+
+
+ + +
+
+ + +
+
+ +
+
+
+ +
+
+
+ + +
+ +
+ + +
+
+ +
+
+
+
+ +
+
Selected Skill
+
Skill Code
+
Adjusted Code
+
Roll Button
+
+ +
+
+
+
+ +
+ +
+ +
+
+
Reactions are not penalized by multi-actions
+
+ +
+
+
+
+
+
+ + + Firearms + + Ranged + + Armed + + Unarmed +
+
+ +
+ +
Weapon
+
Dice
+
Damage
+
Ammo
+
Short
+
Medium
+
Long
+
Extreme
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+
+
+
+ +
+ + +
+
+ +
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+
+
+
+ +
+ + +
+
+ +
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
Weapon
+
Dice
+
Damage
+
Short
+
Medium
+
Long
+
Extreme
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+
+
+
+
+
+
+ +
Weapon
+
Dice
+
Damage
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+
+
+ +
Weapon
+
Dice
+
Damage
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+
+
+
+
+
+ + + + + +
+
+
+
+
+ + + + + +
+
+
+
+
+
+ +
+
+ + +
+
+ +
+
+
+
+ +
+ + +
+
+
Target Number
+
Challenge Rating
+
Modifier
+
Wound Penalty
+
Armor Penalty
+
Driving Penalty
+
0
+
+ +
+
+
0
+
0
+
0
+
+ Modifier includes Help, Prep, and situational bonuses. +
+
+ +
+ + +
+
+ +
Target Number
+
Range
+
Cover
+
Opponent's Dodge
+
Opponent's Armor
+
Modifier
+
Wound Penalty
+
Armor Penalty
+
Aiming Bonus
+
Driving Penalty
+ +
0
+
+ +
+
+ +
+
+ +
+
+ +
+
+
0
+
0
+
0
+
0
+
+ Modifier includes Help, Prep, and situational bonuses. +
+ +
+
+ +
+ +
+
+
+
+ +
+ + +
+ +
+ +
+ + + + Bonus
+ + Penalty +
+ +
+ + +
+ + + + Bonus
+ + Penalty +
+ +
+ + +
+ + + + Bonus
+ + Penalty +
+ +
+
+ +
+
+ +
+ + +
+
+
First Aid Target Number
+
Wound Points
+
Wounds Ignored
+
# First Aid
+
Unconscious Threshold
+
Death Threshold
+
+ 0 +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+ +
+
+ + +
+ +
+
+
+
+
+ +
+ + +
+
+ + + + + + + + + + + + + +
+
+
+ +
+ + +
+
+ +
+
Base
+
Adjustment
+
Actual
+
Roll
+ +
(S)trength
+
+
+
+
+ +
(A)gility
+
+
+
+
+ +
(H)ealth
+
+
+
+
+ +
(P)erception
+
+
+
+
+ +
(Q)uickness
+
+
+
+
+ +
(W)illpower
+
+
+
+
+ +
(I)ntelligence
+
+
+
+
+ +
(M)anual Dex
+
+
+
+
+ +
(C)harisma
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ + +
+ +
+ + +
+
+
+
Base
+
(S)trength
+
+
(A)gility
+
+
(H)ealth
+
+
(P)erception
+
+
(Q)uickness
+
+
(W)illpower
+
+
(I)ntelligence
+
+
(M)anual Dex
+
+
(C)harisma
+
+
+
+
+
+ +

Non-Combat Skills

+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+ + + + Not Activated +
+
+ +
+
+
+
+ +
+ + + + Not Activated +
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+ +
+
+
+
+ +
+ + + + Not Activated +
+
+ +
+
+
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+ +
+
+
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ + + + Not Activated +
+
+ +
+
+
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Combat Skills

+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+ +
+ + + + Not Activated +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Activating a skill costs 12 skill points. +
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
+ + +
+ Skill Points Left: +
+
+
+
+ +
+
Skill
+
Attr Code
+
Dice Code
+
Roll
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ + +
+
+
+
+ +
+ + + + Not Activated +
+
+ +
+ + Activating a skill costs 12 skill points. +
+
+
+
+
+ +
+

Inventory & Wealth

+
+ +
+ + + + +
+ +
+ +
+
+ +
+ + +
+
+
+ + + + +
+
+
+
Wealth Target Number
+
Money Needed
+
Scale
+
Daily Roll
+
Weekly Roll
+
Monthly Roll
+ +
+ 0 +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ A Target Number of 0 means no roll is required. +
+ +
+
+ +
+
+
+ +
+
+ + +
+
+
+
Capacity (lbs)
+
-5 Move/Run
+
-10 Move/Run
+
-15 Move/Run
+
-20 Move/Run
+
-25 Move/Run
+
Character
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+ +
+
+ + +
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+
+ +
+

Drop an item here

+ + + + + +
+ +
+
+
+
+
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+ + +
+ + +
+
+
+ + +
+ +
+
+ +
+
+ + + + + + +
+
+
+
+ + +
+ +
+ + +
+
+
Target Number
+
Challenge Rating
+
Modifier
+
Wound Penalty
+
Armor Penalty
+ +
0
+
+ +
+
+
0
+
0
+
+
+ +
+
+
+ + +
+ + +
+
+ + +
Target Number
+
Opponent's Dodge
+
Opponent's Armor
+
Modifier
+
Wound Penalty
+ + +
0
+
+ +
+
+ +
+
+
0
+ +
+ +
+ + + +
+
+ +
Weapon
+
Dice
+
Damage
+ + +
+ + +
+
+ + + +
+
+ + + +
+
+
+ +
+
+ +
Weapon
+
Dice
+
Damage
+ + +
+ + +
+
+ + + +
+
+ + + +
+ + +
+ + +
+
+ + + +
+
+ + + +
+
+
+ +
+
+ +
Weapon
+
Dice
+
Damage
+ + +
+ + +
+
+ + + +
+
+ + + +
+ + +
+ + +
+
+ + + +
+
+ + + +
+ + +
+ + +
+
+ + + +
+
+ + + +
+
+
+ +
+ +
+ + +
+ +
+
+ +
+ + + + +
+
+
+
+ + +
+ + +
+
+
First Aid Target Number
+
Wound Points
+
Wounds Ignored
+
# First Aid
+
Unconscious Threshold
+
Death Threshold
+ +
+ 0 +
+
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+ +
+
+ + +
+ +
+
+
+
+
+ + +
+ + +
+
+ +
S
+
A
+
H
+
P
+
Q
+
W
+
I
+
M
+
C
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+ + +
+ + + + + +
+ +
+ + +
+
+ +
+ + +
+
+ +
+ + +
+ + +
+ + +
+
+ +
+ + +
+ +
+
+ +
+
+ + +
+
+
+
+ + +
+ + +
+ +
+ +
+
+ +
+ + + D +
+
+ +
+
+ + +
+
+ +
+
+
+ +
+
+ +
+ + + D +
+
+ +
+
+ + +
+
+ +
+
+
+
+ +
+
Selected Skill
+
Adjusted Skill Code
+
Roll Button
+
+ +
+
+
+ +
+
+
+
+ + + +
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+
+ + +
+
+ +
+
+
+
+ +
+ + +
+
+
Target Number
+
Challenge Rating
+
Modifier
+
Wound Penalty
+
Distracted Driving Penalty
+
0
+
+ +
+
+
0
+
0
+
+ Modifier includes situational bonuses. +
+
+ + +
+ + +
+
+
Wound Points
+
Inoperable Threshold
+
Totaled Threshold
+ +
+ +
+
+
+
+
+ +
+ +
+ +
+
+
+
+ + +
+ + +
+
+ + + + +
+
+
+ + +
+ + +
+
+ +
+
Base
+
Adjustment
+
Actual
+
Roll
+ +
(S)trength
+
+
+
+
+ +
(A)gility
+
+
+
+
+ +
(H)ealth
+
+
+
+
+ +
(Q)uickness
+
+
+
+
+
+
+
+ +
+ + +
+
+ +
Skill
+
Attr Code
+
Dice Code
+
Roll
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+ + +
+ + +
+ +
+ + +
+
+ +
+ + +
+ +
+ +
+ + +
+ + +
+ + +
+
+
+ + +
+ +
+
+ +
+
+ + + + + + +
+
+
+
+ + +
+ + +
+
+
Target Number
+
Challenge Rating
+
Modifier
+
Wound Penalty
+
Armor Penalty
+
Driving Penalty
+ +
0
+
+ +
+
+
0
+
0
+
0
+
+ Modifier includes Help, Prep, and situational bonuses. +
+
+ + +
+ + +
+
+ + +
Target Number
+
Range
+
Cover
+
Opponent's Dodge
+
Opponent's Armor
+
Modifier
+
Wound Penalty
+
Armor Penalty
+
Driving Penalty
+ + +
0
+
+ +
+
+ +
+
+ +
+
+ +
+
+
0
+
0
+
0
+ +
+ Modifier includes Help, Prep, and situational bonuses. +
+ +
+ + + Firearms + + Ranged + + Armed + + Unarmed +
+
+ +
+ +
Weapon
+
Dice
+
Damage
+
Ammo
+
Short
+
Medium
+
Long
+
Extreme
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+
+
+
+ +
+ + +
+
+ +
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+
+
+
+ +
+ + +
+
+ +
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
Weapon
+
Dice
+
Damage
+
Short
+
Medium
+
Long
+
Extreme
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+
+
+
+
+
+
+ +
Weapon
+
Dice
+
Damage
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+
+
+ +
Weapon
+
Dice
+
Damage
+ +
+ +
+ () +
+
+
+ + +
+
+ + +
+
+
+
+
+
+ +
+
+
+ +
+ + +
+ +
+ +
+ + + + Bonus
+ + Penalty +
+ +
+ + +
+ + + + Bonus
+ + Penalty +
+ +
+ + +
+ + + + Bonus
+ + Penalty +
+ +
+
+ +
+
+ +
+ + +
+
+
First Aid Target Number
+
Wound Points
+
Wounds Ignored
+
# First Aid
+
Unconscious Threshold
+
Death Threshold
+ +
+ 0 +
+
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+ +
+ +
+
+ + +
+ +
+
+
+
+
+ + +
+ + +
+
+ + + + + + + + + + + + + +
+
+
+ + +
+ + +
+
+
+
Base
+
Roll
+ +
Any Attribute/Skill
+
2D
+
+
+
+
+
+ +
+ + + + +
+
{{character}}
+

{{name}}

+
Dice Code: {{dice_code}}
+
Total: {{roll}}
+
Open Ended D20: {{d20}}
+
+
+ + +
+
{{character}}
+

{{name}}

+
Dice Code: {{dice_code}}
+
Total: {{roll}}
+
+
+ + +
+

{{name}}

+
{{message}}
+ + + +
+
{{character}}
+

Initiative Roll

+
Dice Code: {{dice_code}}
+
Total: {{roll}}
+
+
+ + +
+
{{character}}
+

{{weapon}} Damage

+
Damage Total: {{damage_roll}}
+
Minimum Damage: {{minimum_damage}}
+ {{#special}} +
Special: {{special}}
+ {{/special}} +
+
+ + +
+

{{name}}

+
{{message}}
+
+
+ + +
+
{{character}}
+

{{name}}

+
Dice Code: {{dice_code}}
+
Total: {{rolls}}
+
Open Ended D20s: {{d20s}}
+
+
+ + +
+
{{character}}
+

{{name}}

+
Dice Code: {{dice_code}}
+
Total: {{roll}}
+
Open Ended D20: {{d20}}
+
Mishap!!
+
+
+ + +
+
{{character}}
+

{{move_type}}

+
Dice Code: {{dice_code}}
+
Move Code: {{move_code}} ft
+
+
diff --git a/D6pp_Modern/d6ppmodern.png b/D6pp_Modern/d6ppmodern.png new file mode 100644 index 0000000000..845ab116bd Binary files /dev/null and b/D6pp_Modern/d6ppmodern.png differ diff --git a/D6pp_Modern/sheet.json b/D6pp_Modern/sheet.json new file mode 100644 index 0000000000..6569abb081 --- /dev/null +++ b/D6pp_Modern/sheet.json @@ -0,0 +1,13 @@ +{ + "name": "D6++ Modern", + "format": "legacy", + "html": "d6ppmodern.html", + "css": "d6ppmodern.css", + "authors": "MmpApps Corp.", + "roll20userid": "10156180", + "instructions": "Designed for the D6++ Modern RPG system.", + "version": 1, + "description": "Compatible with the D6++ Modern RPG system. Designed for fast-paced cinematic gameplay, this sheet is fully integrated with the D6++ Modern Compendium.\n\n- Drag-and-drop ready for weapons, items, and gear from the Compendium.\n- Streamlined layout optimized for clarity and speed during play.\n- Auto-calculations for skills, wounds, and modifiers to keep the action flowing.\n- Pre-built roll buttons for all major actions—just click and play.\n- Training mode and background selection built directly into the sheet.\n- Customizable attributes, weapons, and gear for player characters, and NPCs.\n- Supports all official D6++ mechanics including conditions, reactions, and declared actions.\n- Flexible sheet types: Player Character, Vehicles, Beasts, Major NPC, Standard NPC, and Quick NPC", + "compendium": "d6pp-modern", + "preview": "d6ppmodern.png" +} diff --git a/Draw Steel/README.md b/Draw Steel/README.md index b412d37ce5..fdd6290fb0 100644 --- a/Draw Steel/README.md +++ b/Draw Steel/README.md @@ -1,2 +1,14 @@ # TODO * inventory (consumables/trinkets/treasures) +## Discord +* https://discord.com/channels/1264403896634445875/1264403896634445877 +## JSON instructions +* { + "html": "draw-steel.html", + "css": "draw-steel.css", + "authors": "Primal Zed", + "roll20userID": "2322441", + "preview": "preview.png", + "instructions": "For [Draw Steel by MCDM](https://www.mcdmproductions.com/)\nThis Draw Steel character sheet for Roll20 is an independent product published under the DRAW STEEL Creator License and is not affiliated with MCDM Productions, LLC. DRAW STEEL © 2024 MCDM Productions, LLC.", + "legacy": false +} diff --git a/Draw Steel/draw-steel.css b/Draw Steel/draw-steel.css index 88d3dd9dbc..2633e718b8 100644 --- a/Draw Steel/draw-steel.css +++ b/Draw Steel/draw-steel.css @@ -28,20 +28,12 @@ } .hexagon { - width: 64px; - height: 64px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background-color: #aaa; - -webkit-mask-image: - url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Draw%20Steel/images/hexagon.svg), - linear-gradient(#000 0 0); - mask-image: - url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Draw%20Steel/images/hexagon.svg), - linear-gradient(#000 0 0); - mask-size: cover; + background-color: #f9f9f9; + border: 2px solid #ccc; + border-radius: 0.5em; + padding: 0.5em; + text-align: center; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.1); } .charsheet input { @@ -59,6 +51,13 @@ height: 20px; font-size: 0.9em; } +.charsheet input.input-stamina { + height: 20px; + font-size: 0.9em; + width: 100%; + box-sizing: border-box; + min-width: 6em; +} .charsheet label { display: unset; margin: unset; @@ -219,7 +218,7 @@ label.sublabel { .stamina-panel { grid-column-end: span 3; display: grid; - grid-template-columns: 2fr repeat(2, 1fr); + grid-template-columns: 2fr 2fr 2fr; column-gap: 0.5em; } .stamina-panel > .panel-title { @@ -235,6 +234,13 @@ label.sublabel { align-items: center; } +.stamina-input-group input, +.stamina-temporary-input-group input { + width: 100%; + box-sizing: border-box; + min-width: 6em; +} + .recoveries-panel { grid-column-end: span 2; display: grid; @@ -639,7 +645,7 @@ label.sublabel { .sheet-rolltemplate-ability .sheet-header { grid-column-start: 1; grid-column-end: -1; - font-size: 1.2em; + font-size: 2em; font-weight: bold; } @@ -651,6 +657,13 @@ label.sublabel { margin-bottom: 3px; border-bottom: 1px solid #bbb; padding-bottom: 3px; + line-height: 1.4; +} + +.sheet-rolltemplate-ability .sheet-header { + margin-bottom: 3px; + padding-bottom: 3px; + line-height: 1.4; } .sheet-rolltemplate-powerroll label, .sheet-rolltemplate-powerroll .sheet-powerroll-edge-bane { @@ -685,7 +698,7 @@ label.sublabel { } .sheet-rolltemplate-ability .sheet-description { - font-size: 0.65em; + font-size: 0.80em; font-style: italic; margin-bottom: 10px; border-bottom: 2px solid #aaa; @@ -701,12 +714,12 @@ label.sublabel { .sheet-rolltemplate-ability .sheet-keywords { font-weight: bold; - font-size: 0.65em; + font-size: 0.90em; } .sheet-rolltemplate-ability .sheet-action-type { font-weight: bold; - font-size: 0.65em; + font-size: 0.90em; } .sheet-rolltemplate-ability .sheet-action-row { @@ -717,7 +730,7 @@ label.sublabel { .sheet-rolltemplate-ability .sheet-distance, .sheet-rolltemplate-ability .sheet-target { - font-size: 0.65em; + font-size: 0.80em; } .sheet-rolltemplate-ability .sheet-stat-row { @@ -731,7 +744,7 @@ label.sublabel { .sheet-rolltemplate-ability .sheet-roll-label { font-weight: bold; - font-size: 0.65em; + font-size: 1em; } .sheet-rolltemplate-ability .sheet-roll-formula { @@ -1028,5 +1041,3 @@ input.npc-edit-toggle { .charsheet input.npc-edit-toggle:not(:checked) ~ div.npc-edit { display: none; } - - diff --git a/Draw Steel/draw-steel.html b/Draw Steel/draw-steel.html index 753ff66383..8c433f0c6e 100644 --- a/Draw Steel/draw-steel.html +++ b/Draw Steel/draw-steel.html @@ -35,6 +35,7 @@
+
@@ -147,15 +148,15 @@
-
-
-
+
+
+
- - - + + +
@@ -163,16 +164,16 @@
- +
-
-
-
+
+
+
- +
@@ -189,18 +190,18 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -902,7 +926,10 @@ }); } - $20('.characteristic-input-group > label').on('click', async (e) => { +/** +**Characteristic Roll +**/ +$20('.characteristic-input-group > label').on('click', async (e) => { const characteristic = e.htmlAttributes['data-characteristic']; const attrs = await getAttrsAsync([characteristic]); const characteristicValue = attrs[characteristic]; @@ -966,6 +993,9 @@ }); }); +/** +**Repeated Ability display +**/ on('clicked:repeating_abilities:share', async (event) => { const abilityAttributeNames = [ 'ability_name', 'ability_cost', 'ability_description', 'ability_keywords', @@ -1019,6 +1049,301 @@ startRoll(roll, ({ rollId }) => finishRoll(rollId)); }); +/** +**Repeated Ability power roll +**/ + on('clicked:repeating_abilities:power-roll-share', async (event) => { + const abilityAttributeNames = [ + 'ability_name', 'ability_cost', 'ability_description', 'ability_keywords', + 'ability_type', 'ability_distance', 'ability_target', 'ability_trigger', + 'has_power_roll', 'ability_characteristic', + 'ability_tier_1', 'ability_tier_2', 'ability_tier_3', 'ability_effect', + ]; + const attrs = await getAttrsAsync([ + 'resource_name', + ...abilityAttributeNames.map(x => `repeating_abilities_${x}`), + ]); + const resourceName = attrs.resource_name || getTranslationByKey('resource-name-placeholder'); + + const characteristicValue = attrs['repeating_abilities_ability_characteristic']; + const characteristicTranslation = getTranslationByKey(characteristicValue) || characteristicValue; + const edgeOrBaneTranslation = getTranslationByKey('edge-or-bane') || 'edge-or-bane'; + const noEdgeOrBaneTranslation = getTranslationByKey('no-edge-or-bane') || 'no-edge-or-bane'; + const doubleEdgeTranslation = getTranslationByKey('double-edge') || 'double-edge'; + const edgeTranslation = getTranslationByKey('edge') || 'edge'; + const baneTranslation = getTranslationByKey('bane') || 'bane'; + const doubleBaneTranslation = getTranslationByKey('double-bane') || 'double-bane'; + const bonusOrPenaltyTranslation = getTranslationByKey('bonus-or-penalty') || 'bonus-or-penalty'; + + const directMap = { + name: attrs.repeating_abilities_ability_cost && attrs.repeating_abilities_ability_cost !== '0' + ? `${attrs.repeating_abilities_ability_name} (${attrs.repeating_abilities_ability_cost} ${resourceName})` + : attrs.repeating_abilities_ability_name, + cost: attrs.repeating_abilities_ability_cost, + description: attrs.repeating_abilities_ability_description, + keywords: attrs.repeating_abilities_ability_keywords, + distance: attrs.repeating_abilities_ability_distance, + target: attrs.repeating_abilities_ability_target, + trigger: attrs.repeating_abilities_ability_trigger, + characteristic: attrs.repeating_abilities_ability_characteristic, + tier1: attrs.repeating_abilities_ability_tier_1, + tier2: attrs.repeating_abilities_ability_tier_2, + tier3: attrs.repeating_abilities_ability_tier_3, + effect: attrs.repeating_abilities_ability_effect, + }; + const translateMap = { + type: attrs.repeating_abilities_ability_type || 'no-action', + }; + const rollValueMap = { + hasTrigger: attrs.repeating_abilities_ability_type.includes('triggered') + && attrs.repeating_abilities_ability_trigger + ? 1 : 0, + hasPowerRoll: attrs.repeating_abilities_has_power_roll === 'on' + ? 1 : 0, + hasEffect: attrs.repeating_abilities_ability_effect + ? 1 : 0, + }; + const roll = '&{template:ability} ' + + '[[ [[2d10cs>11cf<0]][2d10] ' + + ` + [[${characteristicValue}]] ` + + ' + [[?{' + + edgeOrBaneTranslation + + `|${noEdgeOrBaneTranslation},0` + + `|${doubleEdgeTranslation},0[${doubleEdgeTranslation}]` + + `|${edgeTranslation},2[${edgeTranslation}]` + + `|${baneTranslation},-2[${baneTranslation}]` + + `|${doubleBaneTranslation},0[${doubleBaneTranslation}]` + + `}]][${edgeOrBaneTranslation}] ` + + ` + [[?{${bonusOrPenaltyTranslation}|0}]][${bonusOrPenaltyTranslation}] ` + + ']] ' + + '{{powerRoll=^{power-roll}: $[[4]]}} ' + + Object.entries(directMap) + .map(([key, value]) => `{{${key}=${value}}} `) + + Object.entries(rollValueMap) + .map(([key, value]) => `{{${key}=[[${value}]]}} `); + + console.log('Repeating Ability power roll:', roll); + startRoll(roll, ({ rollId }) => finishRoll(rollId)); + }); + +/** +**Melee Free Strike Display +**/ +on('clicked:melee_share', async (event) => { + const attributeNames = [ + 'melee_free_strike_name', + 'melee_free_strike_keywords', + 'melee_free_strike_distance', + 'melee_free_strike_target', + 'melee_free_strike_characteristic', + 'melee_free_strike_tier_1', + 'melee_free_strike_tier_2', + 'melee_free_strike_tier_3' + ]; + + const attrs = await getAttrsAsync(attributeNames); + + const directMap = { + name: attrs.melee_free_strike_name, + keywords: attrs.melee_free_strike_keywords, + distance: attrs.melee_free_strike_distance, + target: attrs.melee_free_strike_target, + characteristic: attrs.melee_free_strike_characteristic, + tier1: attrs.melee_free_strike_tier_1, + tier2: attrs.melee_free_strike_tier_2, + tier3: attrs.melee_free_strike_tier_3 + }; + +const rollValueMap = { + hasPowerRoll: '1' +}; + + const roll = `&{template:ability} ` + + '{{powerRoll=^{power-roll}}} ' + + '{{type=^{main-action}}} ' + + Object.entries(directMap) + .map(([key, value]) => `{{${key}=${value}}} `) + + Object.entries(rollValueMap) + .map(([key, value]) => `{{${key}=[[${value}]]}} `); + + console.log('Melee Free Strike roll:', roll); + startRoll(roll, ({ rollId }) => finishRoll(rollId)); +}); + +/** +**Melee Free Strike Power Roll +**/ +on('clicked:melee_power_roll_share', async (event) => { + const attributeNames = [ + 'melee_free_strike_name', + 'melee_free_strike_keywords', + 'melee_free_strike_distance', + 'melee_free_strike_target', + 'melee_free_strike_characteristic', + 'melee_free_strike_tier_1', + 'melee_free_strike_tier_2', + 'melee_free_strike_tier_3' + ]; + + const attrs = await getAttrsAsync(attributeNames); + const characteristicValue = attrs['melee_free_strike_characteristic']; + const characteristicTranslation = getTranslationByKey(characteristicValue) || characteristicValue; + const edgeOrBaneTranslation = getTranslationByKey('edge-or-bane') || 'edge-or-bane'; + const noEdgeOrBaneTranslation = getTranslationByKey('no-edge-or-bane') || 'no-edge-or-bane'; + const doubleEdgeTranslation = getTranslationByKey('double-edge') || 'double-edge'; + const edgeTranslation = getTranslationByKey('edge') || 'edge'; + const baneTranslation = getTranslationByKey('bane') || 'bane'; + const doubleBaneTranslation = getTranslationByKey('double-bane') || 'double-bane'; + const bonusOrPenaltyTranslation = getTranslationByKey('bonus-or-penalty') || 'bonus-or-penalty'; + + const directMap = { + name: attrs.melee_free_strike_name, + keywords: attrs.melee_free_strike_keywords, + distance: attrs.melee_free_strike_distance, + target: attrs.melee_free_strike_target, + characteristic: attrs.melee_free_strike_characteristic, + tier1: attrs.melee_free_strike_tier_1, + tier2: attrs.melee_free_strike_tier_2, + tier3: attrs.melee_free_strike_tier_3 + }; + +const rollValueMap = { + hasPowerRoll: '1' +}; + + const roll = '&{template:ability} ' + + '[[ [[2d10cs>11cf<0]][2d10] ' + + ` + [[${characteristicValue}]] ` + + ' + [[?{' + + edgeOrBaneTranslation + + `|${noEdgeOrBaneTranslation},0` + + `|${doubleEdgeTranslation},0[${doubleEdgeTranslation}]` + + `|${edgeTranslation},2[${edgeTranslation}]` + + `|${baneTranslation},-2[${baneTranslation}]` + + `|${doubleBaneTranslation},0[${doubleBaneTranslation}]` + + `}]][${edgeOrBaneTranslation}] ` + + ` + [[?{${bonusOrPenaltyTranslation}|0}]][${bonusOrPenaltyTranslation}] ` + + ']] ' + + '{{powerRoll=^{power-roll}: $[[4]]}} ' + + '{{type=^{main-action}}} ' + + Object.entries(directMap) + .map(([key, value]) => `{{${key}=${value}}} `) + + Object.entries(rollValueMap) + .map(([key, value]) => `{{${key}=[[${value}]]}} `); + + console.log('Melee Free Strike power roll:', roll); + startRoll(roll, ({ rollId }) => finishRoll(rollId)); +}); + +/** +**Ranged Free Strike Display +**/ +on('clicked:ranged_share', async (event) => { + const attributeNames = [ + 'ranged_free_strike_name', + 'ranged_free_strike_keywords', + 'ranged_free_strike_distance', + 'ranged_free_strike_target', + 'ranged_free_strike_characteristic', + 'ranged_free_strike_tier_1', + 'ranged_free_strike_tier_2', + 'ranged_free_strike_tier_3' + ]; + + const attrs = await getAttrsAsync(attributeNames); + + const directMap = { + name: attrs.ranged_free_strike_name, + keywords: attrs.ranged_free_strike_keywords, + distance: attrs.ranged_free_strike_distance, + target: attrs.ranged_free_strike_target, + characteristic: attrs.ranged_free_strike_characteristic, + tier1: attrs.ranged_free_strike_tier_1, + tier2: attrs.ranged_free_strike_tier_2, + tier3: attrs.ranged_free_strike_tier_3 + }; + +const rollValueMap = { + hasPowerRoll: '1' +}; + + const roll = `&{template:ability} ` + + '{{powerRoll=^{power-roll}}} ' + + '{{type=^{main-action}}} ' + + Object.entries(directMap) + .map(([key, value]) => `{{${key}=${value}}} `) + + Object.entries(rollValueMap) + .map(([key, value]) => `{{${key}=[[${value}]]}} `); + + console.log('Ranged Free Strike roll:', roll); + startRoll(roll, ({ rollId }) => finishRoll(rollId)); +}); + +/** +**Ranged Free Strike Power Roll +**/ +on('clicked:ranged_power_roll_share', async (event) => { + const attributeNames = [ + 'ranged_free_strike_name', + 'ranged_free_strike_keywords', + 'ranged_free_strike_distance', + 'ranged_free_strike_target', + 'ranged_free_strike_characteristic', + 'ranged_free_strike_tier_1', + 'ranged_free_strike_tier_2', + 'ranged_free_strike_tier_3' + ]; + + const attrs = await getAttrsAsync(attributeNames); + const characteristicValue = attrs['ranged_free_strike_characteristic']; + const characteristicTranslation = getTranslationByKey(characteristicValue) || characteristicValue; + const edgeOrBaneTranslation = getTranslationByKey('edge-or-bane') || 'edge-or-bane'; + const noEdgeOrBaneTranslation = getTranslationByKey('no-edge-or-bane') || 'no-edge-or-bane'; + const doubleEdgeTranslation = getTranslationByKey('double-edge') || 'double-edge'; + const edgeTranslation = getTranslationByKey('edge') || 'edge'; + const baneTranslation = getTranslationByKey('bane') || 'bane'; + const doubleBaneTranslation = getTranslationByKey('double-bane') || 'double-bane'; + const bonusOrPenaltyTranslation = getTranslationByKey('bonus-or-penalty') || 'bonus-or-penalty'; + + const directMap = { + name: attrs.ranged_free_strike_name, + keywords: attrs.ranged_free_strike_keywords, + distance: attrs.ranged_free_strike_distance, + target: attrs.ranged_free_strike_target, + characteristic: attrs.ranged_free_strike_characteristic, + tier1: attrs.ranged_free_strike_tier_1, + tier2: attrs.ranged_free_strike_tier_2, + tier3: attrs.ranged_free_strike_tier_3 + }; + +const rollValueMap = { + hasPowerRoll: '1' +}; + + const roll = '&{template:ability} ' + + '[[ [[2d10cs>11cf<0]][2d10] ' + + ` + [[${characteristicValue}]] ` + + ' + [[?{' + + edgeOrBaneTranslation + + `|${noEdgeOrBaneTranslation},0` + + `|${doubleEdgeTranslation},0[${doubleEdgeTranslation}]` + + `|${edgeTranslation},2[${edgeTranslation}]` + + `|${baneTranslation},-2[${baneTranslation}]` + + `|${doubleBaneTranslation},0[${doubleBaneTranslation}]` + + `}]][${edgeOrBaneTranslation}] ` + + ` + [[?{${bonusOrPenaltyTranslation}|0}]][${bonusOrPenaltyTranslation}] ` + + ']] ' + + '{{powerRoll=^{power-roll}: $[[4]]}} ' + + '{{type=^{main-action}}} ' + + Object.entries(directMap) + .map(([key, value]) => `{{${key}=${value}}} `) + + Object.entries(rollValueMap) + .map(([key, value]) => `{{${key}=[[${value}]]}} `); + + console.log('Ranged Free Strike power roll:', roll); + startRoll(roll, ({ rollId }) => finishRoll(rollId)); +}); + /** ** import start **/ diff --git a/Draw Steel/translation.json b/Draw Steel/translation.json index e628e0f2ca..fb6f9d29a8 100644 --- a/Draw Steel/translation.json +++ b/Draw Steel/translation.json @@ -71,7 +71,7 @@ "modifiers": "Modifiers", "modifier-basic": "Basic", "kit": "Kit", - "modifier-name": "Name", + "modifier-name": "Modifier Name", "weapon-implement": "Weapon/Implement", "armor": "Armor", "melee": "Melee", @@ -80,8 +80,9 @@ "ranged-weapon-damage": "Ranged Weapon Damage", "abilities": "Abilities", "keywords": "Keywords", - "ability-name": "Name", + "ability-name": "Ability Name", "ability-share": "Share ability in chat", + "power-roll-share": "Roll power for this ability", "ability-cost": "Cost", "ability-description": "Description", "ability-type": "Type", @@ -126,8 +127,9 @@ "weakness": "Weakness", "with-captain": "With Captain", "encounter-value-abbr": "EV", - "npc-role": "Monster Role", - "disclaimer": "This Draw Steel character sheet for Roll20 is an independent product published under the DRAW STEEL Creator License and is not affiliated with MCDM Productions, LLC. DRAW STEEL © 2024 MCDM Productions, LLC.", + "characteristic-value": "Characteristic Value", + "npc-role": "Monster Role", + "disclaimer": "This Draw Steel character sheet for Roll20 is an independent product published under the DRAW STEEL Creator License and is not affiliated with MCDM Productions, LLC. DRAW STEEL © 2024 MCDM Productions, LLC.", "": "", "move": "Move" -} \ No newline at end of file +} diff --git a/Grimwild/Grimwild_Preview.jpg b/Grimwild/Grimwild_Preview.jpg new file mode 100644 index 0000000000..4e039790fa Binary files /dev/null and b/Grimwild/Grimwild_Preview.jpg differ diff --git a/Grimwild/Grimwild_r20_v1.3.css b/Grimwild/Grimwild_r20_v1.3.css new file mode 100644 index 0000000000..ba1aa0e2c3 --- /dev/null +++ b/Grimwild/Grimwild_r20_v1.3.css @@ -0,0 +1,2928 @@ +@font-face { + font-family: 'Capito04'; + src: url('https://admirable-strudel-c31035.netlify.app/Capito04-Regular.woff2') format('woff2'); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Capito04'; + src: url('https://admirable-strudel-c31035.netlify.app/Capito04-Bold.woff2') format('woff2'); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Capito04'; + src: url('https://admirable-strudel-c31035.netlify.app/Capito04-Black.woff2') format('woff2'); + font-weight: 900; + font-style: normal; + font-display: swap; +} + +@import url('https://fonts.googleapis.com/css2?family=Lilita+One&display=swap'); + +body { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; +} + + .sheet-container { + width: 100% !important; + max-width: 1050px !important; + min-width: 1050px !important; + min-height: 1050px; + margin: 0 !important; + background-color: white !important; + border: 2px solid #ccc !important; + padding: 30px !important; + box-sizing: border-box !important; + box-shadow: 0 0 10px rgba(0,0,0,0.1) !important; + transform: scale(0.9); + transform-origin: top left; + } + + .charsheet { + overflow: visible !important; + height: auto !important; + width: auto !important; + } + + .top-row { + display: flex; + gap: 15px; + margin-bottom: 15px; + align-items: stretch; + } + + .logo-section { + flex: 2; + display: flex; + align-items: center; + justify-content: flex-end; + background-color: none; + border-radius: 6px; + padding: 0px; + margin-top: 45px; + } + + .grimwild-logo { + max-width: 100%; + max-height: 100%; + object-fit: contain; + transform: translateY(-30px); + } + + .name-section { + flex: 5; + margin-bottom: 0; + } + + .name-section-header { + background-color: black; + color: white; + padding: 6px 6px; + font-weight: bold; + font-size: 14px; + letter-spacing: 1px; + text-transform: uppercase; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + display: flex; + justify-content: space-between; + align-items: center; + } + + .name-section-content { + padding: 10px 10px 5px 10px; + background-color: #f0f0f0; + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + display: flex; + gap: 10px; + } + + .name-left-side { + flex: 1; + } + + .name-right-side { + flex: 0 0 35%; + } + + .name-top-fields { + display: block; + margin-bottom: 8px; + } + + .name-bottom-fields { + display: flex; + gap: 10px; + } + + .name-field-small { + flex: 1; + } + + .name-field-group { + margin-bottom: 8px; + } + + .name-field-label { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + margin-bottom: 2px; + color: black; + } + + .name-text-input { + width: 100%; + height: 40px !important; + min-height: 40px !important; + max-height: 40px !important; + border: 1px solid #ccc; + padding: 6px; + font-size: 18px; + box-sizing: border-box; + background-color: white; + resize: none; + } + + .name-text-input-main { + width: 100%; + height: 40px !important; + min-height: 40px !important; + max-height: 40px !important; + border: 1px solid #ccc; + padding: 6px; + font-size: 26px; + font-weight: 400; + box-sizing: border-box; + background-color: white; + resize: none; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + } + + .name-text-area { + width: 100%; + height: 107px !important; + min-height: 107px !important; + max-height: 107px !important; + border: 1px solid #ccc; + padding: 6px; + font-size: 14px; + resize: none !important; + box-sizing: border-box; + background-color: white; + } + + .main-content { + display: flex; + gap: 15px; + align-items: stretch; + } + + .left-column, .right-column { + flex: 1; + display: flex; + flex-direction: column; + } + + .stats-section { + border: none; + background: white; + border-radius: 8px; + overflow: hidden; + position: relative; + margin-bottom: 17.5px; + } + + .stats-section::before, + .stats-section::after { + content: ''; + position: absolute; + top: 0; + bottom: 0; + width: 9px; + background-color: black; + border-radius: 3px; + } + + .stats-section::before { + left: 0; + } + + .stats-section::after { + right: 0; + } + + .stats-content { + background: #f0f0f0; + padding: 12px 20px 28px 20px; + margin: 0 6px; + border-radius: 6px; + min-height: 100%; + } + + .stats-row { + display: flex; + justify-content: center; + align-items: flex-start; + margin-bottom: 15px; + gap: 20px; + margin-left: 0px; + } + + .stat-group { + display: flex; + flex-direction: column; + align-items: center; + position: relative; + width: 80px; + } + + .stat-name { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: 900; + font-size: 18px; + font-variant: small-caps; + margin-bottom: 6px; + letter-spacing: 0.3px; + cursor: pointer; + transition: color 0.2s ease; + user-select: none; + background: none; + border: none; + font-family: inherit; + color: inherit; + } + + .stat-name:hover { + color: gray; + } + + .stat-container { + position: relative; + width: 55px; + height: 55px; + } + + .stat-square { + width: 55px; + height: 55px; + border: 2px solid black; + background: white; + position: relative; + border-radius: 4px; + } + + .stat-input { + width: 90%; + height: 80%; + border: none; + text-align: center; + background: transparent; + font-size: 26px; + font-weight: bold; + font-family: inherit; + outline: none; + margin-left: 2px; + } + + .stat-diamond { + position: absolute; + bottom: -10px; + left: calc(50% + 2px); + transform: translateX(-50%) rotate(45deg); + width: 12px; + height: 12px; + border: 2px solid black; + background: white; + cursor: pointer; + border-radius: 3px; + } + + .stat-diamond input[type="checkbox"] { + position: absolute; + opacity: 0; + cursor: pointer; + height: 150%; + width: 150%; + margin: 0; + transform: rotate(-45deg); + top: -25%; + left: -25%; + } + + .stat-diamond:has(input[type="checkbox"]:checked) { + background: #807d7d; + } + + .conditions-section { + background: #d0d0d0; + padding: 8px; + margin-top: 20px; + margin-bottom: 15px; + border-radius: 6px; + } + + .conditions-row { + display: flex; + justify-content: center; + align-items: center; + margin-top: 2px; + margin-bottom: 2px; + position: relative; + height: 40px; + } + + .condition-group { + position: absolute; + text-align: center; + } + + .condition-group:first-child { + left: 26.55%; + transform: translateX(-50%); + } + + .condition-group:last-child { + left: 74.37%; + transform: translateX(-50%); + } + + .condition-diamond { + width: 12px; + height: 12px; + border: 2px solid black; + background: white; + transform: rotate(45deg); + margin: 0 auto 6px; + position: relative; + cursor: pointer; + border-radius: 2px; + } + + .condition-diamondTL { + width: 12px; + height: 12px; + border: 2px solid black; + background: white; + transform: rotate(45deg); + margin: 0 auto 6px; + position: relative; + cursor: pointer; + border-radius: 2px; + } + + .condition-diamondTR { + width: 12px; + height: 12px; + border: 2px solid black; + background: white; + transform: rotate(45deg); + margin: 0 auto 6px; + position: relative; + cursor: pointer; + border-radius: 2px; + } + + .condition-diamond input[type="checkbox"] { + position: absolute; + opacity: 0; + cursor: pointer; + height: 150%; + width: 150%; + margin: 0; + transform: rotate(-45deg); + top: -25%; + left: -25%; + } + + .condition-diamond:has(input[type="checkbox"]:checked) { + background: #807d7d; + } + + .condition-label { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: 900; + } + + .dropped-section { + background: #999; + color: white; + text-align: center; + padding: 6px; + font-size: 12px; + font-weight: bold; + letter-spacing: 0.5px; + margin-bottom: 2px; + margin-top: 6px; + border-radius: 3px; + } + + .dropped-button { + background: #999; + color: white; + text-align: center; + padding: 6px; + font-size: 12px; + font-weight: bold; + letter-spacing: 0.5px; + margin-bottom: 2px; + margin-top: 6px; + border-radius: 3px; + border: none; + cursor: pointer; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + width: 100%; + transition: all 0.2s ease; + text-transform: uppercase; + display: block; + box-sizing: border-box; + outline: none; + } + + .dropped-button:hover { + background: #8e8e8e; + } + .bottom-controls { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 15px; + padding: 0 40px; + margin-left: 0px; + margin-bottom: -5px; + } + + .control-group { + display: flex; + flex-direction: column; + align-items: center; + gap: 6px; + } + + .control-label { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.3px; + color: black; + } + + .increment-control { + display: flex; + align-items: center; + gap: 4px; + } + + .increment-btn { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + width: 20px; + height: 20px; + border: 1px solid black; + background: white; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + font-weight: 900; + border-radius: 3px; + } + + .increment-btn:hover { + background: #f0f0f0; + } + + .increment-display { + width: 30px; + height: 20px; + border: 1px solid black; + background: white; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 12px; + font-weight: bold; + border-radius: 3px; + box-sizing: border-box; + } + + .spark-checkbox { + width: 16px; + height: 16px; + border: 2px solid black; + background: white; + cursor: pointer; + border-radius: 4px; + position: relative; + } + + .spark-checkbox input[type="checkbox"] { + position: absolute; + opacity: 0; + cursor: pointer; + height: 150%; + width: 150%; + margin: 0; + top: -25%; + left: -25%; + } + + .spark-checkbox:has(input[type="checkbox"]:checked) { + background: #807d7d; + } + + .conditions-notes { + flex: 1; + background-color: #f0f0f0; + border-radius: 6px; + overflow: hidden; + margin-bottom: 15px; + max-height: 160px; + } + + .assist-button { + background-color: black; + color: white; + border: none; + padding: 8px 14px; + font-size: 12px; + font-weight: bold; + font-family: inherit; + letter-spacing: 0.3px; + text-transform: uppercase; + cursor: pointer; + border-radius: 8px; + transition: all 0.2s ease; + } + + .assist-button:hover { + background-color: #444; + } + + .pool-section { + display: flex; + justify-content: space-around; + align-items: center; + margin-top: 0px; + margin-left: 50px; + margin-right: 25px; + margin-bottom: 15px; + gap: 45px + } + + .pool-group-left { + display: flex; + flex-direction: column; + align-items: center; + gap: 5px; + margin-right: 21px; + } + + .pool-group-mid { + display: flex; + flex-direction: column; + align-items: center; + gap: 5px; + } + + .pool-group-right { + display: flex; + flex-direction: column; + align-items: center; + gap: 5px; + margin-left: 9px; + } + + .pool-label { + font-size: 12px; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 0.3px; + color: black; + } + + .roll-button { + background-color: black; + color: white; + border: none; + padding: 8px 14px; + font-size: 12px; + font-weight: bold; + font-family: inherit; + letter-spacing: 0.3px; + text-transform: uppercase; + cursor: pointer; + border-radius: 8px; + transition: all 0.2s ease; + } + + .roll-button:hover { + background-color: #444; + } + + .conditions-notes-header { + background-color: black; + color: white; + padding: 6px 10px; + font-weight: bold; + font-size: 14px; + letter-spacing: 1px; + text-transform: uppercase; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + display: flex; + justify-content: space-between; + align-items: center; + } + + .conditions-notes-content { + padding: 10px; + background-color: #f0f0f0; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + } + + .notes-textarea { + width: 100%; + height: 80px !important; + min-height: 80px !important; + max-height: 80px !important; + max-width: 450px !important; + background: white; + border: 1px solid #ccc; + padding: 5px 6px 5px 6px; + font-family: inherit; + font-size: 14px; + font-weight: normal; + resize: none !important; + margin-bottom: 8px; + margin-left: 8px; + } + + .vex-text { + font-size: 9px; + font-weight: normal; + margin-bottom: 8px; + margin-left: 10px; + letter-spacing: 0.3px; + color: black; + text-align: center; + transform: translatey(-40%); + } + + .counters-section { + display: flex; + justify-content: space-around; + gap: 56px; + align-items: center; + margin-top: 4px; + margin-bottom: 25px; + margin-left: 35px; + margin-right: 25px; + } + + .counter-group { + display: flex; + align-items: center; + gap: 6px; + background: #f0f0f0; + border-radius: 8px; + padding: 8px; + margin-bottom: 6px; + margin-top: 4px; + } + + .counter-name { + font-weight: bold; + font-size: 12px; + letter-spacing: 0.3px; + text-transform: uppercase; + color: black; + } + + .counter-button { + display: flex; + } + + .counter-boxes { + display: flex; + gap: 3px; + } + + .counter-box { + width: 16px; + height: 16px; + border: 2px solid black; + background: white; + position: relative; + cursor: pointer; + border-radius: 4px; + } + + .counter-box input[type="checkbox"] { + position: absolute; + opacity: 0; + cursor: pointer; + height: 150%; + width: 150%; + margin: 0; + top: -25%; + left: -25%; + } + + .counter-box:has(input[type="checkbox"]:checked) { + background: #807d7d; + } + + .character-details { + background-color: #f0f0f0; + border-radius: 6px; + margin-bottom: 15px; + overflow: hidden; + } + + .backgrounds-wises-header { + display: flex; + margin-bottom: 6px; + } + + .backgrounds-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + flex: 0 0 30%; + text-align: center; + } + + .wises-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + flex: 0 0 70%; + text-align: center; + } + + .backgrounds-wises-list { + border: 1px solid #ccc; + min-height: 56px; + background-color: white; + width: 100%; + box-sizing: border-box; + } + + .backgrounds-wises-row { + display: flex; + border-bottom: 1px solid #eee; + min-height: 50px; + align-items: stretch; + width: 100%; + box-sizing: border-box; + padding: 8px 0; + } + + .backgrounds-wises-row:last-child { + border-bottom: none; + } + + .backgrounds-cell { + flex: 0 0 30%; + padding: 4px 6px; + border-right: none; + display: flex; + align-items: stretch; + position: relative; + } + + .backgrounds-cell::after { + content: ''; + position: absolute; + right: 0; + top: 12px; + bottom: 12px; + width: 1px; + background-color: #eee; + } + + .wises-cell { + flex: 0 0 65%; + padding: 8px 6px; + box-sizing: border-box; + display: flex; + align-items: stretch; + } + + .wises-input { + width: 100%; + border: none; + font-size: 14px; + background: transparent; + resize: none !important; + min-height: 120% !important; + height: 100% !important; + flex: 1; + padding: 2px; + box-sizing: border-box; + line-height: 1.2; + } + + .backgrounds-input { + width: 100%; + border: none; + font-size: 14px; + font-weight: bold; + background: transparent; + resize: none !important; + min-height: 100% !important; + height: 100% !important; + flex: 1; + padding: 2px; + box-sizing: border-box; + line-height: 1.2; + } + + .section-header { + background-color: black; + color: white; + padding: 6px 10px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 14px; + letter-spacing: 1px; + display: flex; + justify-content: space-between; + align-items: center; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + } + + .header-instruction { + font-size: 8px; + font-weight: normal; + } + + .section-content { + padding: 10px; + background-color: #f0f0f0; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + } + + .field-group { + margin-bottom: 1px; + } + + .field-label { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + margin-bottom: 3px; + color: black; + } + + .traits-section { + background: #f0f0f0; + padding: 5px; + margin: 15px 0; + } + + .trait-header { + font-weight: bold; + font-size: 12px; + margin-bottom: 8px; + color: black; + } + + .trait-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 4px; + margin-bottom: 8px; + } + + .trait-item { + display: flex; + align-items: center; + font-size: 11px; + position: relative; + } + + .trait-button { + display: flex; + align-items: center; + gap: 3px; + background: none; + border: none; + cursor: pointer; + padding: 2px; + border-radius: 3px; + font-size: 11px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: 700; + } + + .trait-checkbox { + width: 12px; + height: 12px; + border: 1px solid black; + border-radius: 50%; + background: white; + position: relative; + } + + .trait-item .trait-checkbox { + background: white; + } + + .trait-item .trait-checkbox::before { + content: ''; + } + + .trait-item:has(input[value="1"]) .trait-checkbox { + background: black !important; + } + + .trait-item:has(input[value="2"]) .trait-checkbox { + background: white !important; + } + + .trait-item:has(input[value="2"]) .trait-checkbox::before { + content: '✕' !important; + color: black; + font-size: 8px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + } + + .custom-trait { + margin-top: 6px; + margin-right: 55px; + display: flex; + align-items: center; + gap: 4px; + } + + .custom-trait input[type="text"] { + border: none; + border-bottom: 1px solid #999999; + background: transparent; + font-size: 12px; + flex: 1; + padding: 2px; + } + + .bonds-section, .adventurer-section, .story-arcs-section, .experience-section { + background-color: #f0f0f0; + border-radius: 6px; + margin-bottom: 15px; + overflow: hidden; + } + + .bonds-header { + display: flex; + margin-bottom: 6px; + } + + .pc-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + width: 100px; + text-align: center; + padding-right: 8px; + } + + .bond-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + flex: 1; + text-align: left; + } + + .bonds-list { + border: 1px solid #ccc; + min-height: 140px; + background-color: white; + } + + .bond-row { + display: flex; + border-bottom: 1px solid #eee; + max-height: 49px; + align-items: stretch; + } + + .bond-row:last-child { + border-bottom: none; + } + + .pc-cell { + width: 100px; + padding: 4px 6px; + text-align: center; + border-right: none; + display: flex; + align-items: stretch; + position: relative; + } + + .pc-cell::after { + content: ''; + position: absolute; + right: 0; + top: 12px; + bottom: 12px; + width: 1px; + background-color: #eee; + } + + .pc-input { + width: 100%; + border: none; + text-align: center; + font-size: 14px; + background: transparent; + font-weight: bold; + min-height: 100% !important; + height: 100% !important; + resize: none !important; + flex: 1; + padding: 12px 2px 2px 2px; + box-sizing: border-box; + line-height: 1.2; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .bond-cell { + flex: 1; + padding: 8px 8px; + display: flex; + align-items: stretch; + } + + .bond-input { + width: 100%; + border: none; + font-size: 14px; + background: transparent; + resize: none !important; + min-height: 120% !important; + height: 120% !important; + flex: 1; + padding: 2px; + box-sizing: border-box; + line-height: 1.2; + } + + .subsection { + border-bottom: 1px solid #ccc; + } + + subsection:last-child { + border-bottom: none; + } + + .subsection + .subsection { + margin-top: -10px; + margin-bottom: -10px; + } + + .subsection-header { + background-color: #d0d0d0; + color: black; + padding: 5px 10px; + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; + position: relative; + display: flex; + justify-content: space-between; + align-items: center; + } + + .subsection-content { + padding: 10px; + background-color: #f0f0f0; + } + + .talent-container { + position: relative; + } + + .core-talent-area { + resize: vertical !important; + } + + .core-talent-area:placeholder-shown { + background: white !important; + border: 1px solid #ccc !important; + font-size: 12px; + } + + .core-talent-area:not(:placeholder-shown):not(:focus) { + border: none !important; + background: transparent !important; + outline: none !important; + resize: none !important; + font-size: 12px !important; + line-height: 1.4 !important; + } + + .core-talent-area:focus, + .talent-container:focus-within .core-talent-area:not(:placeholder-shown), + .subsection:focus-within .core-talent-area:not(:placeholder-shown) { + border: 1px solid #ccc !important; + background: white !important; + outline: none !important; + resize: none !important; + font-size: 12px !important; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + line-height: 1.4 !important; + } + + .subsection:has(input[name="attr_core_talent_resize_unlocked"][value="true"]) .core-talent-area:focus { + resize: vertical !important; + } + + .subsection:has(input[name="attr_core_talent_resize_unlocked"][value="false"]) .core-talent-area:focus, + .subsection:has(input[name="attr_core_talent_resize_unlocked"][value="false"]) .core-talent-area:not(:focus) { + resize: none !important; + height: auto !important; + field-sizing: content !important; + overflow: hidden !important; + } + + .talent-slot { + width: calc(100% + 10px) !important; + max-width: none !important; + margin-left: 0 !important; + margin-right: 0 !important; + min-height: 45px; + height: 45px; + border: none; + border-bottom: 1px solid #ddd; + padding: 6px 4px; + font-size: 12px; + font-family: Arial, sans-serif; + resize: vertical; + box-sizing: border-box; + background-color: white; + } + + .talent-slot:placeholder-shown { + background: white !important; + border: 1px solid #ccc !important; + } + + .talent-slot:not(:placeholder-shown):not(:focus) { + border: none !important; + background: transparent !important; + outline: none !important; + resize: none !important; + overflow: hidden !important; + font-size: 12px !important; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + line-height: 1.4 !important; + } + + .talent-slot:focus, + .subsection:focus-within .talent-slot:not(:placeholder-shown) { + border: 1px solid #ccc !important; + background: white !important; + outline: none !important; + resize: vertical !important; + font-size: 12px !important; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + line-height: 1.4 !important; + } + + .subsection:has(input[name="attr_acquired_talents_resize_unlocked"][value="true"]) .talent-slot:focus { + resize: vertical !important; + } + + .subsection:has(input[name="attr_acquired_talents_resize_unlocked"][value="false"]) .talent-slot:focus, + .subsection:has(input[name="attr_acquired_talents_resize_unlocked"][value="false"]) .talent-slot:not(:focus) { + resize: none !important; + height: auto !important; + field-sizing: content !important; + overflow: hidden !important; + } + + .subsection:has(input[name="attr_acquired_talents_resize_unlocked"][value="false"]) .talent-slot:not(:placeholder-shown):not(:focus) { + height: auto !important; + field-sizing: content !important; + } + + .talent-slot::first-line, + .core-talent-area::first-line { + font-weight: bold; + font-size: 14px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + } + + .core-talent-area::placeholder, + .talent-slot::placeholder { + line-height: 1.4; + white-space: pre-line; + color: lightgray; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + } + + .subsection-header .talent-container { + position: static; + display: block; + } + + .subsection-header .resize-toggle-btn { + position: relative; + top: auto; + right: auto; + margin: -5px 0 0 2px; + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease; + } + + .core-talent-area:focus + * .subsection-header .resize-toggle-btn, + .subsection:has(.core-talent-area:focus) .subsection-header .resize-toggle-btn { + opacity: 1; + pointer-events: auto; + } + + .talent-slot:focus + * .subsection-header .resize-toggle-btn, + .subsection:has(.talent-slot:focus) .subsection-header .resize-toggle-btn { + opacity: 1; + pointer-events: auto; + } + + .resize-toggle-btn { + position: absolute; + top: 6px; + right: 6px; + width: 10px; + height: 10px; + background: transparent; + border: none; + cursor: pointer; + z-index: 10; + padding: 0; + color: gray; + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease; + box-sizing: border-box; + display: block; + width: 6px; + height: 5.5px; + border: 1px solid; + border-top-right-radius: 50%; + border-top-left-radius: 50%; + border-bottom: transparent; + margin-top: -10px; + margin-left: 2px; + position: relative !important; + top: -5px; + } + + .resize-toggle-btn::after { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; + width: 8px; + height: 5px; + border-radius: 1px; + border: 1px solid transparent; + box-shadow: 0 0 0 1px; + left: -2px; + top: 4.5px; + } + + .core-talent-area:focus ~ .resize-toggle-btn, + .talent-container:focus-within .resize-toggle-btn { + opacity: 1; + pointer-events: auto; + } + + input[name="attr_core_talent_resize_unlocked"][value="true"] ~ .resize-toggle-btn { + width: 6px !important; + height: 3px !important; + border-top-right-radius: 50px !important; + border-top-left-radius: 50px !important; + margin-top: 0px !important; + margin-left: 2px !important; + top: -4px !important; + position: relative !important; + } + + input[name="attr_core_talent_resize_unlocked"][value="true"] ~ .resize-toggle-btn::after { + border: 1px solid transparent !important; + box-shadow: 0 0 0 1px !important; + width: 8px !important; + height: 5px !important; + border-radius: 1px !important; + left: -2px !important; + top: 5px !important; + } + + input[name="attr_core_talent_resize_unlocked"][value="true"] ~ .resize-toggle-btn::before { + content: "" !important; + display: block !important; + box-sizing: border-box !important; + position: absolute !important; + width: 1px !important; + height: 3px !important; + background: currentColor !important; + left: -1px !important; + top: 2px !important; + } + + input[name="attr_acquired_talents_resize_unlocked"][value="true"] ~ .resize-toggle-btn { + width: 6px !important; + height: 3px !important; + border-top-right-radius: 50px !important; + border-top-left-radius: 50px !important; + margin-top: 0px !important; + margin-left: 2px !important; + top: -4px !important; + position: relative !important; + } + + input[name="attr_acquired_talents_resize_unlocked"][value="true"] ~ .resize-toggle-btn::after { + border: 1px solid transparent !important; + box-shadow: 0 0 0 1px !important; + width: 8px !important; + height: 5px !important; + border-radius: 1px !important; + left: -2px !important; + top: 5px !important; + } + + input[name="attr_acquired_talents_resize_unlocked"][value="true"] ~ .resize-toggle-btn::before { + content: "" !important; + display: block !important; + box-sizing: border-box !important; + position: absolute !important; + width: 1px !important; + height: 3px !important; + background: currentColor !important; + left: -1px !important; + top: 2px !important; + } + + .talent-slots { + display: flex; + flex-direction: column; + } + + .repeating_talents { + border: none; + margin: 0; + padding: 0; + width: 100%; + display: block; + } + + .talent-slot-container { + display: flex; + flex-direction: column; + margin: 0; + padding: 0; + width: 100%; + } + + .repeating_talents:last-child .talent-slot { + border-bottom: none; + } + + .resources-section { + background-color: #f0f0f0; + border-radius: 6px; + margin-bottom: 15px; + overflow: hidden; + } + + .repeating_items { + border: none; + margin: 0; + padding: 0; + } + + .resource-row { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 8px; + margin-bottom: 8px; + padding: 0; + } + + .items-row { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 8px; + margin-bottom: 5px; + } + + .resource-box { + background-color: white; + border: 1px solid #ccc; + border-radius: 6px; + padding: 6px; + display: flex; + flex-direction: column; + gap: 4px; + height: 88px; + box-sizing: border-box; + } + + .resource-name-input { + width: 100%; + border: none; + border-bottom: 1px solid #ddd; + background: transparent; + font-size: 14px; + font-weight: bold; + padding: 2px 0; + outline: none; + box-sizing: border-box; + text-align: center; + } + + .resource-count-container { + display: flex; + align-items: center; + justify-content: center; + margin-top: auto; + margin-bottom: -4px; + } + + .resource-count-input { + width: 30px; + height: 24px; + border: 1px solid #999; + background: white; + text-align: center; + font-size: 18px; + font-weight: bold; + border-radius: 4px; + outline: none; + line-height: 1; + padding-top: 2px; + padding-left: 18px; + } + + .resource-notes-input { + width: 100%; + border: none; + background: transparent; + font-size: 12px; + padding: 0px 0px; + outline: none; + box-sizing: border-box; + text-align: center; + color: #666; + } + + .resource-name-input::placeholder, + .resource-notes-input::placeholder { + line-height: 1.4; + color: lightgray; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + } + + .story-experience-row { + display: flex; + gap: 15px; + margin-bottom: 0px; + } + + .story-arcs-section, .experience-section { + background-color: #f0f0f0; + border-radius: 6px; + margin-bottom: 0; + overflow: hidden; + flex: 1; + } + + .arc-area { + width: 100%; + min-height: 60px !important; + max-height: 60px !important; + height: 60px !important; + border: 1px solid #ccc; + padding: 6px; + font-size: 12px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + resize: none !important; + box-sizing: border-box; + background-color: white; + } + + .xp-instruction { + font-size: 14px; + font-weight: bold; + margin-bottom: 8px; + margin-top: 4px; + color: black; + } + + .xp-tracks { + display: flex; + flex-direction: column; + gap: 3px; + } + + .xp-track { + display: flex; + align-items: center; + gap: 3px; + } + + .checkbox-group { + display: flex; + gap: 2px; + } + + .xp-checkbox { + width: 22px; + height: 22px; + border: 1px solid black; + background-color: white; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-size: 10px; + font-weight: bold; + position: relative; + border-radius: 2px; + } + + .xp-checkbox input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 100%; + width: 100%; + margin: 0; + } + + .xp-checkbox:has(input[type="checkbox"]:checked) { + background-color: black; + color: white; + } + + .xp-checkbox.plus-box::before { + content: '+'; + color: lightgray; + font-size: 18px; + font-weight: bold; + position: absolute; + } + + .xp-checkbox.plus-box:has(input[type="checkbox"]:checked)::before { + color: white; + } + + .talent-instruction { + font-size: 14px; + margin-top: 8px; + color: black; + font-weight: bold; + } + + .sheet-notebook-tabs { + position: absolute; + right: -30px; + top: 220px; + display: flex; + flex-direction: column; + gap: 2px; + z-index: 100; + } + + .sheet-notebook-tab { + width: 25px; + height: 80px; + background-color: #999; + color: white; + border: none; + border-radius: 0 8px 8px 0; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + transition: none; + position: relative; + letter-spacing: 1.2px; + writing-mode: vertical-rl; + text-orientation: mixed; + box-shadow: 2px 2px 4px rgba(0,0,0,0.2); + } + + .sheet-notebook-tab:hover { + background-color: #666; + } + + .sheet-notebook-tab.active { + background-color: black; + color: white; + box-shadow: 2px 2px 6px rgba(0,0,0,0.3); + } + + .sheet-notebook-tab.settings-tab { + writing-mode: vertical-rl; + text-orientation: mixed; + } + + .gear-icon::before { + font-family: Pictos; + content: "y"; + font-size: 16px; + text-transform: lowercase; + font-weight: normal; + } + + .charsheet .sheet-main, + .charsheet .sheet-notes, + .charsheet .sheet-settings { + display: none; + } + + .charsheet .sheet-tabstoggle[value="main"] ~ .sheet-container .sheet-main, + .charsheet .sheet-tabstoggle[value="notes"] ~ .sheet-container .sheet-notes, + .charsheet .sheet-tabstoggle[value="settings"] ~ .sheet-container .sheet-settings { + display: block; + } + + .charsheet .sheet-tabstoggle[value="main"] ~ .sheet-container .sheet-notebook-tabs .sheet-button0, + .charsheet .sheet-tabstoggle[value="notes"] ~ .sheet-container .sheet-notebook-tabs .sheet-button1, + .charsheet .sheet-tabstoggle[value="settings"] ~ .sheet-container .sheet-notebook-tabs .sheet-button2 { + background-color: black; + color: white; + box-shadow: 2px 2px 6px rgba(0,0,0,0.3); + left: -4px; + width: 29px; + border-radius: 1px 8px 8px 1px; + } + + .sheet-main, + .sheet-notes, + .sheet-settings { + width: 100% !important; + min-width: 1050px !important; + min-height: 1478px !important; + margin: 0 !important; + background-color: white !important; + padding: 30px !important; + box-sizing: border-box !important; + position: relative; + } + + .sheet-notes .left-column, + .sheet-settings .left-column { + width: 49.2% !important; + max-width: 49.2% !important; + min-width: 49.2% !important; + } + + .sheet-notes .right-column, + .sheet-settings .right-column { + width: 49.2% !important; + max-width: 49.2% !important; + min-width: 49.2% !important; + } + + .sheet-container { + padding: 0 !important; + } + + .treasure-section { + background-color: #f0f0f0; + border-radius: 6px; + margin-bottom: 15px; + overflow: hidden; + } + + .treasure-row { + display: flex; + justify-content: center; + align-items: center; + margin-top: 2px; + margin-bottom: 15px; + position: relative; + gap: 40px; + padding: 0; + } + + .treasure-box { + display: flex; + flex-direction: column; + gap: 4px; + height: 60px; + box-sizing: border-box; + position: relative; + width: 80px; + flex-shrink: 0; + } + + .treasure-box:nth-child(1)::after, + .treasure-box:nth-child(2)::after { + content: ''; + position: absolute; + right: -20px; + top: 50%; + transform: translateY(-50%); + height: 40px; + width: 1px; + background-color: #c1c1c1; + } + + .treasure-name { + width: 100%; + border: none; + background: transparent; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-size: 14px; + font-weight: bold; + padding: 2px 0; + outline: none; + box-sizing: border-box; + text-align: center; + } + + .treasure-count-container { + display: flex; + align-items: center; + justify-content: center; + margin-top: auto; + } + + .treasure-count-input { + width: 30px; + height: 24px; + border: 1px solid #999; + background: white; + text-align: center; + font-size: 18px; + font-weight: bold; + border-radius: 4px; + outline: none; + line-height: 1; + padding-top: 2px; + padding-left: 18px; + } + + .treasure-textarea { + width: 100%; + border: 1px solid #ccc; + padding: 6px; + font-size: 14px; + line-height: 1.3; + box-sizing: border-box; + background-color: white; + resize: vertical; + height: 120px; + } + + .arcana-section { + background-color: #f0f0f0; + border-radius: 6px; + margin-bottom: 17.5px; + overflow: hidden; + } + + .repeating_arcana { + border: none; + margin: 0; + padding: 0; + } + + .arcana-item { + background-color: #e0e0e0; + border: 1px solid #ccc; + border-radius: 6px; + padding: 10px; + margin-bottom: 15px; + box-sizing: border-box; + transition: all 0.2s ease; + } + + .arcana-item:not(:focus-within) .arcana-name-input { + background: transparent; + border: none; + } + + .arcana-item:not(:focus-within) .arcana-tier-select { + background: transparent; + border: none; + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + } + + .arcana-item:not(:focus-within) .arcana-description { + background: transparent; + border: none; + } + + .arcana-item:not(:focus-within) .arcana-textarea { + background: transparent; + border: none; + } + + .arcana-item:focus-within { + border: 2px solid #666; + } + + .arcana-header-row { + display: flex; + gap: 10px; + margin-bottom: -10px; + } + + .arcana-name-cell { + flex: 0 0 80%; + } + + .arcana-tier-cell { + flex: 0 0 18%; + } + + .arcana-field-group { + margin-bottom: -08px; + } + + .arcana-field-group:last-child { + margin-bottom: 0; + } + + .arcana-name-input { + width: 100%; + height: 28px; + border: 1px solid #ccc; + padding: 0px 0px; + font-size: 24px; + font-weight: 900; + font-variant: small-caps; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + box-sizing: border-box; + background-color: white; + outline: none; + } + + .arcana-tier-select { + width: 100%; + height: 28px; + border: 1px solid #ccc; + padding: 0px 0px; + font-size: 12px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: 700; + box-sizing: border-box; + background-color: white; + outline: none; + color: gray; + } + + .arcana-field-label { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + margin-bottom: 2px; + margin-left: 10px; + margin-top: 5px; + color: #5b5255; + } + + .arcana-textarea { + width: 97% !important; + min-height: 13px; + border: 1px solid #ccc; + padding: 0px 0px; + font-size: 13px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + line-height: 1.3; + box-sizing: border-box; + background-color: white; + resize: none; + outline: none; + height: auto !important; + field-sizing: content !important; + overflow: hidden !important; + margin-left: 10px; + margin-right: 5px; + margin-top: -3px; + } + + .arcana-description { + width: 100%; + min-height: 15px; + border: 1px solid #ccc; + padding: 0px 0px; + font-size: 15px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-style: italic !important; + line-height: 1.3; + box-sizing: border-box; + background-color: white; + resize: none; + outline: none; + height: auto !important; + field-sizing: content !important; + overflow: hidden !important; + } + + .arcana-section .repcontainer { + margin-bottom: 15px; + } + + .arcana-section .repcontainer .repitem { + margin-bottom: 0; + } + + .spell-container { + position: relative; + } + + .spell-source-area { + resize: vertical !important; + } + + .spell-source-area:placeholder-shown { + background: white !important; + border: 1px solid #ccc !important; + font-size: 12px; + } + + .spell-source-area:not(:placeholder-shown):not(:focus) { + border: none !important; + background: transparent !important; + outline: none !important; + resize: none !important; + font-size: 12px !important; + line-height: 1.4 !important; + } + + .spell-source-area:focus, + .spell-container:focus-within .spell-source-area:not(:placeholder-shown), + .subsection:focus-within .spell-source-area:not(:placeholder-shown) { + border: 1px solid #ccc !important; + background: white !important; + outline: none !important; + resize: none !important; + font-size: 12px !important; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + line-height: 1.4 !important; + } + + .subsection:has(input[name="attr_spell_source_resize_unlocked"][value="true"]) .spell-source-area:focus { + resize: vertical !important; + } + + .subsection:has(input[name="attr_spell_source_resize_unlocked"][value="false"]) .spell-source-area:focus, + .subsection:has(input[name="attr_spell_source_resize_unlocked"][value="false"]) .spell-source-area:not(:focus) { + resize: none !important; + height: auto !important; + field-sizing: content !important; + overflow: hidden !important; + } + + .spell-slot { + width: calc(100% + 10px) !important; + max-width: none !important; + margin-left: 0 !important; + margin-right: 0 !important; + min-height: 45px; + height: 45px; + border: none; + border-bottom: 1px solid #ddd; + padding: 6px 4px; + font-size: 12px; + font-family: Arial, sans-serif; + resize: vertical; + box-sizing: border-box; + background-color: white; + } + + .spell-slot:placeholder-shown { + background: white !important; + border: 1px solid #ccc !important; + } + + .spell-slot:not(:placeholder-shown):not(:focus) { + border: none !important; + background: transparent !important; + outline: none !important; + resize: none !important; + overflow: hidden !important; + font-size: 12px !important; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + line-height: 1.4 !important; + } + + .spell-slot:focus, + .subsection:focus-within .spell-slot:not(:placeholder-shown) { + border: 1px solid #ccc !important; + background: white !important; + outline: none !important; + resize: vertical !important; + font-size: 12px !important; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + line-height: 1.4 !important; + } + + .subsection:has(input[name="attr_spells_resize_unlocked"][value="true"]) .spell-slot:focus { + resize: vertical !important; + } + + .subsection:has(input[name="attr_spells_resize_unlocked"][value="false"]) .spell-slot:focus, + .subsection:has(input[name="attr_spells_resize_unlocked"][value="false"]) .spell-slot:not(:focus) { + resize: none !important; + height: auto !important; + field-sizing: content !important; + overflow: hidden !important; + } + + .subsection:has(input[name="attr_spells_resize_unlocked"][value="false"]) .spell-slot:not(:placeholder-shown):not(:focus) { + height: auto !important; + field-sizing: content !important; + } + + .spell-slot::first-line, + .spell-source-area::first-line { + font-weight: bold; + font-size: 14px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + } + + .spell-source-area::placeholder, + .spell-slot::placeholder { + line-height: 1.4; + white-space: pre-line; + color: lightgray; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif !important; + } + + .subsection-header .spell-container { + position: static; + display: block; + } + + .spell-source-area:focus + * .subsection-header .resize-toggle-btn, + .subsection:has(.spell-source-area:focus) .subsection-header .resize-toggle-btn { + opacity: 1; + pointer-events: auto; + } + + .spell-slot:focus + * .subsection-header .resize-toggle-btn, + .subsection:has(.spell-slot:focus) .subsection-header .resize-toggle-btn { + opacity: 1; + pointer-events: auto; + } + + .spell-source-area:focus ~ .resize-toggle-btn, + .spell-container:focus-within .resize-toggle-btn { + opacity: 1; + pointer-events: auto; + } + + input[name="attr_spell_source_resize_unlocked"][value="true"] ~ .resize-toggle-btn { + width: 6px !important; + height: 3px !important; + border-top-right-radius: 50px !important; + border-top-left-radius: 50px !important; + margin-top: 0px !important; + margin-left: 2px !important; + top: -4px !important; + position: relative !important; + } + + input[name="attr_spell_source_resize_unlocked"][value="true"] ~ .resize-toggle-btn::after { + border: 1px solid transparent !important; + box-shadow: 0 0 0 1px !important; + width: 8px !important; + height: 5px !important; + border-radius: 1px !important; + left: -2px !important; + top: 5px !important; + } + + input[name="attr_spell_source_resize_unlocked"][value="true"] ~ .resize-toggle-btn::before { + content: "" !important; + display: block !important; + box-sizing: border-box !important; + position: absolute !important; + width: 1px !important; + height: 3px !important; + background: currentColor !important; + left: -1px !important; + top: 2px !important; + } + + input[name="attr_spells_resize_unlocked"][value="true"] ~ .resize-toggle-btn { + width: 6px !important; + height: 3px !important; + border-top-right-radius: 50px !important; + border-top-left-radius: 50px !important; + margin-top: 0px !important; + margin-left: 2px !important; + top: -4px !important; + position: relative !important; + } + + input[name="attr_spells_resize_unlocked"][value="true"] ~ .resize-toggle-btn::after { + border: 1px solid transparent !important; + box-shadow: 0 0 0 1px !important; + width: 8px !important; + height: 5px !important; + border-radius: 1px !important; + left: -2px !important; + top: 5px !important; + } + + input[name="attr_spells_resize_unlocked"][value="true"] ~ .resize-toggle-btn::before { + content: "" !important; + display: block !important; + box-sizing: border-box !important; + position: absolute !important; + width: 1px !important; + height: 3px !important; + background: currentColor !important; + left: -1px !important; + top: 2px !important; + } + + .spell-slots { + display: flex; + flex-direction: column; + } + + .repeating_spells { + border: none; + margin: 0; + padding: 0; + width: 100%; + display: block; + } + + .spell-slot-container { + display: flex; + flex-direction: column; + margin: 0; + padding: 0; + width: 100%; + } + + .repeating_spells:last-child .spell-slot { + border-bottom: none; + } + + .pools-section { + background-color: #f0f0f0; + border-radius: 6px; + margin-bottom: 15px; + overflow: hidden; + } + + .pools-section .section-content { + padding: 14px 10px 10px 10px; + background-color: #f0f0f0; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + } + + .pools-section .repcontainer { + margin-bottom: 15px; + } + + .pools-header { + display: flex; + margin-bottom: 6px; + align-items: center; + } + + .pool-name-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + flex: 0 0 41.5%; + text-align: left; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + color: black; + margin-left: 10px; + } + + .pool-total-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + flex: 0 0 19%; + text-align: left; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + color: black; + } + + .pool-current-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + flex: 0 0 23%; + text-align: left; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + color: black; + } + + .pool-roll-column { + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + flex: 0 0 5%; + text-align: left; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + color: black; + } + + .repeating_pools { + border: none; + margin: 0; + padding: 0; + } + + .pool-row { + display: flex; + border-bottom: 1px solid #eee; + min-height: 48px; + align-items: center; + border: 1px solid #ccc; + border-bottom: 1px solid #eee; + box-sizing: border-box; + } + + .pool-row:last-child { + border-bottom: 1px solid #ccc; + } + + .pool-name-cell { + flex: 0 0 38%; + padding: 4px 6px; + display: flex; + align-items: center; + } + + .pool-total-cell { + flex: 0 0 10%; + padding: 4px 6px; + display: flex; + align-items: center; + justify-content: center; + } + + .pool-current-cell { + flex: 0 0 25%; + padding: 4px 6px; + display: flex; + align-items: center; + justify-content: center; + } + + .pool-roll-cell { + flex: 0 0 10%; + padding: 4px 6px; + display: flex; + align-items: center; + justify-content: center; + } + + .pool-name-input { + width: 100%; + border: none; + background: transparent; + font-size: 14px; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + padding: 4px; + outline: none; + box-sizing: border-box; + } + + .pool-number-input { + width: 40px; + height: 24px; + border: 1px solid #999; + background: white; + text-align: center; + font-size: 16px; + font-weight: bold; + border-radius: 4px; + outline: none; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + line-height: 1; + padding-top: 2px; + padding-left: 18px; + } + + .pool-roll-button { + background-color: none; + color: white; + border: none; + padding: 6px 4px 8px 4px; + font-size: 26px; + font-weight: normal; + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + cursor: pointer; + border-radius: 6px; + transition: all 0.2s ease; + display: flex; + align-items: center; + justify-content: center; + filter: grayscale(100%); + opacity: .3; + } + + .pool-roll-button:hover { + opacity: .8; + } + + .notes-section { + background-color: #f0f0f0; + border-radius: 6px; + margin-top: 0px; + margin-bottom: 15px; + overflow: hidden; + width: 100%; + } + + .notes-columns { + display: flex; + margin-top: 6px; + border: 1px solid #ccc; + background-color: white; + } + + .notes-column { + flex: 1; + border: none; + padding: 6px; + font-size: 14px; + line-height: 1.4; + box-sizing: border-box; + background-color: white; + resize: none; + min-height: 510px; + outline: none; + } + + .notes-column:not(:last-child) { + border-right: 1px solid #ddd; + } + + .settings-label-flex { + display: flex; + align-items: center; + gap: 8px; + } + + .settings-label-block { + display: block; + margin-bottom: 8px; + } + + .settings-label-title { + font-weight: 700; + margin-bottom: 5px; + display: block; + } + + .settings-radio-group { + margin-left: 10px; + } + + .settings-radio-option { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 5px; + line-height: 1; + } + + .sheet-settings .section-content .settings-radio-option span { + font-weight: 400 !important; + font-family: inherit !important; + font-size: 14px; + line-height: 1.2; + margin-top: 1px; + } + + .settings-help-text { + font-size: 12px; + color: #666; + margin-top: -8px; + margin-bottom: 15px; + } + + .settings-help-text-spaced { + font-size: 12px; + color: #666; + margin-top: 8px; + } + + .sheet-settings input[type="checkbox"] { + appearance: none; + -webkit-appearance: none; + width: 18px; + height: 18px; + border: 2px solid #ccc; + border-radius: 3px; + background: white; + position: relative; + cursor: pointer; + } + + .sheet-settings input[type="checkbox"]:checked { + background: white; + border-color: #999; + } + + .sheet-settings input[type="checkbox"]:focus { + outline: none; + background: white; + border-color: #ccc; + } + + .sheet-settings input[type="checkbox"]:checked:focus { + background: white; + border-color: #999; + } + + .sheet-settings input[type="checkbox"]:checked::after { + content: '✓'; + position: absolute; + top: -2px; + left: 3px; + font-size: 12px; + font-weight: bold; + color: #666; + } + /* Style radio buttons to look like checkboxes but work as radio buttons */ + .sheet-settings input[type="radio"] { + appearance: none; + -webkit-appearance: none; + width: 18px; + height: 18px; + border: 2px solid #ccc; + border-radius: 3px; + background: white; + position: relative; + cursor: pointer; + } + + .sheet-settings input[type="radio"]:checked { + background: white; + border-color: #999; + } + + .sheet-settings input[type="radio"]:focus { + outline: none; + background: white; + border-color: #ccc; + } + + .sheet-settings input[type="radio"]:checked:focus { + background: white; + border-color: #999; + } + + .sheet-settings input[type="radio"]:checked::after { + content: '✓'; + position: absolute; + top: -2px; + left: 3px; + font-size: 12px; + font-weight: bold; + color: #666; + } + /* Sheet size scaling based on radio button selection - using correct values */ + body:has(input[name="attr_sheet_size"][value="compact"]:checked) .sheet-container { + transform: scale(0.8); + } + + body:has(input[name="attr_sheet_size"][value="regular"]:checked) .sheet-container { + transform: scale(0.9); + } + + body:has(input[name="attr_sheet_size"][value="expanded"]:checked) .sheet-container { + transform: scale(1.1); + } + .sheet-rolltemplate-grimwild .sheet-container { + width: 258px; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + margin: 12px 0; + } + + .sheet-rolltemplate-grimwild .sheet-container-header { + background-color: #bdb5a4; + color: black; + padding: 7.2px 12px; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-weight: 400; + font-weight: bold; + font-size: 14.4px; + letter-spacing: 1.2px; + text-transform: uppercase; + border-top-left-radius: 7.2px; + border-top-right-radius: 7.2px; + display: flex; + align-items: left; + } + + .sheet-rolltemplate-grimwild .sheet-container-content { + padding: 12px; + background-color: #ebe7df; + border-bottom-left-radius: 7.2px; + border-bottom-right-radius: 7.2px; + } + + .sheet-rolltemplate-grimwild .sheet-dice-row-container { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 24px; + margin-bottom: 18px; + } + + .sheet-rolltemplate-grimwild .sheet-top-dice-row-left, + .sheet-rolltemplate-grimwild .sheet-top-dice-row-right { + display: flex; + flex: 0 0 50%; + justify-content: center; + flex-direction: row; + align-items: flex-start; + margin-bottom: 18px; + gap: 12px; + margin-left: 0px; + } + + .sheet-rolltemplate-grimwild .sheet-dice-header-left, + .sheet-rolltemplate-grimwild .sheet-dice-header-right { + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 14.4px; + text-transform: uppercase; + margin-bottom: 3.6px; + color: black; + } + + .sheet-rolltemplate-grimwild .sheet-dice { + width: 24px; + height: 24px; + background: #5e5a57; + color: #85c45c; + padding: 0px; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-size: 16.8px; + font-weight: 400; + text-align: center; + border-radius: 3.6px; + margin-top: 6px; + margin-bottom: -24px; + display: flex; + align-items: center; + justify-content: center; + } + + .sheet-rolltemplate-grimwild .sheet-dice1, + .sheet-rolltemplate-grimwild .sheet-dice2, + .sheet-rolltemplate-grimwild .sheet-dice3 { + color: #bfbfbf !important; + } + + .sheet-rolltemplate-grimwild .sheet-dice4, + .sheet-rolltemplate-grimwild .sheet-dice5 { + color: white !important; + } + + .sheet-rolltemplate-grimwild .sheet-dice6 { + color: #85c45c !important; + } + + .sheet-rolltemplate-grimwild .sheet-divider { + border-bottom: 1px solid lightgray; + align-items: center; + margin-bottom: 12px; + } + + .sheet-rolltemplate-grimwild .sheet-dice-thorn { + width: 24px; + height: 24px; + background: #5e5a57; + color: white; + padding: 0px; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-size: 15.6px; + font-weight: 400; + text-align: center; + border-radius: 3.6px; + margin-top: 6px; + margin-bottom: -24px; + transform: rotate(45deg); + position: relative; + } + + .sheet-rolltemplate-grimwild .sheet-dice-thorn_text { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) rotate(-45deg); + color: white; + font-size: 16.8px; + font-weight: 400; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + line-height: 1; + width: 100%; + text-align: center; + } + + .sheet-rolltemplate-grimwild .sheet-thorn7, + .sheet-rolltemplate-grimwild .sheet-thorn8 { + color: #db695e !important; + } + + .sheet-rolltemplate-grimwild .sheet-result-bold { + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-size: 26.4px; + font-weight: 400; + text-align: center; + color: black; + } + + .sheet-rolltemplate-grimwild .sheet-result-text { + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-size: 18px; + font-weight: 400; + text-align: center; + margin-bottom: 12px; + margin-top: 6px; + color: black; + line-height: 1.1; + } + + .sheet-rolltemplate-grimwild .sheet-mark-text { + font-family: 'Capito04', 'Trebuchet MS', Arial, sans-serif; + font-size: 12px; + text-align: right; + font-style: italic; + color: #7d7d7d; + line-height: 13.2px; + } + + .sheet-rolltemplate-grimwild .sheet-top-dice-row-left.sheet-pool-dice { + gap: 6.5px !important; + } + + .sheet-rolltemplate-grimwild-basic .sheet-container { + width: 258px !important; + max-width: 258px !important; + min-width: 258px !important; + box-sizing: border-box !important; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + margin: 12px 0; + background: #ebe7df; + border: 2px solid #bdb5a4; + border-radius: 8px; + padding: 15px; + } + + .sheet-rolltemplate-grimwild-basic .sheet-header { + background-color: #bdb5a4; + color: black; + padding: 8px 12px; + font-weight: bold; + font-size: 14px; + text-transform: uppercase; + letter-spacing: 1px; + text-align: center; + margin: -15px -15px 15px -15px; + border-radius: 6px 6px 0 0; + } + + .sheet-rolltemplate-grimwild-basic .sheet-section { + margin-bottom: 12px; + } + + .sheet-rolltemplate-grimwild-basic .sheet-section-title { + font-weight: bold; + font-size: 12px; + margin-bottom: 0px; + color: #333; + text-transform: uppercase; + } + + .sheet-rolltemplate-grimwild-basic .sheet-results { + background: none; + padding: 8px; + border-radius: 4px; + border: none; + font-size: 12px; + font-weight: bold; + } + + .sheet-rolltemplate-grimwild-basic .sheet-results .inlinerollresult { + background-color: #5e5a57 !important; + border: 1px solid #bdb5a4 !important; + border-radius: 4px !important; + color: white !important; + min-width: 18px !important; + min-height: 18px !important; + padding: 4px 6px !important; + margin: 2px !important; + display: inline-block !important; + text-align: center !important; + font-size: 18px !important; + font-weight: bold !important; + line-height: 1 !important; + } + + .sheet-rolltemplate-grimwild-basic .sheet-instructions { + font-size: 11px; + color: #666; + font-style: none; + margin-top: 10px; + padding: 8px; + background: rgba(255,255,255,0.5); + border-radius: 4px; + } + + .sheet-rolltemplate-grimwild-simple .sheet-container { + width: 258px; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + margin: 12px 0; + } + + .sheet-rolltemplate-grimwild-simple .sheet-container-header { + background-color: #bdb5a4; + color: black; + padding: 7.2px 12px; + font-weight: bold; + font-size: 14.4px; + letter-spacing: 1.2px; + text-transform: uppercase; + border-top-left-radius: 7.2px; + border-top-right-radius: 7.2px; + } + + .sheet-rolltemplate-grimwild-simple .sheet-container-content { + padding: 15px 12px 12px 12px; + background-color: #ebe7df; + border-bottom-left-radius: 7.2px; + border-bottom-right-radius: 7.2px; + } + + .sheet-rolltemplate-grimwild-simple .sheet-menu-title { + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-size: 20px; + font-weight: 400; + text-align: center; + color: black; + margin-bottom: 12px; + } + + .sheet-rolltemplate-grimwild-simple .sheet-menu-options { + text-align: center; + } + + .sheet-rolltemplate-grimwild-simple .sheet-menu-options a { + display: inline-block; + background-color: #bdb5a4; + color: black; + padding: 8px 16px; + margin: 2px 0; + border-radius: 4px; + text-decoration: none; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; + border: 1px solid #999; + transition: background-color 0.2s ease; + width: 133px; + box-sizing: border-box; + } + + .sheet-rolltemplate-grimwild-simple .sheet-menu-options a:hover { + background-color: #d4cbb8; + } + + .sheet-rolltemplate-grimwild-menu .sheet-container { + width: 258px; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + margin: 12px 0; + } + + .sheet-rolltemplate-grimwild-menu .sheet-container-header { + background-color: #bdb5a4; + color: black; + padding: 7.2px 12px; + font-weight: bold; + font-size: 14.4px; + letter-spacing: 1.2px; + text-transform: uppercase; + border-top-left-radius: 7.2px; + border-top-right-radius: 7.2px; + } + + .sheet-rolltemplate-grimwild-menu .sheet-container-content { + padding: 15px 12px 12px 12px; + background-color: #ebe7df; + border-bottom-left-radius: 7.2px; + border-bottom-right-radius: 7.2px; + } + + .sheet-rolltemplate-grimwild-menu .sheet-menu-title { + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-size: 20px; + font-weight: 400; + text-align: center; + color: black; + margin-bottom: 12px; + } + + .sheet-rolltemplate-grimwild-menu .sheet-menu-options { + text-align: center; + } + + .sheet-rolltemplate-grimwild-menu .sheet-menu-options a { + display: inline-block; + background-color: #bdb5a4; + color: black; + padding: 8px 16px; + margin: 2px 0; + border-radius: 4px; + text-decoration: none; + font-family: 'Lilita One', 'Trebuchet MS', Arial, sans-serif; + font-weight: bold; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.5px; + border: 1px solid #999; + transition: background-color 0.2s ease; + width: 133px; + box-sizing: border-box; + } + + .sheet-rolltemplate-grimwild-menu .sheet-menu-options a:hover { + background-color: #d4cbb8; + } + +.stats-conditions-overlay { + position: absolute; + top: 5.7px; + left: 0px; + width: 100.41%; + height: 100.5%; + background-image: url('https://steady-snickerdoodle-f2b427.netlify.app/SheetArrows.svg'); + background-repeat: no-repeat; + background-size: 100% auto; + background-position: center; + pointer-events: none; + z-index: 10; +} + +.sheet-settings .settings-label-flex span, +.sheet-settings .settings-label-title, +.sheet-settings .settings-radio-option span { + color: #342f2d !important; + background: transparent !important; +} + + +.sheet-settings .section-content label span { + color: #342f2d !important; + opacity: 1 !important; +} + + +.sheet-settings .settings-help-text, +.sheet-settings .settings-help-text-spaced { + color: #666 !important; + background: transparent !important; +} \ No newline at end of file diff --git a/Grimwild/Grimwild_r20_v1.3.html b/Grimwild/Grimwild_r20_v1.3.html new file mode 100644 index 0000000000..a79a37565b --- /dev/null +++ b/Grimwild/Grimwild_r20_v1.3.html @@ -0,0 +1,2363 @@ + +
+
+ + + +
+
+
+
+
+
+
+
+
+
NAME
+ +
+
+ +
+
+
PATH
+ +
+
+
PLAYER
+ +
+
+
+ +
+
+
DISTINCTIVE FEATURES
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+ +
+
BLOODIED
+
+
+
+ +
+
RATTLED
+
+
+ +
+ +
+
+
Add Thorns
+
+ + + + +
+
+ +
+
Use Spark
+
+ +
+
+ +
+
Add Dice
+
+ + 0 + + +
+
+
+
+
+
+ +
+
+ CHARACTER DETAILS +
INTRODUCE A TANGLE: TAKE SPARK
+
+ +
+
+
+
BACKGROUNDS
+
WISES
+
+ +
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
TRAITS:  2 you are (●)  |  1 you're really not (×)
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+ +
DESIRES: 2 you want (●)  |  1 you really don't (×)
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ + +
+ +
+
+
+
+ +
+
+ BONDS +
CHANGE A BOND: THE OTHER PC TAKES SPARK
QUARREL: BOTH TAKE SPARK
+
+ +
+
+
PC
+
  BOND
+
+ +
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
+ CONDITIONS & WOUNDS +
MARK: +1t, THEN CLEAR
HARM: +1t TO ALL ROLLS
+
+
+ +
VEX: FIGHT — FLIGHT — FREEZE — FREAKOUT
+
+
+ +
+
+
+ +
+
+
BUILD POOL
+
+ + 0 + + +
+
+
+
+ +
+
+ +
+
+ SPARK +
+
+ +
+
+ +
+
+
+
+ STORY +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ TALENTS +
+ +
+
+
+ CORE TALENT +
+ + +
+
+
+ +
+
+ +
+
+ ACQUIRED TALENTS +
+ + +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+ RESOURCES +
+
+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+
+
+ +
+
+
+ STORY ARCS +
FINISH/MOVE ON FROM
AN ARC: TAKE SPARK
+
+ +
+
+
GROUP ARC
+
+ +
+
+ +
+
CHARACTER ARC
+
+ +
+
+
+
+ +
+
+ EXPERIENCE +
+ +
+
Each session, take 1 XP:
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
At +, take a new talent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
NAME
+ +
+
+ +
+
+
PATH
+ +
+
+
PLAYER
+ +
+
+
+ +
+
+
DISTINCTIVE FEATURES
+ +
+
+
+
+
+ +
+
+
+
+
+
TREASURE +
CAROUSE: MINOR TREASURE FOR PARTY MONTAGE, TAKE SPARK
+
+
+
+
+
MINOR
+
+ +
+
+
+
MAJOR
+
+ +
+
+
+
MYTHIC
+
+ +
+
+
+
+ TREASURE NOTES +
+ +
+
+
+
ARCANA
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ +
+
LIMITATIONS
+ +
+ +
+
TOUCHSTONES
+ +
+
+
+
+
+
+
+
+
+ SPELLCRAFT +
+ +
+
+
+ SOURCE OF SPELLCRAFT +
+ + +
+
+
+ +
+
+ +
+
+ SPELLS & TOUCHSTONES +
+ + +
+
+
+
+
+ +
+
+
+
+
+
+
+
POOLS +
POOL SIZES: 4d|SHORT, 6d|MID, 8d|LONG
+
+
+
+
NAME
+
TOTAL
+
CURRENT
+
ROLL
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
GENERAL NOTES
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
NAME
+ +
+
+ +
+
+
PATH
+ +
+
+
PLAYER
+ +
+
+
+ +
+
+
DISTINCTIVE FEATURES
+ +
+
+
+
+
+ +
+
+
+
+
ROLL SETTINGS
+
+
+ +
+ Enable when using the Grimwild Roll20 Character Sheet API to enhance how rolls are displayed and autocalculate results. +
+
+
+ +
+ Enable when using Roll20 rollable tables instead of standard d6 or d8 rolls. +
+
+
+ +
+ Enable if you don't want added thorns, dice, and spark to affect story, assist, and montage rolls. +
+
+
+
+
+
SHEET SETTINGS
+
+
+ +
+ + + +
+
+ Adjust the overall size of the character sheet. +
+
+
+
+
+
+
+ + +
+
+ {{charactername}} | {{#poolroll}}{{#rollname}}{{rollname}} Pool{{/rollname}}{{^rollname}}Pool Roll{{/rollname}}{{/poolroll}}{{^poolroll}}{{rollname}} Roll{{/poolroll}} +
+
+ {{^poolroll}} +
+
{{poolname}} +
+ {{#dice1}}
{{dice1}}
{{/dice1}} + {{#dice2}}
{{dice2}}
{{/dice2}} + {{#dice3}}
{{dice3}}
{{/dice3}} + {{#dice4}}
{{dice4}}
{{/dice4}} + {{#dice5}}
{{dice5}}
{{/dice5}} + {{#dice6}}
{{dice6}}
{{/dice6}} + {{#dice7}}
{{dice7}}
{{/dice7}} + {{#dice8}}
{{dice8}}
{{/dice8}} +
+
+ {{#spark}} +
Add Spark +
+ {{#spark1}}
{{spark1}}
{{/spark1}} + {{#spark2}}
{{spark2}}
{{/spark2}} +
+
+ {{/spark}} +
+ {{/poolroll}} + + {{#poolroll}} +
+
{{poolname}} +
+ {{#dice1}}
{{dice1}}
{{/dice1}} + {{#dice2}}
{{dice2}}
{{/dice2}} + {{#dice3}}
{{dice3}}
{{/dice3}} + {{#dice4}}
{{dice4}}
{{/dice4}} + {{#dice5}}
{{dice5}}
{{/dice5}} + {{#dice6}}
{{dice6}}
{{/dice6}} + {{#dice7}}
{{dice7}}
{{/dice7}} + {{#dice8}}
{{dice8}}
{{/dice8}} + {{#dice9}}
{{dice9}}
{{/dice9}} + {{#dice10}}
{{dice10}}
{{/dice10}} + {{#dice11}}
{{dice11}}
{{/dice11}} + {{#dice12}}
{{dice12}}
{{/dice12}} +
+
+
+ {{/poolroll}} + + {{#thorns}} +
+
+
Difficulty +
+ {{#thorn1}}
{{thorn1}}
{{/thorn1}} + {{#thorn2}}
{{thorn2}}
{{/thorn2}} + {{#thorn3}}
{{thorn3}}
{{/thorn3}} + {{#thorn4}}
{{thorn4}}
{{/thorn4}} +
+
+ {{#markharm}} +
Marks & Harm +
+ {{#mark1}}
{{mark1}}
{{/mark1}} + {{#mark2}}
{{mark2}}
{{/mark2}} + {{#mark3}}
{{mark3}}
{{/mark3}} +
+
+ {{/markharm}} +
+ {{/thorns}} + + {{#markharmonly}} +
+
+
Marks & Harm +
+ {{#mark1}}
{{mark1}}
{{/mark1}} + {{#mark2}}
{{mark2}}
{{/mark2}} + {{#mark3}}
{{mark3}}
{{/mark3}} +
+
+
+ {{/markharmonly}} + + {{#result}} +
+
{{resultname}}
+
{{resulttext}}
+ {{/result}} + + {{#status}} +
{{status}}
+ {{/status}} +
+
+
+ + +
+
+ {{charactername}} | {{rollname}} Roll +
+
+ + {{#maindice}} +
+
Main Dice +
+ {{maindice}} +
+
+
+ {{/maindice}} + + {{#thorns}} +
+
+
Thorns +
+ {{thorns}} +
+
+
+ {{/thorns}} + + {{#result}} +
+
{{resultname}}
+
{{resulttext}}
+ {{/result}} + +
+
+
+ +
+
+ {{rollname}} +
+ + {{#main_dice}} +
+ {{#pool_size}} +
Pool ({{pool_size}}d6)
+ {{/pool_size}} + {{^pool_size}} +
Dice Results
+ {{/pool_size}} +
{{main_dice}}
+
+ {{/main_dice}} + + {{#thorns}} +
+
Thorns
+
{{thorns}}
+
+ {{/thorns}} + +
+ {{#pool_size}} + Guide to Pools:
+ {{#use_rollable_tables}} + • Dice that rolled a 1, 2, or 3 are dropped.
+ • Any remaining dice stay in the pool.
+ • Pool is depleted when no dice remain.
+ • Push yourself or spend to remove final die.
+ {{/use_rollable_tables}} + {{^use_rollable_tables}} + • Dice that rolled a 1, 2, or 3 are dropped.
+ • Any remaining dice stay in the pool.
+ • Pool is depleted when no dice remain.
+ • Push yourself or spend to remove final die.
+ {{/use_rollable_tables}} + {{/pool_size}} + {{^pool_size}} + Guide to Rolls:
+ {{#use_rollable_tables}} + • 2 Perfects Crit: You do it, choose a bonus.
+ • Perfect: You do it, avoid trouble.
+ • Messy: You do it, but with trouble.
+ • Grim: You fail, with trouble.
+ • Disaster: The worst comes to pass.
+ • Each "Cut" lowers result tier, except crits.
+ {{/use_rollable_tables}} + {{^use_rollable_tables}} + • 1-3: Grim | 4-5: Messy | 6: Perfect
+ • 2 Perfects Crit: You do it, choose a bonus.
+ • Perfect: You do it, avoid trouble.
+ • Messy: You do it, but with trouble.
+ • Grim: You fail, with trouble.
+ • Disaster: The worst comes to pass.
+ • Each 7-8 Thorn result cuts results tier by one, except crits.
+ {{/use_rollable_tables}} + {{/pool_size}} +
+
+
+ + +
+
+ {{rollname}} +
+
+
{{menu_title}}
+
{{menu_options}}
+
+
+
\ No newline at end of file diff --git a/Grimwild/README.md b/Grimwild/README.md new file mode 100644 index 0000000000..6bfd49e558 --- /dev/null +++ b/Grimwild/README.md @@ -0,0 +1,82 @@ +# Grimwild Roll20 Character Sheet + +A custom character sheet for the **Grimwild** tabletop RPG, designed for use with Roll20.
+ + +
+ +## Features + +
+ +- **Attribute Rolling**: Click attribute names (Brawn, Agility, Wits, Presence) to roll dice for action/defense rolls +- **Thorn System**: Auto handling of difficulty and mark/harm thorns +- **Pool Rolling**: Build and roll custom dice pools while the sheet automatically determines drops +- **Other Rolls**: Dice can be added manually for Story, Montage, or Assist rolls +- **Mark Tracking**: Clickable fields with each attribute for mark tracking, which auto remove when used +- **Condition Management**: Bloodied and Rattled condition tracking +- **Custom Roll Templates**: Styled roll outputs +- **Grimwild Roll20 API**: Accompanying optional API allows for autocalculations and enhanced results + +
+ +## Installation + +### For Roll20 Game Creators: + +1. In your Roll20 game, go to **Settings > Game Settings** +2. Scroll down to **Character Sheet Template** +3. Select **"Custom"** +4. Copy and paste the contents of `grimwild_r20_v1.3.html` into the **HTML Layout** tab and save. +5. Copy and paste the contents of `grimwild_r20_v1.3.css` into the **CSS Styling** tab and save. +6. If using the Grimwild Roll20 API, install `grimwild-r20_v1.3api.js` as an API script by heading to the **Settings > Game Settings** > **Mod (API Scripts)**, creating a new API with any name you'd like, then paste in the API script, Save, and Enable. + +### Optional Rollable Table Integration (when not using API): + +Note that if you are unable to use the API (not a pro subscriber) you will have two options for how dice display: +- Simple dice # outputs. +- Enable the Rollable Table option to output the dice results (Grim, Messy, Perfect, etc.) instead. + +To use Rollable Tables, create the following two tables in Roll20 (it takes <1 minute to do so). +- Name: GWRoll | Table Items: Grim (Weight 3); Messy (Weight 2); Perfect (Weight 1) +- Name: Thorn | Table Items: __ (Weight 6); Cut (Weight 2) + +### API Commands (Pro Subscription Required): + +- `!grimwild [dice] [thorns] [attribute]` - Roll attribute dice with thorns, can roll without attribute as well for story/montage/assist rolls. +- `!grimpool [size]` - Roll a dice pool and calculate drops + +## Current Files +Head to the latest release for the most recent files. +- `grimwild_r20_v1.3.html` - Character sheet HTML layout and JavaScript +- `grimwild_r20_v1.3.css` - Styling and roll template formatting +- `grimwild-r20_v1.3api.js` - API script for enhanced rolling features + +## Game System + +This sheet is designed for **Grimwild** (v1.4), a tabletop RPG by Oddity Press. Find the free edition here: https://www.drivethrurpg.com/en/product/507201/grimwild-free-edition, or the full edition with extra chapters here: https://www.drivethrurpg.com/en/product/508618/grimwild-cinematic-fantasy-roleplaying. + +## Contributing + +Would love to collaborate, feel free to submit issues or pull requests if you find bugs or want to suggest improvements! You can reach me (as Dedalus) on the Oddity Press discord: https://discord.com/invite/bNr5wXFmSk. There is a thread for this project in Crafted Projects. + +## Update Ideas + +Other aspirational features I might add in the future (or would appreciate others assisting with): +- ~~Saving the height of resiazable text entry fields in talent section (Roll20 has been fighting me on this if anyone has a solution)~~ +- ~~Second tab of the sheet for tracking addition elements (arcana, treasure, etc.)~~ +- ~~Proper integration for those without API support~~ +- ~~More GM support in terms of managing multiple pools over time~~ +- More GM support in terms of managing suspense (could just be a macro tied to a resource item?) +- API update to give players more guidance on Critical options +- Hardcoded specific path abiltiies (e.g., Weapon Mastery's extra die effects) +- Add in all talent/path options to select (that are freely available) +- And of course fine-tuning layout/features as feedback comes in + +## Credits + +This character sheet has been designed and created for the Grimwild RPG system based on the work of J.D. Maxwell and his collaborators at Oddity Press. The design of the sheet and the API were inspired by the original character sheet and book layout. + +## License + +This project is licensed under the MIT License, see the license file for details. I have no affilitation with Oddity Press. diff --git a/Grimwild/sheet.json b/Grimwild/sheet.json new file mode 100644 index 0000000000..bcc6bd57e5 --- /dev/null +++ b/Grimwild/sheet.json @@ -0,0 +1,8 @@ +{ + "html": "Grimwild_r20_v1.3.html", + "css": "Grimwild_r20_v1.3.css", + "authors": "Ryan K.", + "roll20userid": "539081", + "preview": "Grimwild_Preview.jpg", + "instructions": "A custom character sheet for the Grimwild tabletop RPG (v1.4). Features optional integration with the Grimwild Roll20 API for auto-calculation of dice results and enhanced output design. More information can be found here: https://github.com/Dedalus36/grimwild-roll20-character-sheet/blob/main/README.md" +} \ No newline at end of file diff --git a/Hollow_Knight_Unofficial_TTRPG/HKRPG.html b/Hollow_Knight_Unofficial_TTRPG/HKRPG.html index 4b9a531921..95edd0e662 100644 --- a/Hollow_Knight_Unofficial_TTRPG/HKRPG.html +++ b/Hollow_Knight_Unofficial_TTRPG/HKRPG.html @@ -15,53 +15,51 @@
-
- sheet
+
+ sheet
-
+
+
+ +
+
+
+
+ +
-
+
-
+
-
- -
- -
-
- -
-
-
-
+
-
-
-
-
+
+ +
+
+
+
+
-
-
- -
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -71,46 +69,43 @@
-
- sheet
- -
-
+
+ sheet
+
-

 Attuned     Ritual

-
- -
+
+ +
-
- -
+
+ +
@@ -121,7 +116,7 @@
-
+
@@ -130,23 +125,24 @@
-
+
-
- -
- -
- -
+
+ +
+
+ +
+
+
@@ -157,10 +153,19 @@
-
-
+
+
+
+ +
@@ -170,44 +175,43 @@
-
- -
-
- -
- -
- -
+
+ +
+
+ +
+
+ +
@@ -219,90 +223,91 @@
-
- -
-
- -
+
+ +
-
- -
+
+ +
+ +
+ +
-
-
- -
-
- -
+
+ +
-
- -
+
+ +
+ +
+ +
@@ -314,42 +319,43 @@
-
- -
-
- -
+
+ +
-
- -
+
+ +
+ +
+ +
@@ -361,64 +367,46 @@
-
- + +
+ +
+ +
+ +
+ +
+ +
+
-
- -
- -
- -
-
- -
- -
- - - - - - - - - - -
@@ -660,6 +648,42 @@
sheet
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -701,156 +725,112 @@
-
-
- -
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -1448,380 +1428,358 @@ on("sheet:opened", function() {
sheet
+
+
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- +
- -
+
+
+
+
+
Atk.   Retain
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-
-
- +
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-  Armor   -  Absorption
+
+
+
+
-
-
- -
-
- -
- Melee   - Ranged
- -
- Atk.   - Parry   - Grapple
-
- Atk.   - Parry   - Grapple
-
- Atk.   - Parry   - Grapple
-
- Atk.   - Parry   - Grapple
-
- Atk.   - Parry   - Grapple
- -
-
- -
-
-
-
-
-
-
-
-
-
- -
-
- -
-
- -
-
- -
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
-
-
-
-
-
- - -
-
-
-
- -
-
- -
-
-
-  Resistant
-
-  Vulnerable
- -
- Normal   - Magic   - Enviro.
- -
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+ +
+
+
+
-
-
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+ +
+
+
+
-
+
+ +
+
+
+
-
+
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- -
-
+
+ Atk.   + Parry   + Grapple
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+ Atk.   + Parry   + Grapple
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ Atk.   + Parry   + Grapple
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ Atk.   + Parry   + Grapple
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ Atk.   + Parry   + Grapple
+
+
+ +
+
+
+
+
+
+
+  Armor   +  Absorption
+ +
+
+
+
+ +
+
+
+
+ +
+ Melee   + Ranged
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- -
-
-
-
- -
+
+
+
- -
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +
+ Normal   + Magic   + Enviro.
+
+
+
+
+
+
+  Resistant
+
+  Vulnerable
-
+
+
+
+
+
+
+
+
+ +
- -
-
- -
+
- -
+
+
+
@@ -9144,4 +9102,4 @@ on('change:dedstafloating change:tusk1 change:bulkcurrent change:wpnclasscurrent }); }); - \ No newline at end of file + diff --git a/Mork Borg/morkborgsheet.html b/Mork Borg/morkborgsheet.html index 688e342226..9fd5774f9b 100644 --- a/Mork Borg/morkborgsheet.html +++ b/Mork Borg/morkborgsheet.html @@ -419,18 +419,20 @@
- {{#rollGreater() labelhpcheck targethp}} + + {{#^rollLess() labelhpcheck targethp}} {{#labelhpcheck}}
:{{labelhpcheck}}
BETTER...:{{labelhpgain}}
{{/labelhpcheck}} - {{/rollGreater() labelhpcheck targethp}} - {{#^rollGreater() labelhpcheck targethp}} + {{/^rollLess() labelhpcheck targethp}} + + {{#rollLess() labelhpcheck targethp}} {{#labelhpcheck}}
:{{labelhpcheck}}
NO CHANGE...
{{/labelhpcheck}} - {{/^rollGreater() labelhpcheck targethp}} + {{/rollLess() labelhpcheck targethp}} {{#rollGreater() labeldebris 3}} @@ -461,246 +463,211 @@ {{/labeldebris}} {{/^rollGreater() labeldebris 3}} - + - - {{#rollLess() targetstr 1}} - - {{#rollGreater() labelstrinc 1}} - - {{#labelstrinc}} + + {{#rollGreater() targetstr 1}} + + {{#rollLess() labelstrinc targetstr}} +
:{{labelstrinc}}
+
WORSE...Decrease by -1
+ {{/rollLess() labelstrinc targetstr}} + + {{#^rollLess() labelstrinc targetstr}} + + {{#rollLess() targetstr 6}}
:{{labelstrinc}}
-
BETTER...Increase by +1
- {{/labelstrinc}} +
BETTER...Increase by +1
+ {{/rollLess() targetstr 6}} + + {{#^rollLess() targetstr 6}} +
:{{labelstrinc}}
+
NO CHANGE...Max +6
+ {{/^rollLess() targetstr 6}} + {{/^rollLess() labelstrinc targetstr}} + {{/rollGreater() targetstr 1}} + + {{#^rollGreater() targetstr 1}} + + {{#rollGreater() labelstrinc 1}} +
:{{labelstrinc}}
+
BETTER...Increase by +1
{{/rollGreater() labelstrinc 1}} + {{#^rollGreater() labelstrinc 1}} - {{#rollGreater() labelstrinc -3}} - - {{#labelstrinc}} -
:{{labelstrinc}}
-
WORSE...Decrease by -1
- {{/labelstrinc}} - {{/rollGreater() labelstrinc -3}} - {{#^rollGreater() labelstrinc -3}} - - {{#labelstrinc}} -
:{{labelstrinc}}
-
NO CHANGE...Min -3
- {{/labelstrinc}} - {{/^rollGreater() labelstrinc -3}} + + {{#rollGreater() targetstr -3}} +
:{{labelstrinc}}
+
WORSE...Decrease by -1
+ {{/rollGreater() targetstr -3}} + + {{#^rollGreater() targetstr -3}} +
:{{labelstrinc}}
+
NO CHANGE...Min -3
+ {{/^rollGreater() targetstr -3}} {{/^rollGreater() labelstrinc 1}} - {{/rollLess() targetstr 1}} - - - {{#^rollLess() targetstr 1}} - - - {{#rollLess() labelstrinc 6}} - - {{#rollGreater() labelstrinc targetstr}} - {{#labelstrinc}} -
:{{labelstrinc}}
-
BETTER...Increase by +1
- {{/labelstrinc}} - {{/rollGreater() labelstrinc targetstr}} - - {{#^rollGreater() labelstrinc targetstr}} - {{#labelstrinc}} -
:{{labelstrinc}}
-
WORSE...Decrease by -1
- {{/labelstrinc}} - {{/^rollGreater() labelstrinc targetstr}} - {{/rollLess() labelstrinc 6}} - {{#^rollLess() labelstrinc 6}} - - {{#labelstrinc}} -
:{{labelstrinc}}
-
NO CHANGE...Max +6
- {{/labelstrinc}} - {{/^rollLess() labelstrinc 6}} - {{/^rollLess() targetstr 1}} + {{/^rollGreater() targetstr 1}} - - {{#rollLess() targetagi 1}} - - {{#rollGreater() labelagiinc 1}} - - {{#labelagiinc}} + + {{#rollGreater() targetagi 1}} + + {{#rollLess() labelagiinc targetagi}} +
:{{labelagiinc}}
+
WORSE...Decrease by -1
+ {{/rollLess() labelagiinc targetagi}} + + {{#^rollLess() labelagiinc targetagi}} + + {{#rollLess() targetagi 6}}
:{{labelagiinc}}
-
BETTER...Increase by +1
- {{/labelagiinc}} - {{/rollGreater() labelagiinc 1}} - {{#^rollGreater() labelagiinc 1}} - {{#rollGreater() labelagiinc -3}} - - {{#labelagiinc}} -
:{{labelagiinc}}
-
WORSE...Decrease by -1
- {{/labelagiinc}} - {{/rollGreater() labelagiinc -3}} - {{#^rollGreater() labelagiinc -3}} - - {{#labelagiinc}} -
:{{labelagiinc}}
-
NO CHANGE...Min -3
- {{/labelagiinc}} - {{/^rollGreater() labelagiinc -3}} - {{/^rollGreater() labelagiinc 1}} - {{/rollLess() targetagi 1}} - - - {{#^rollLess() targetagi 1}} - - - {{#rollLess() labelagiinc 6}} - - {{#rollGreater() labelagiinc targetagi}} - {{#labelagiinc}} -
:{{labelagiinc}}
-
BETTER...Increase by +1
- {{/labelagiinc}} - {{/rollGreater() labelagiinc targetagi}} - - {{#^rollGreater() labelagiinc targetagi}} - {{#labelagiinc}} -
:{{labelagiinc}}
-
WORSE...Decrease by -1
- {{/labelagiinc}} - {{/^rollGreater() labelagiinc targetagi}} - {{/rollLess() labelagiinc 6}} - {{#^rollLess() labelagiinc 6}} - - {{#labelagiinc}} +
BETTER...Increase by +1
+ {{/rollLess() targetagi 6}} + + {{#^rollLess() targetagi 6}}
:{{labelagiinc}}
NO CHANGE...Max +6
- {{/labelagiinc}} - {{/^rollLess() labelagiinc 6}} - {{/^rollLess() targetagi 1}} + {{/^rollLess() targetagi 6}} + {{/^rollLess() labelagiinc targetagi}} + {{/rollGreater() targetagi 1}} + + {{#^rollGreater() targetagi 1}} + + {{#rollGreater() labelagiinc 1}} +
:{{labelagiinc}}
+
BETTER...Increase by +1
+ {{/rollGreater() labelagiinc 1}} + + {{#^rollGreater() labelagiinc 1}} + + {{#rollGreater() targetagi -3}} +
:{{labelagiinc}}
+
WORSE...Decrease by -1
+ {{/rollGreater() targetagi -3}} + + {{#^rollGreater() targetagi -3}} +
:{{labelagiinc}}
+
NO CHANGE...Min -3
+ {{/^rollGreater() targetagi -3}} + {{/^rollGreater() labelagiinc 1}} + {{/^rollGreater() targetagi 1}} - - {{#rollLess() targetpre 1}} - - {{#rollGreater() labelpreinc 1}} - - {{#labelpreinc}} + + {{#rollGreater() targetpre 1}} + + {{#rollLess() labelpreinc targetpre}} +
:{{labelpreinc}}
+
WORSE...Decrease by -1
+ {{/rollLess() labelpreinc targetpre}} + + {{#^rollLess() labelpreinc targetpre}} + + {{#rollLess() targetpre 6}}
:{{labelpreinc}}
-
BETTER...Increase by +1
- {{/labelpreinc}} - {{/rollGreater() labelpreinc 1}} - {{#^rollGreater() labelpreinc 1}} - {{#rollGreater() labelpreinc -3}} - - {{#labelpreinc}} -
:{{labelpreinc}}
-
WORSE...Decrease by -1
- {{/labelpreinc}} - {{/rollGreater() labelpreinc -3}} - {{#^rollGreater() labelpreinc -3}} - - {{#labelpreinc}} -
:{{labelpreinc}}
-
NO CHANGE...Min -3
- {{/labelpreinc}} - {{/^rollGreater() labelpreinc -3}} - {{/^rollGreater() labelpreinc 1}} - {{/rollLess() targetpre 1}} - - - {{#^rollLess() targetpre 1}} - - - {{#rollLess() labelpreinc 6}} - - {{#rollGreater() labelpreinc targetpre}} - {{#labelpreinc}} -
:{{labelpreinc}}
-
BETTER...Increase by +1
- {{/labelpreinc}} - {{/rollGreater() labelpreinc targetpre}} - - {{#^rollGreater() labelpreinc targetpre}} - {{#labelpreinc}} -
:{{labelpreinc}}
-
WORSE...Decrease by -1
- {{/labelpreinc}} - {{/^rollGreater() labelpreinc targetpre}} - {{/rollLess() labelpreinc 6}} - {{#^rollLess() labelpreinc 6}} - - {{#labelpreinc}} +
BETTER...Increase by +1
+ {{/rollLess() targetpre 6}} + + {{#^rollLess() targetpre 6}}
:{{labelpreinc}}
NO CHANGE...Max +6
- {{/labelpreinc}} - {{/^rollLess() labelpreinc 6}} - {{/^rollLess() targetpre 1}} + {{/^rollLess() targetpre 6}} + {{/^rollLess() labelpreinc targetpre}} + {{/rollGreater() targetpre 1}} + + {{#^rollGreater() targetpre 1}} + + {{#rollGreater() labelpreinc 1}} +
:{{labelpreinc}}
+
BETTER...Increase by +1
+ {{/rollGreater() labelpreinc 1}} + + {{#^rollGreater() labelpreinc 1}} + + {{#rollGreater() targetpre -3}} +
:{{labelpreinc}}
+
WORSE...Decrease by -1
+ {{/rollGreater() targetpre -3}} + + {{#^rollGreater() targetpre -3}} +
:{{labelpreinc}}
+
NO CHANGE...Min -3
+ {{/^rollGreater() targetpre -3}} + {{/^rollGreater() labelpreinc 1}} + {{/^rollGreater() targetpre 1}} - - {{#rollLess() targettou 1}} - - {{#rollGreater() labeltouinc 1}} - - {{#labeltouinc}} + + {{#rollGreater() targettou 1}} + + {{#rollLess() labeltouinc targettou}} +
:{{labeltouinc}}
+
WORSE...Decrease by -1
+ {{/rollLess() labeltouinc targettou}} + + {{#^rollLess() labeltouinc targettou}} + + {{#rollLess() targettou 6}}
:{{labeltouinc}}
-
BETTER...Increase by +1
- {{/labeltouinc}} - {{/rollGreater() labeltouinc 1}} - {{#^rollGreater() labeltouinc 1}} - {{#rollGreater() labeltouinc -3}} - - {{#labeltouinc}} -
:{{labeltouinc}}
-
WORSE...Decrease by -1
- {{/labeltouinc}} - {{/rollGreater() labeltouinc -3}} - {{#^rollGreater() labeltouinc -3}} - - {{#labeltouinc}} -
:{{labeltouinc}}
-
NO CHANGE...Min -3
- {{/labeltouinc}} - {{/^rollGreater() labeltouinc -3}} - {{/^rollGreater() labeltouinc 1}} - {{/rollLess() targettou 1}} - - - {{#^rollLess() targettou 1}} - - - {{#rollLess() labeltouinc 6}} - - {{#rollGreater() labeltouinc targettou}} - {{#labeltouinc}} -
:{{labeltouinc}}
-
BETTER...Increase by +1
- {{/labeltouinc}} - {{/rollGreater() labeltouinc targettou}} - - {{#^rollGreater() labeltouinc targettou}} - {{#labeltouinc}} -
:{{labeltouinc}}
-
WORSE...Decrease by -1
- {{/labeltouinc}} - {{/^rollGreater() labeltouinc targettou}} - {{/rollLess() labeltouinc 6}} - {{#^rollLess() labeltouinc 6}} - - {{#labeltouinc}} +
BETTER...Increase by +1
+ {{/rollLess() targettou 6}} + + {{#^rollLess() targettou 6}}
:{{labeltouinc}}
NO CHANGE...Max +6
- {{/labeltouinc}} - {{/^rollLess() labeltouinc 6}} - {{/^rollLess() targettou 1}} + {{/^rollLess() targettou 6}} + {{/^rollLess() labeltouinc targettou}} + {{/rollGreater() targettou 1}} + + {{#^rollGreater() targettou 1}} + + {{#rollGreater() labeltouinc 1}} +
:{{labeltouinc}}
+
BETTER...Increase by +1
+ {{/rollGreater() labeltouinc 1}} + + {{#^rollGreater() labeltouinc 1}} + + {{#rollGreater() targettou -3}} +
:{{labeltouinc}}
+
WORSE...Decrease by -1
+ {{/rollGreater() targettou -3}} + + {{#^rollGreater() targettou -3}} +
:{{labeltouinc}}
+
NO CHANGE...Min -3
+ {{/^rollGreater() targettou -3}} + {{/^rollGreater() labeltouinc 1}} + {{/^rollGreater() targettou 1}} {{#allprops() name labelhpcheck labelhpgain labeldebris labelstrinc labelagiinc labelpreinc labeltouinc targethp targetstr targetagi targetpre targettou silver}} -
- {{key}} - {{value}} -
+
+ {{key}} + {{value}} +
{{/allprops() name labelhpcheck labelhpgain labeldebris labelstrinc labelagiinc labelpreinc labeltouinc targethp targetstr targetagi targetpre targettou silver}}
diff --git a/Perils & Princesses/sheet.json b/Perils & Princesses/sheet.json deleted file mode 100644 index 4970ab884d..0000000000 --- a/Perils & Princesses/sheet.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "html": "Perils.html", - "css": "Perils.css", - "authors": "Vialmada", - "preview": "Perils.png", - "roll20userid": "6040293", - "instructions": "# Perils & Princesses\n**Perils & Princesses** is an **unofficial** character sheet for Outrider Creative's TTRPG. If you have any questions or comments, please contact Vialmada.\n\n## Features\n* The Avatar Image is used for Character picture: 200px for both height and width\n* Virtue rolls have Advantage/Disadvantage/Normal options\n* Encumbrance is limited to Resolve and is tracked by checkbox ticks. An Encumbrance total appears beside the Weary Ailment and will trigger that condition when Resolve is exceeded\n* Gift Dice rolls prompt for the number of dice and declare Mishap on doubles\n* Critical Damage, doubled dice, occur when a '1' is rolled to hit", - "legacy": false -} \ No newline at end of file diff --git a/Perils & Princesses/translations/af.json b/Perils & Princesses/translations/af.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/af.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/ca.json b/Perils & Princesses/translations/ca.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/ca.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/cs.json b/Perils & Princesses/translations/cs.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/cs.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/da.json b/Perils & Princesses/translations/da.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/da.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/de.json b/Perils & Princesses/translations/de.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/de.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/el.json b/Perils & Princesses/translations/el.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/el.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/en.json b/Perils & Princesses/translations/en.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/en.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/es.json b/Perils & Princesses/translations/es.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/es.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/fi.json b/Perils & Princesses/translations/fi.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/fi.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/fr.json b/Perils & Princesses/translations/fr.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/fr.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/he.json b/Perils & Princesses/translations/he.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/he.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/hu.json b/Perils & Princesses/translations/hu.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/hu.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/it.json b/Perils & Princesses/translations/it.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/it.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/ja.json b/Perils & Princesses/translations/ja.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/ja.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/ko.json b/Perils & Princesses/translations/ko.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/ko.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/nl.json b/Perils & Princesses/translations/nl.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/nl.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/pb.json b/Perils & Princesses/translations/pb.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/pb.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/pl.json b/Perils & Princesses/translations/pl.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/pl.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/pt.json b/Perils & Princesses/translations/pt.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/pt.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/ru.json b/Perils & Princesses/translations/ru.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/ru.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/sl.json b/Perils & Princesses/translations/sl.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/sl.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/sv.json b/Perils & Princesses/translations/sv.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/sv.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/tr.json b/Perils & Princesses/translations/tr.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/tr.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/uk.json b/Perils & Princesses/translations/uk.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/uk.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/translations/zh.json b/Perils & Princesses/translations/zh.json deleted file mode 100644 index e4b4edc0ca..0000000000 --- a/Perils & Princesses/translations/zh.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "pageOne-c": "Page One", - "pageTwo-c": "Page Two", - "name-u": "NAME", - "pronouns-u": "PRONOUNS", - "fairyGodmother-u": "FAIRY GODMOTHER", - "myStuff-u": "MY STUFF", - "virtues-c": "Virtues", - "resolve-u": "RESOLVE", - "grace-u": "GRACE", - "wits-u": "WITS", - "armor-u": "ARMOUR", - "heartPoints-u": "HEART POINTS", - "max-u": "MAX", - "current-u": "CURRENT", - "heartDice-c": "Heart Dice", - "weapon-u": "WEAPON", - "dmgDice-u": "DMG DICE", - "melee (resolve)-c": "Melee (Resolve)", - "range (grace)-c": "Range (Grace)", - "money-c": "Money", - "talents-u": "TALENTS", - "giftDice-c": "Gift Dice:", - "myGift-u": "MY GIFT:", - "myLevel-u": "MY LEVEL:", - "innateAbilities-u": "INNATE ABILITIES", - "specialAbilities-u": "SPECIAL ABILITIES", - "specialAbilities1-c": "Special Abilities: Level 1", - "specialAbilities2-c": "Special Abilities: Level 2", - "specialAbilities3-c": "Special Abilities: Level 3", - "specialAbilities4-c": "Special Abilities: Level 4", - "level-c": "Level ", - "cursesInjuries-c": "Curses & Injures", - "ailment-c": "Ailment", - "weary-u": "WEARY", - "wearyResolve": "WEARY (Resolve)", - "woozy-u": "WOOZY", - "woozyGrace": "WOOZY (Grace)", - "befuddled-u": "BEFUDDLED", - "befuddledWits": "BEFUDDLED (Wits)", - "trauma-c": "Trauma:", - "encumbrance-c": "Encumbrance", - "advantageCancelsAilment:-c": "Advantage Cancels Ailment:", - "noDoubleDisadvantageFor-c": "No Double Disadvantage for ", - "check:-c": "Check: ", - "for-c": " for ", - "target:-c": "Target: ", - "total:-c": "Total: ", - "normal:-c": "Normal: ", - "advantage:-c": "Advantage: ", - "disadvantage:-c": "Disadvantage: ", - "virtue:-c": "Virtue: ", - "ailment:-c": "Ailment: ", - "ailmentRoll:-c": "Ailment Roll: ", - "ailmentCaused:-c": "Ailment Caused: ", - "result:-c": "Result: ", - "success!-c": "Success!", - "failure-c": "Failure", - "fumble!-c": "Fumble", - "damage:-c": "Damage: ", - "criticalDamage:-u": "CRITICAL DAMAGE: ", - "possibleDamage-c": "Possible Damage", - "giftDice:-c": "Gift Dice:", - "clickToRollGiftDice-c": "Click To Roll Gift Dice", - "mishap!:-c": "Mishap!: ", - "": "" -} \ No newline at end of file diff --git a/Perils & Princesses/Graphics/perilArmor.png b/Perils and Princesses/Graphics/perilArmor.png similarity index 100% rename from Perils & Princesses/Graphics/perilArmor.png rename to Perils and Princesses/Graphics/perilArmor.png diff --git a/Perils & Princesses/Graphics/perilBanner.png b/Perils and Princesses/Graphics/perilBanner.png similarity index 100% rename from Perils & Princesses/Graphics/perilBanner.png rename to Perils and Princesses/Graphics/perilBanner.png diff --git a/Perils & Princesses/Graphics/perilFlowerBorder.jpg b/Perils and Princesses/Graphics/perilFlowerBorder.jpg similarity index 100% rename from Perils & Princesses/Graphics/perilFlowerBorder.jpg rename to Perils and Princesses/Graphics/perilFlowerBorder.jpg diff --git a/Perils & Princesses/Graphics/perilFrame.png b/Perils and Princesses/Graphics/perilFrame.png similarity index 100% rename from Perils & Princesses/Graphics/perilFrame.png rename to Perils and Princesses/Graphics/perilFrame.png diff --git a/Perils & Princesses/Graphics/perilHeart.png b/Perils and Princesses/Graphics/perilHeart.png similarity index 100% rename from Perils & Princesses/Graphics/perilHeart.png rename to Perils and Princesses/Graphics/perilHeart.png diff --git a/Perils & Princesses/Graphics/perilLace1.png b/Perils and Princesses/Graphics/perilLace1.png similarity index 100% rename from Perils & Princesses/Graphics/perilLace1.png rename to Perils and Princesses/Graphics/perilLace1.png diff --git a/Perils & Princesses/Graphics/perilLace2.png b/Perils and Princesses/Graphics/perilLace2.png similarity index 100% rename from Perils & Princesses/Graphics/perilLace2.png rename to Perils and Princesses/Graphics/perilLace2.png diff --git a/Perils & Princesses/Graphics/perilLace3.png b/Perils and Princesses/Graphics/perilLace3.png similarity index 100% rename from Perils & Princesses/Graphics/perilLace3.png rename to Perils and Princesses/Graphics/perilLace3.png diff --git a/Perils & Princesses/Graphics/perilSword.png b/Perils and Princesses/Graphics/perilSword.png similarity index 100% rename from Perils & Princesses/Graphics/perilSword.png rename to Perils and Princesses/Graphics/perilSword.png diff --git a/Perils & Princesses/Graphics/perilTrauma.png b/Perils and Princesses/Graphics/perilTrauma.png similarity index 100% rename from Perils & Princesses/Graphics/perilTrauma.png rename to Perils and Princesses/Graphics/perilTrauma.png diff --git a/Perils & Princesses/Graphics/perilTriangles.png b/Perils and Princesses/Graphics/perilTriangles.png similarity index 100% rename from Perils & Princesses/Graphics/perilTriangles.png rename to Perils and Princesses/Graphics/perilTriangles.png diff --git a/Perils & Princesses/Perils.css b/Perils and Princesses/Perils.css similarity index 100% rename from Perils & Princesses/Perils.css rename to Perils and Princesses/Perils.css diff --git a/Perils & Princesses/Perils.html b/Perils and Princesses/Perils.html similarity index 97% rename from Perils & Princesses/Perils.html rename to Perils and Princesses/Perils.html index 7cbcaf87d5..399f9d0b31 100644 --- a/Perils & Princesses/Perils.html +++ b/Perils and Princesses/Perils.html @@ -12,7 +12,7 @@
- +
@@ -56,7 +56,7 @@
- + @@ -78,7 +78,7 @@
- +
@@ -97,7 +97,7 @@
- +
@@ -201,7 +201,7 @@
- +
@@ -258,10 +258,10 @@
- + - +
@@ -278,9 +278,9 @@ --> - - - + + +
@@ -309,9 +309,9 @@
- + - +
@@ -362,13 +362,13 @@
- + - + - +
diff --git a/Perils & Princesses/Perils.png b/Perils and Princesses/Perils.png similarity index 100% rename from Perils & Princesses/Perils.png rename to Perils and Princesses/Perils.png diff --git a/Perils and Princesses/sheet.json b/Perils and Princesses/sheet.json new file mode 100644 index 0000000000..b02f33de26 --- /dev/null +++ b/Perils and Princesses/sheet.json @@ -0,0 +1,9 @@ +{ + "html": "Perils.html", + "css": "Perils.css", + "authors": "Vialmada", + "preview": "Perils.png", + "roll20userid": "6040293", + "instructions": "# Perils and Princesses\n**Perils and Princesses** is an **unofficial** character sheet for Outrider Creative's TTRPG. If you have any questions or comments, please contact Vialmada.\n\n## Features\n* The Avatar Image is used for Character picture: 200px for both height and width\n* Virtue rolls have Advantage/Disadvantage/Normal options\n* Encumbrance is limited to Resolve and is tracked by checkbox ticks. An Encumbrance total appears beside the Weary Ailment and will trigger that condition when Resolve is exceeded\n* Gift Dice rolls prompt for the number of dice and declare Mishap on doubles\n* Critical Damage, doubled dice, occur when a '1' is rolled to hit", + "legacy": false +} \ No newline at end of file diff --git a/Perils & Princesses/translation.json b/Perils and Princesses/translation.json similarity index 100% rename from Perils & Princesses/translation.json rename to Perils and Princesses/translation.json diff --git a/RolemasterUnified_Official/preview.png b/RolemasterUnified_Official/preview.png index e5c74adaba..ec440fb2e7 100644 Binary files a/RolemasterUnified_Official/preview.png and b/RolemasterUnified_Official/preview.png differ diff --git a/RolemasterUnified_Official/rolemasterunified.css b/RolemasterUnified_Official/rolemasterunified.css index a0551de913..696081c853 100644 --- a/RolemasterUnified_Official/rolemasterunified.css +++ b/RolemasterUnified_Official/rolemasterunified.css @@ -457,7 +457,7 @@ input:checked.toggle + .toggler + .toggleroff { display: none; } .stat_info { display: none; position: absolute; - z-index: 100; + z-index: 10000; font-family: 'Caveat', 'Shadows Into Light', 'Caveat', cursive; font-variant-numeric: tabular-nums; border: 3px solid rgb(20,21,22); @@ -479,7 +479,7 @@ input:checked.toggle + .toggler + .toggleroff { display: none; } display: none; position: absolute; top:0; - z-index: 100; + z-index: 10000; top: 2em; font-family: 'Caveat', 'Shadows Into Light', 'Caveat', cursive; font-variant-numeric: tabular-nums; @@ -572,7 +572,7 @@ div.foe { bottom: 0; background: rgba(0,0,20,0.7); transition: opacity 100ms; - z-index:100; + z-index:10000; margin: 2px; } @@ -591,7 +591,7 @@ div.foe { border: solid 3px black; overflow-y: scroll; - z-index:200; + z-index:10000; } .overlay-skillchange { @@ -602,7 +602,7 @@ div.foe { bottom: 0; background: rgba(20,0,20,0.7); transition: opacity 100ms; - z-index:300; + z-index:10000; } .sheet-toggle-skillchange[value="false"] ~ .overlay-skillchange { @@ -618,7 +618,7 @@ div.foe { border-radius: 5px; border: solid 3px black; - z-index:400; + z-index:10000; } @@ -630,7 +630,7 @@ div.foe { bottom: 0; background: rgba(20,0,20,0.7); transition: opacity 100ms; - z-index:300; + z-index:10000; } .toggle-editbox[value="false"] ~ .overlay-editbox { @@ -646,7 +646,7 @@ div.foe { border-radius: 5px; border: solid 3px black; - z-index:400; + z-index:10000; } /* Title of the edit box toggle to edit */ diff --git a/RolemasterUnified_Official/rolemasterunified.html b/RolemasterUnified_Official/rolemasterunified.html index 1fdfb5a768..602d7e3c16 100644 --- a/RolemasterUnified_Official/rolemasterunified.html +++ b/RolemasterUnified_Official/rolemasterunified.html @@ -3402,35 +3402,35 @@ Lists Selected / 6

Statistics

-
y -agilityag +
agilityag
-
y -constitutionco +
constitutionco
-
y -empathyem +
empathyem
-
y -intuitionin +
intuitionin
-
y -memoryme +
memoryme
-
y -presencepr +
presencepr
-
y -quicknessqu +
quicknessqu
-
y -reasoningre +
reasoningre
-
y -selfdisciplinesd +
selfdisciplinesd
-
y -strengthst +
strengthst
@@ -6559,7 +6559,7 @@ Sheet Version:
-Revision d1fa0cd182ccb30369359a6669cdec2e5abfc14d +Revision e4295d24baee7bde9d32235b4c46b457402d3f3b
diff --git a/RolemasterUnified_Official/sheet.json b/RolemasterUnified_Official/sheet.json index 108737eb5e..f02b06d6ec 100644 --- a/RolemasterUnified_Official/sheet.json +++ b/RolemasterUnified_Official/sheet.json @@ -10,15 +10,15 @@ "compendium": "RMU", "useroptions": [ { - "attribute": "option_usetokenmarkers", + "attribute": "attr_option_usetokenmarkers", "displayname": "Use Token Markeres", "displaytranslationkey": "option_usetokenmarkers", "type": "select", "options": [ - "no|No token marker updates", - "pc|Token Markers on PC sheets", - "npc|Token Markers on NPC/Creature sheets", - "all|Token Markers on all sheets" + "No token marker updates|no", + "Token Markers on PC sheets|pc", + "Token Markers on NPC/Creature sheets|npc", + "Token Markers on all sheets|all" ], "default": "no", "description": "Show token makers for character state on the token. Covers stun, bleed and similar states. Requires Token Mod to be installed (and hence a Pro account)." @@ -29,12 +29,12 @@ "displaytranslationkey": "option_usefx", "type": "select", "options": [ - "no|No FX", - "all|All Supported FX" + "No FX|no", + "All Supported FX|all" ], "default": "all", "description": "Show FX when available based on the sheets guess of the attack" } ], - "version": "1757999780" + "version": "1758176124" } diff --git a/RolemasterUnified_Official/updates.md b/RolemasterUnified_Official/updates.md index a499235c21..01b9ae32ff 100644 --- a/RolemasterUnified_Official/updates.md +++ b/RolemasterUnified_Official/updates.md @@ -1,3 +1,10 @@ +# 2025-09-18 + +- Fix stacking of the overlays +- Show token marker otpsions corrently +- Fix edit stats +- Updated preview image. + # 2025-09-16 - First version of token markers diff --git a/approved.yaml b/approved.yaml index 34e76557d5..dc98172c8f 100644 --- a/approved.yaml +++ b/approved.yaml @@ -5560,7 +5560,7 @@ ageofvikings: - Age of Vikings - Basic Role-Playing perilsnprincess: -- Perils & Princesses +- Perils and Princesses - Perils & Princesses - Perils & Princesses madredaofficial: @@ -5632,6 +5632,15 @@ mythcraftofficial: - MythCraft by QuasiReal - MythCraft - publisher +d6ppmodofficial: +- D6pp_Modern +- D6++ Modern by MmpApps Corp +- D6++ +- publisher +grimwild: +- Grimwild +- Grimwild +- MOXIE # shortname: #- folder_name #- Long Name