Merge pull request #8371 from clevett/pendragon2.2

Pendragon 5th Edition 2.2
This commit is contained in:
Miguel Peres
2021-03-01 21:07:51 -03:00
committed by GitHub
23 changed files with 1629 additions and 680 deletions
+208 -117
View File
@@ -39,7 +39,7 @@ fieldset {
h1 {
color: #226aae;
text-transform: capitalize;
font-family: 'El Messiri', sans-serif;
font-family: "El Messiri", sans-serif;
padding: 1% 2%;
font-size: 1.9em; }
@@ -55,8 +55,8 @@ h2 {
margin-left: 3%; }
h3 {
font-size: 1.25em;
line-height: 36px;
font-size: 0.9em;
line-height: 18px;
text-transform: capitalize; }
input[type="text"], input[type="number"] {
@@ -72,7 +72,7 @@ input[type="text"], input[type="number"] {
background-color: #fefcea;
border: 0.1em dotted #226aae; }
input[type='number'] {
input[type="number"] {
text-align: center;
width: 100% !important; }
@@ -110,7 +110,7 @@ textarea {
overflow: scroll; }
.charsheet {
width: 800px; }
width: 825px; }
.charsheet div.sheet-row {
margin-bottom: 0px; }
@@ -121,7 +121,8 @@ div.sheet-grid {
grid-column-gap: 1%;
grid-row-gap: 0.5%; }
div.sheet-tabs div.sheet-col, div.sheet-npc div.sheet-row, div.sheet-character div.sheet-row, div.sheet-character div.sheet-col, div.sheet-entourage div.sheet-col, div.sheet-entourage div.sheet-row, div.sheet-holdings div.sheet-row, div.sheet-holdings div.sheet-col, div.sheet-feast-record div.sheet-row, div.sheet-feast-record div.sheet-col,
div.sheet-tabs div.sheet-col, div.sheet-npc div.sheet-row, div.sheet-character div.sheet-row, div.sheet-character div.sheet-col, div.sheet-entourage div.sheet-col, div.sheet-entourage div.sheet-row, div.sheet-holdings div.sheet-row, div.sheet-holdings div.sheet-col, div.sheet-feast-record div.sheet-row,
div.sheet-feast-record div.sheet-col,
div.sheet-gamemaster-characters div.sheet-row,
div.sheet-gamemaster-characters div.sheet-col {
display: inline-grid;
@@ -152,6 +153,11 @@ div.sheet-background {
.sheet-text-right {
text-align: right; }
.sheet-flex-center {
display: flex;
align-items: center;
justify-content: center; }
.sheet-font-weight-bold {
font-weight: bold; }
@@ -191,6 +197,9 @@ div.sheet-2autocolumn {
div.sheet-3autocolumn {
grid-template-columns: auto 1fr 10%; }
div.sheet-4autocolumn {
grid-template-columns: auto 1fr auto 1fr; }
div.sheet-col-3 {
grid-template-columns: 1fr 3.5em 10%; }
@@ -217,6 +226,9 @@ span.sheet-display {
div.sheet-repeating-container button {
font-variant: none; }
.sheet-mt {
margin-top: 2%; }
/* STYLED CHECKBOXES
============================= */
label.sheet-styled-checkbox {
@@ -476,6 +488,71 @@ div.sheet-gamemaster-characters div.sheet-sub-header {
div.sheet-gamemaster-characters div.sheet-repeating-row {
padding-bottom: 1%; }
/* MANORS
============================= */
div.sheet-treasure-record .repitem,
div.sheet-income-worksheet .repitem,
div.sheet-land-record .repitem {
margin-bottom: 2%; }
div.sheet-treasure-record h2,
div.sheet-income-worksheet h2,
div.sheet-land-record h2 {
justify-content: center; }
div.sheet-treasure-record input[type="text"],
div.sheet-income-worksheet input[type="text"],
div.sheet-land-record input[type="text"] {
text-align: center; }
div.sheet-treasure-record div.sheet-total,
div.sheet-income-worksheet div.sheet-total,
div.sheet-land-record div.sheet-total {
background-color: rgba(77, 77, 77, 0.0784314);
min-height: 25px;
width: 100%; }
div.sheet-treasure-record div.sheet-border,
div.sheet-income-worksheet div.sheet-border,
div.sheet-land-record div.sheet-border {
padding: 8px 5px; }
div.sheet-treasure-record div.sheet-sub-header,
div.sheet-treasure-record div.sheet-repeating-container div.sheet-grid {
grid-template-columns: 5em 10em 1fr 10em 5em;
grid-row-gap: 2%; }
div.sheet-income-worksheet div.sheet-sub-header,
div.sheet-income-worksheet div.sheet-repeating-container div.sheet-grid-rows {
grid-template-columns: 5em 3fr 4fr 2fr 3fr;
grid-row-gap: 2%; }
div.sheet-income-worksheet div.sheet-sub-header button[type="roll"],
div.sheet-income-worksheet div.sheet-repeating-container div.sheet-grid-rows button[type="roll"] {
font-size: 1em;
font-weight: bold;
margin-top: -8px !important; }
div.sheet-income-worksheet div.sheet-group {
border-left: 2px solid black;
padding: 0px 5px; }
div.sheet-income-worksheet div.sheet-landholding {
margin-top: 5%; }
div.sheet-income-worksheet div.sheet-expenses {
grid-template-columns: repeat(5, 1fr 1em); }
div.sheet-land-record {
grid-template-columns: 70% 30%; }
div.sheet-land-record div.sheet-headers {
grid-template-columns: 2fr 3fr; }
div.sheet-land-record div.sheet-repeating-container div.sheet-first-row {
grid-template-columns: auto 2.5em auto 1fr auto 2.5em auto 2.5em; }
div.sheet-land-record div.sheet-retinue {
min-height: 180px; }
div.sheet-land-record div.sheet-retinue div.sheet-grid {
grid-template-columns: 1fr repeat(3, 2.5em); }
/* SETTINGS
============================= */
div.sheet-settings h1 {
@@ -499,104 +576,116 @@ div.sheet-footer {
/* SHOW & HIDE SHEETS
============================= */
input[name='attr_sheet_type']:not([value='character']) ~ div.sheet-character,
input[name='attr_settings_toggle'][value='settings'] ~ div.sheet-character, input[name='attr_sheet_type']:not([value='holdings']) ~ div.sheet-holdings,
input[name='attr_settings_toggle'][value='settings'] ~ div.sheet-holdings, input[name='attr_sheet_type']:not([value='feast record']) ~ div.sheet-feast-record,
input[name='attr_settings_toggle'][value='settings'] ~ div.sheet-feast-record, input[name='attr_sheet_type']:not([value='gamemaster characters']) ~ div.sheet-gamemaster-characters,
input[name='attr_settings_toggle'][value='settings'] ~ div.sheet-gamemaster-characters, input[name='attr_sheet_type']:not([value='npc']) ~ div.sheet-npc,
input[name='attr_settings_toggle'][value='settings'] ~ div.sheet-npc, input[name='attr_sheet_type']:not([value='entourage']) ~ div.sheet-entourage,
input[name='attr_settings_toggle'][value='settings'] ~ div.sheet-entourage, input[name='attr_sheet_type'][value='character'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='holdings'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='entourage'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='feast record'] ~ div.sheet-tabs div.sheet-type label.sheet-character, input[name='attr_sheet_type'][value='gamemaster characters'] ~ div.sheet-tabs div.sheet-type label.sheet-character, input[name='attr_sheet_type'][value='feast'] ~ div.sheet-tabs select[name='attr_character_type'], input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-personal-data div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-equipment-carried .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-skills .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-squire .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-combat-skills .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-horse div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheeet-family-history div.sheet-row,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-col .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-personal-data div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-equipment-carried .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-skills .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-squire .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-combat-skills .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-horse div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheeet-family-history div.sheet-row,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-col .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-personal-data div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-equipment-carried .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-skills .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-squire .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-combat-skills .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-horse div.sheet-row .sheet-knight,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheeet-family-history div.sheet-row,
input[name='attr_character_type']:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-col .sheet-knight, input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-personal-data div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-equipment-carried .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-skills .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-squire .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-combat-skills .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-horse div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheeet-family-history div.sheet-row,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-col .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-personal-data div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-equipment-carried .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-skills .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-squire .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-combat-skills .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-horse div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheeet-family-history div.sheet-row,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-col .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-personal-data div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-equipment-carried .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-skills .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-squire .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-combat-skills .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-horse div.sheet-row .sheet-woman,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheeet-family-history div.sheet-row,
input[name='attr_character_type']:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-col .sheet-woman, input[name='attr_settings_toggle']:not([value='settings']) ~ div.sheet-settings {
input[name="attr_sheet_type"]:not([value="character"]) ~ div.sheet-character,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-character, input[name="attr_sheet_type"]:not([value="holdings"]) ~ div.sheet-holdings,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-holdings, input[name="attr_sheet_type"]:not([value="feast record"]) ~ div.sheet-feast-record,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-feast-record, input[name="attr_sheet_type"]:not([value="gamemaster characters"]) ~ div.sheet-gamemaster-characters,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-gamemaster-characters, input[name="attr_sheet_type"]:not([value="npc"]) ~ div.sheet-npc,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-npc, input[name="attr_sheet_type"]:not([value="entourage"]) ~ div.sheet-entourage,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-entourage, input[name="attr_sheet_type"]:not([value="treasure record"]) ~ div.sheet-treasure-record,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-treasure-record, input[name="attr_sheet_type"]:not([value="income worksheet"]) ~ div.sheet-income-worksheet,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-income-worksheet, input[name="attr_sheet_type"]:not([value="land record"]) ~ div.sheet-land-record,
input[name="attr_settings_toggle"][value="settings"] ~ div.sheet-land-record, input[name='attr_sheet_type'][value='character'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='character'] ~ div.sheet-tabs div.sheet-type label.sheet-manor, input[name='attr_sheet_type'][value='holdings'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='holdings'] ~ div.sheet-tabs div.sheet-type label.sheet-manor, input[name='attr_sheet_type'][value='entourage'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='entourage'] ~ div.sheet-tabs div.sheet-type label.sheet-manor, input[name='attr_sheet_type'][value='feast record'] ~ div.sheet-tabs div.sheet-type label.sheet-character, input[name='attr_sheet_type'][value='feast record'] ~ div.sheet-tabs div.sheet-type label.sheet-manor, input[name='attr_sheet_type'][value='gamemaster characters'] ~ div.sheet-tabs div.sheet-type label.sheet-character, input[name='attr_sheet_type'][value='gamemaster characters'] ~ div.sheet-tabs div.sheet-type label.sheet-manor, input[name='attr_sheet_type'][value='treasure record'] ~ div.sheet-tabs div.sheet-type label.sheet-character, input[name='attr_sheet_type'][value='treasure record'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='income worksheet'] ~ div.sheet-tabs div.sheet-type label.sheet-character, input[name='attr_sheet_type'][value='income worksheet'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name='attr_sheet_type'][value='land record'] ~ div.sheet-tabs div.sheet-type label.sheet-character, input[name='attr_sheet_type'][value='land record'] ~ div.sheet-tabs div.sheet-type label.sheet-feast, input[name="attr_sheet_type"][value="feast"] ~ div.sheet-tabs select[name="attr_character_type"], input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-personal-data div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-equipment-carried .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-skills .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-squire .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-combat-skills .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-horse div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheeet-family-history div.sheet-row,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-character div.sheet-col div.sheet-col .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-personal-data div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-equipment-carried .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-skills .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-squire .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-combat-skills .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-horse div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheeet-family-history div.sheet-row,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-holdings div.sheet-col div.sheet-col .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-personal-data div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-equipment-carried .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-skills .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-squire .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-combat-skills .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-horse div.sheet-row .sheet-knight,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheeet-family-history div.sheet-row,
input[name="attr_character_type"]:not([value="knight"]) ~ div.sheet-entourage div.sheet-row div.sheet-col .sheet-knight, input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-personal-data div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-equipment-carried .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-skills .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-squire .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-combat-skills .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-horse div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheeet-family-history div.sheet-row,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-character div.sheet-col div.sheet-col .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-personal-data div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-personality-traits div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-equipment-carried .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-skills .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-squire .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-combat-skills .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-horse div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheeet-family-history div.sheet-row,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-holdings div.sheet-col div.sheet-col .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-personal-data div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-personality-traits div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-equipment-carried .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-skills .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-squire .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-combat-skills .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-horse div.sheet-row .sheet-woman,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheeet-family-history div.sheet-row,
input[name="attr_character_type"]:not([value="woman"]) ~ div.sheet-entourage div.sheet-row div.sheet-col .sheet-woman, input[name="attr_settings_toggle"]:not([value="settings"]) ~ div.sheet-settings {
display: none; }
div.sheet-character, div.sheet-holdings, div.sheet-feast-record, div.sheet-gamemaster-characters, div.sheet-npc, div.sheet-entourage, div.sheet-settings {
div.sheet-character, div.sheet-holdings, div.sheet-feast-record, div.sheet-gamemaster-characters, div.sheet-npc, div.sheet-entourage, div.sheet-treasure-record, div.sheet-income-worksheet, div.sheet-land-record, div.sheet-settings {
display: inline-grid; }
input[name='attr_sheet_type'][value='character'] ~ div.sheet-tabs div.sheet-type {
input[name="attr_sheet_type"][value="character"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(4, 1fr); }
input[name='attr_sheet_type'][value='holdings'] ~ div.sheet-tabs div.sheet-type {
input[name="attr_sheet_type"][value="holdings"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(4, 1fr); }
input[name='attr_sheet_type'][value='entourage'] ~ div.sheet-tabs div.sheet-type {
input[name="attr_sheet_type"][value="entourage"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(4, 1fr); }
input[name='attr_sheet_type'][value='feast record'] ~ div.sheet-tabs div.sheet-type {
input[name="attr_sheet_type"][value="feast record"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(3, 1fr); }
input[name='attr_sheet_type'][value='gamemaster characters'] ~ div.sheet-tabs div.sheet-type {
input[name="attr_sheet_type"][value="gamemaster characters"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(3, 1fr); }
input[name='attr_sheet_type'][value='npc'] ~ div.sheet-tabs div.sheet-type {
input[name="attr_sheet_type"][value="treasure record"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(3, 1fr); }
input[name="attr_sheet_type"][value="income worksheet"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(3, 1fr); }
input[name="attr_sheet_type"][value="land record"] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(3, 1fr); }
input[name="attr_sheet_type"][value="npc"] ~ div.sheet-tabs div.sheet-type {
visibility: hidden; }
/* SWITCH
@@ -656,14 +745,15 @@ input:checked + .sheet-slider:before {
border-radius: 0.3em;
box-shadow: inset 0px 0px 3px 1px #226aae;
text-align: center;
font-family: 'fantasy';
font-family: "fantasy";
/* DICE ROLL STYLES
----------------------------- */ }
.sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult.fullfail,
.sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult.fullcrit,
.sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult.importantroll {
border: none; }
.sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult.fullfail, .sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult.fullcrit {
.sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult.fullfail,
.sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult.fullcrit {
color: #226aae; }
.sheet-rolltemplate-rolls div.sheet-template-container .inlinerollresult {
background-color: transparent;
@@ -678,43 +768,44 @@ input:checked + .sheet-slider:before {
padding: 3% 2%;
text-transform: capitalize;
margin-top: 0px; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body {
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-row {
background-color: whitesmoke; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-row:nth-child(2n+0) {
background-color: #fefcea; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-row span.sheet-inlinerollresult {
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-row span.sheet-inlinerollresult {
color: #226aae;
font-size: 2em;
font-weight: bold;
cursor: help;
padding: 0 3px 0 3px;
font-weight: bold; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-row span.sheet-percent, .sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-row span.sheet-template-desc {
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-row span.sheet-percent, .sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-row span.sheet-template-desc {
color: #226aae;
font-size: 1em; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-damage {
background-color: #fff;
padding: 3% 2%; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-roll {
display: inline-grid;
grid-template-columns: 1fr 1fr;
width: 100%; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-roll div.sheet-template-col {
padding: 5%; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-roll div.sheet-template-col:nth-of-type(2) {
border-left: 2px solid black; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-roll div.sheet-template-col span {
display: block; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-body div.sheet-template-roll div.sheet-template-col span:last-child {
margin-top: 5%; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-damage {
background-color: #fff;
padding: 3% 2%; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-result-row {
grid-column: 1 / 3; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-roll {
display: inline-grid;
grid-template-columns: 1fr 1fr;
width: 100%; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-roll div.sheet-template-col {
padding: 5%; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-roll div.sheet-template-col:nth-of-type(2) {
border-left: 2px solid black; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-roll div.sheet-template-col span {
display: block; }
.sheet-rolltemplate-rolls div.sheet-template-container div.sheet-template-roll div.sheet-template-col span:last-child {
margin-top: 5%; }
.sheet-rolltemplate-rolls div.sheet-template-rollResult {
.sheet-rolltemplate-rolls div.sheet-rollResult {
padding: 5px;
background-color: white;
text-align: center;
border: solid black;
border-width: 0 2px 2px 2px;
font-size: large; }
font-size: large;
border-top: 2px solid black; }
.sheet-rolltemplate-rolls div.sheet-season {
padding-top: 2%; }
/* REPEATING SECTIONS
----------------------------- */
File diff suppressed because one or more lines are too long
+6 -1
View File
@@ -1,5 +1,5 @@
//- Semantic Versioning MAJOR.MINORPATCH
input(name='attr_version' type='hidden' value='2.11')
input(name='attr_version' type='hidden' value='2.2')
//- Do not manually change this. Hidden attribute used by versioning script
input(name='attr_latest_versioning_upgrade' type='hidden' value='1')
@@ -26,6 +26,9 @@ input(name='attr_character_type' type='hidden' value='knight')
each val in ['feast record', 'gamemaster characters']
- const defaultSelected = val === 'feast record' ? true : false
+tabButtons(val, 'feast', defaultSelected)
each val in ['treasure record', 'income worksheet', 'land record']
- const defaultSelected = val === 'treasure record' ? true : false
+tabButtons(val, 'manor', defaultSelected)
.col.settings.grid
label(data-i18n-title=`sheet: settings`)
@@ -46,6 +49,8 @@ include src/pug/pages/holdings.pug
include src/pug/pages/feast.pug
include src/pug/pages/manor.pug
include src/pug/pages/settings.pug
//-FOOTER
+47 -47
View File
@@ -1,102 +1,102 @@
// COLORS
// ============================= *
$primary: #226aae;
$secondary : #ffd7001f;
$light : #fefcea;
$dark : hsl(0, 6%, 0%);
$dark-font: #000;
$gray : #4c4c4c;
$transparentGray: hsla(0, 0%, 30%, 0.0784313725490196);
$white : hsl(0, 0%, 96%);
$transparentWhite: #f5f5f57a;
$gold: #ffd70066;
$box-shadow: 2px 2px 3px 1px #4c4c4c;
$primary: #226aae;
$secondary: #ffd7001f;
$light: #fefcea;
$dark: hsl(0, 6%, 0%);
$dark-font: #000;
$gray: #4c4c4c;
$transparentGray: hsla(0, 0%, 30%, 0.0784313725490196);
$white: hsl(0, 0%, 96%);
$transparentWhite: #f5f5f57a;
$gold: #ffd70066;
$box-shadow: 2px 2px 3px 1px #4c4c4c;
/* Mixins
============================= */
@import './src/scss/abstracts/mixins';
@import "./src/scss/abstracts/mixins";
/* GLOBALS
============================= */
@import url('https://fonts.googleapis.com/css?family=El+Messiri:wght@500&display=swap');
@import './src/scss/base/globals';
@import url("https://fonts.googleapis.com/css?family=El+Messiri:wght@500&display=swap");
@import "./src/scss/base/globals";
/* GRID
============================= */
div.sheet-grid {
display: inline-grid;
grid-column-gap: 1%;
grid-row-gap: 0.5%;
}
============================= */
div.sheet-grid {
display: inline-grid;
grid-column-gap: 1%;
grid-row-gap: 0.5%;
}
%gridRowCol {
display: inline-grid;
overflow: hidden;
grid-auto-rows: min-content;
grid-column-gap: 1%;
}
%gridRowCol {
display: inline-grid;
overflow: hidden;
grid-auto-rows: min-content;
grid-column-gap: 1%;
}
/* GENERIC CLASSES
============================= */
@import './src/scss/base/generic';
@import "./src/scss/base/generic";
/* STYLED CHECKBOXES
============================= */
@import './src/scss/components/checkboxes';
@import "./src/scss/components/checkboxes";
/* TABS
============================= */
@import './src/scss/tabs';
@import "./src/scss/tabs";
/* NPC
============================= */
@import './src/scss/pages/npc.scss';
@import "./src/scss/pages/npc.scss";
/* PC
============================= */
@import './src/scss/pages/character.scss';
@import "./src/scss/pages/character.scss";
/* ENTOURAGE
============================= */
@import './src/scss/pages/entourage.scss';
@import "./src/scss/pages/entourage.scss";
/* HOLDINGS
============================= */
@import './src/scss/pages/holdings.scss';
@import "./src/scss/pages/holdings.scss";
/* GAMEMASTER FEAST RECORD
============================= */
@import './src/scss/pages/feast.scss';
@import "./src/scss/pages/feast.scss";
/* MANORS
============================= */
@import "./src/scss/pages/manor.scss";
/* SETTINGS
============================= */
@import './src/scss/pages/settings';
@import "./src/scss/pages/settings";
/* FOOTER
============================= */
@import './src/scss/footer';
@import "./src/scss/footer";
/* SHOW & HIDE SHEETS
============================= */
@import './src/scss/layout/show_hide.scss';
@import "./src/scss/layout/show_hide.scss";
/* SWITCH
============================= */
@import './src/scss/components/switch';
@import "./src/scss/components/switch";
/* ROLL TEMPLATE STYLE
----------------------------- */
@import './src/scss/vendor/rolltemplate';
@import "./src/scss/vendor/rolltemplate";
/* REPEATING SECTIONS
----------------------------- */
div.sheet-repeating-container {
margin-top: 2%;
margin-top: 2%;
}
.itemcontrol .repcontrol_del {
@@ -105,5 +105,5 @@ div.sheet-repeating-container {
}
.repitem:nth-of-type(even) {
background-color: $transparentGray;
}
background-color: $transparentGray;
}
+35 -6
View File
@@ -1,27 +1,56 @@
attributes.movement.forEach(attr => {
on(`change:${attr}`, eventinfo => attributeSumDivide(attributes.movement, 'movement_rate'));
on(`change:${attr}`, () => attributeSumDivide(attributes.movement, 'movement_rate'));
})
attributes.damage.forEach(attr => {
on(`change:${attr}`, eventinfo => attributeSumDivide(attributes.damage, 'damage'));
on(`change:${attr}`, () => attributeSumDivide(attributes.damage, 'damage'));
})
attributes.healing.forEach(attr => {
on(`change:${attr}`, eventinfo => attributeSumDivide(attributes.healing, 'healing_rate'));
on(`change:${attr}`, () => attributeSumDivide(attributes.healing, 'healing_rate'));
})
attributes.hp.forEach(attr => {
on(`change:${attr}`, eventinfo => sumOfCalculator(attributes.hp, 'total_hit_points'));
on(`change:${attr}`, () => sumOfCalculator(attributes.hp, 'total_hit_points'));
})
attributes.unconcious.forEach(attr => {
on(`change:${attr}`, eventinfo => unconciousCalculator(attributes.unconcious, 'unconcious'));
on(`change:${attr}`, () => unconciousCalculator(attributes.unconcious, 'unconcious'));
})
attributes.knights.forEach(attr => {
on(`change:${attr}`, eventinfo => sumOfCalculator(attributes.knights, 'total_family_knights'));
on(`change:${attr}`, () => sumOfCalculator(attributes.knights, 'total_family_knights'));
})
on(`change:sheet_select`, eventinfo => sheetSelect(eventinfo))
on(`change:repeating_events:new_glory`, (eventinfo) => calculateGlory(eventinfo))
on(`change:repeating_treasure-record:amount_worth`, () => calculateTreasure())
on(`change:repeating_manor-personnel-retinue:cost`, () => calculateRetinueAnnualTotal())
manorAttrs.annual.forEach(attr => {
on(`change:repeating_land-record:${attr}`, () => calculateAnnualTotal( attr ))
})
manorAttrs.misfortune.forEach(attr => {
on(`change:repeating_income-worksheet:${attr}`, ( eventinfo ) => calculateMisfortune( eventinfo ))
})
manorAttrs.anticipated_income.forEach(attr => {
on(`change:repeating_income-worksheet:${attr}`, ( eventinfo ) => sumOfRepeatingValues( eventinfo, 'anticipated_income' ))
})
manorAttrs.treasury.forEach(attr => {
on(`change:repeating_income-worksheet:${attr}`, ( eventinfo ) => calculateExpenses( eventinfo ))
})
manorAttrs.manor_income.forEach(attr => {
on(`change:repeating_income-worksheet:${attr}`, ( eventinfo ) => calculateManorIncome( eventinfo ))
})
manorAttrs.expenses.forEach(attr => {
on(`change:${attr}`, ( ) => sumOfCalculator( manorAttrs.expenses, 'expense_total' ))
})
+2 -2
View File
@@ -21,10 +21,10 @@ const helpers = {
translationKeys.forEach(key => translations[`${key}`] = getTranslationByKey(key))
return translations
},
parseInteger: string => parseInt(string) || 0,
parseInteger: string => parseFloat(string) || 0,
parseIntegers: numbers => {
for (let [key, value] of Object.entries(numbers)) {
numbers[key] = parseInt(value) || 0;
numbers[key] = parseFloat(value) || 0;
}
return numbers
},
+137 -3
View File
@@ -4,7 +4,7 @@ const attributes = {
movement: ['strength', 'dexterity'],
hp: ['size', 'constitution'],
unconcious: ['total_hit_points'],
knights: ['old_knights', 'middle_aged_knights', 'young_knights']
knights: ['old_knights', 'middle_aged_knights', 'young_knights'],
}
const sheetSelect = eventinfo => {
@@ -27,7 +27,7 @@ const divideBy = (sum, num) => sum/num;
const totalAttributes = values => {
let sum = 0
Object.values(values).forEach(num => sum += parseInt(num) || 0)
Object.values(values).forEach(num => sum += parseFloat(num) || 0)
return sum
}
@@ -60,4 +60,138 @@ const unconciousCalculator = (attributes, set) => {
[`${set}`]: roundFraction(sum)
});
});
};
};
const calculateTreasure = () => {
getSectionIDs('treasure-record', idArray => {
let attributes = []
idArray.forEach(id => attributes.push(`repeating_treasure-record_${id}_amount_worth`))
getAttrs(attributes, values => {
const parsedNums = helpers.parseIntegers(values)
const objectValues = Object.values(parsedNums)
setAttrs({
'treasure_total': helpers.sumIntegers(objectValues)
});
})
})
}
const calculateGlory = ({ triggerName }) => {
const repeatingRow = helpers.getReprowid(triggerName)
getSectionIDs('events', idArray => {
let attributes = []
idArray.forEach(id => attributes.push(`repeating_events_${id}_new_glory`))
getAttrs(attributes, values => {
const parsedNums = helpers.parseIntegers(values)
const gloryValues = Object.values(parsedNums)
const sum = helpers.sumIntegers(gloryValues)
setAttrs({
'glory_total': sum,
[`${repeatingRow}_total_glory`]: sum,
})
})
})
}
const manorAttrs = {
anticipated_income: ['normal_income', 'investment_income'],
misfortune: ['fate', 'care'],
treasury: ['emergency_income', 'expenses', 'manor_income'],
manor_income: ['anticipated_income', 'harvest_result'],
annual: ['annual_income', 'annual_maintenance', 'annual_glory'],
expenses: ['lifestyle', 'annual_maintenance_total', 'new_improvements', 'retinue_total']
}
const formatRepeatinRow = (rowId, array) => array.map( x => `${rowId}_${x}` )
const calculateMisfortune = ({ triggerName }) => {
const repeatingRow = helpers.getReprowid(triggerName)
const attributes = formatRepeatinRow( repeatingRow, manorAttrs.misfortune )
getAttrs(attributes, values => {
const parsedNums = helpers.parseIntegers(values)
const fate = parsedNums[`${repeatingRow}_fate`]
const care = helpers.convertIntegerNegative(parsedNums[`${repeatingRow}_care`])
setAttrs({
[`${repeatingRow}_misfortune`]: Math.max(fate + care, 0)
});
});
};
const sumOfRepeatingValues = ({ triggerName }, set) => {
const repeatingRow = helpers.getReprowid(triggerName)
const attributes = formatRepeatinRow(repeatingRow, manorAttrs[`${set}`])
sumOfCalculator(attributes, `${repeatingRow}_${set}`)
}
const calculateExpenses = ({ triggerName }) => {
const repeatingRow = helpers.getReprowid(triggerName)
const attributes = formatRepeatinRow(repeatingRow, manorAttrs.treasury)
getAttrs(attributes, values => {
const parsedNums = helpers.parseIntegers(values)
const emergency = parsedNums[`${repeatingRow}_emergency_income`]
const expenses = helpers.convertIntegerNegative(parsedNums[`${repeatingRow}_expenses`])
const manor = parsedNums[`${repeatingRow}_manor_income`]
setAttrs({
[`${repeatingRow}_treasury`]: manor + (emergency + expenses)
});
});
}
const calculateManorIncome = ({ triggerName }) => {
const repeatingRow = helpers.getReprowid(triggerName)
const attributes = formatRepeatinRow(repeatingRow, manorAttrs.manor_income)
getAttrs(attributes, values => {
const parsedNums = helpers.parseIntegers(values)
const anticipated = parsedNums[`${repeatingRow}_anticipated_income`]
const harvest = parsedNums[`${repeatingRow}_harvest_result`]
setAttrs({
[`${repeatingRow}_manor_income`]: (anticipated * harvest).toFixed(1)
});
});
}
const calculateAnnualTotal = (attr) => {
getSectionIDs('land-record', idArray => {
let attributes = []
idArray.forEach(id => attributes.push(`repeating_land-record_${id}_${attr}`))
getAttrs(attributes, values => {
const parsedNums = helpers.parseIntegers(values)
const objectValues = Object.values(parsedNums)
setAttrs({
[`${attr}_total`]: helpers.sumIntegers(objectValues)
});
})
})
}
const calculateRetinueAnnualTotal = () => {
getSectionIDs('manor-personnel-retinue', idArray => {
let attributes = []
idArray.forEach(id => attributes.push(`repeating_manor-personnel-retinue_${id}_cost`))
getAttrs(attributes, values => {
const parsedNums = helpers.parseIntegers(values)
const objectValues = Object.values(parsedNums)
setAttrs({
[`retinue_total`]: helpers.sumIntegers(objectValues)
});
})
})
}
+10 -26
View File
@@ -1,37 +1,21 @@
on('sheet:opened', () => {
getAttrs(['latest_version_upgrade'], v => { versioning(parseFloat(v.version) || 1); });
getAttrs(['latest_version_upgrade'], v => { versioning(parseFloat(v.latest_version_upgrade) || 1); });
});
const versioning = version => {
const updateMessage = version => console.log(`%c Pendragon 5th Edition is updating to ${version}`, "color: orange; font-weight:bold");
switch(true) {
case version < 1.1:
onepointone()
setAttrs({version: 1.1}, () => versioning(1.1))
break;
default:
console.log(`%c Pendragon 5th Edition is update to date.`, "color: green; font-weight:bold");
case version < 2.2:
twopointtwo()
versioning(2.2)
console.log(updateMessage(version))
break;
default:
console.log(`%c Pendragon 5th Edition is update to date.`, "color: green; font-weight:bold");
setAttrs({"latest_versioning_upgrade": version})
}
};
const onepointone = () => {
const attributes = ['sheet_type', 'character_type']
getAttrs(attributes, value => {
let update = {};
update.settings_toggle = 0
if (value.sheet_type === 'feast') {
update.sheet_type = 'feast record'
update.sheet_select = value.sheet_type
} else if (value.sheet_type === 'character') {
update.sheet_select = value.character_type
} else {
update.sheet_type = value.sheet_type
}
setAttrs(update)
});
}
const twopointtwo = () => setAttrs( { book_entourage: 'entourage' } )
@@ -44,6 +44,10 @@ mixin repeatingEntourageRollButton(i18n, header, value)
mixin repeatingEntourageDamageButton(i18n, name)
button.text-capitalize(data-i18n=i18n name=`roll_${buttonName(name)}` type='roll' value!=`${templateHeader(i18n)} ${damageForumla(attrName(name))}`)
mixin repeatingRetinueRollButton(i18n, value)
- value = !value ? i18n : value
button.d20(name=`roll_${buttonName(i18n)}` type='roll' value!=`&{template:rolls} {{header=@{type}}} ${rollFormula(attrName(value))}`) t
mixin tabButtons(value, className, selected)
- const selectedKeyWord = selected ? 'selected' : ''
label(class=`${className}` data-i18n-title=`sheet: ${value}`)
@@ -2,4 +2,6 @@
- const attributes = ['size', 'dex', 'str', 'con', 'app'];
- const skills = ['awareness', 'boating', 'chirurgery', 'compose', 'courtesy', 'dancing', 'faerie lore', 'falconry', 'fashion', 'first aid', 'flirting', 'folk lore', 'gaming', 'heraldry', 'hunting', 'industry', 'intrigue', 'orate', 'play', 'read', 'recognize', 'religion', 'romance', 'singing', 'stewardship', 'swimming', 'tourney'];
- const gmCharacters = ['name', 'glory', 'app', 'courtesy', 'flirting', 'intrigue', 'chaste', 'modest', 'temperate'];
- const imageSource = `https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Shadowrun5thEdition/src/imgs/`
- const imageSource = 'https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Pendragon5thEdition/src'
@@ -1,8 +1,8 @@
.character.grid
.col
.row
img.knight(alt="King Arthur Pendragon Knight's Character Sheet" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Pendragon5thEdition/src/pendragonlogo.png")
img.woman(alt="King Arthur Pendragon Woman's Character Sheet" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Pendragon5thEdition/src/womenlogo.png")
img.knight(alt="King Arthur Pendragon Knight's Character Sheet" src=`${imageSource}/pendragonlogo.png`)
img.woman(alt="King Arthur Pendragon Woman's Character Sheet" src=`${imageSource}/womenlogo.png`)
.row.2autocolumn
h2(data-i18n='Player:')
+textInput('player name')
@@ -1,8 +1,8 @@
.holdings.grid
.col
.row
img.knight(alt="King Arthur Pendragon Knight's Character Sheet" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Pendragon5thEdition/src/pendragonlogo.png")
img.woman(alt="King Arthur Pendragon Woman's Character Sheet" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Pendragon5thEdition/src/womenlogo.png")
img.knight(alt="King Arthur Pendragon Knight's Character Sheet" src=`${imageSource}/pendragonlogo.png`)
img.woman(alt="King Arthur Pendragon Woman's Character Sheet" src=`${imageSource}/womenlogo.png`)
.annual-glory
.header
h1(data-i18n='annual glory rewards')
+258
View File
@@ -0,0 +1,258 @@
.treasure-record.grid
.grid.2column
.col
.row
img(alt='King Arthur Pendragon' src=`${imageSource}/pendragonlogo.jpg`)
.row.header
h1.header(data-i18n='treasure record')
.col
each val in ['knight name', 'treasure location', 'security', 'other location', 'best clothing']
.grid.2autocolumn
h2(data-i18n=val)
+textInput(`${val}`)
.grid.2autocolumn
.col
h2.eclipse(data-i18n=`treasure total`)
.col.total.text-center
input(name=`attr_treasure_total` type='hidden' value='0')
span(name=`attr_treasure_total`)
.grid.sub-header.bottom-border
each val in ['date', 'source/expense', 'form of treasure', 'amount/worth', 'total £']
h2.eclipse(data-i18n=val)
.repeating-container
fieldset(class=`repeating_treasure-record`)
.grid
each val in ['date', 'source expense', 'form of treasure', 'amount worth', 'total']
.col
+textInput(val)
.income-worksheet.grid
.grid.2column
.col
.row
img(alt='King Arthur Pendragon' src=`${imageSource}/pendragonlogo.jpg`)
.row.header
h1.header(data-i18n='manor income worksheet')
.col
.row
button.text-capitalize(data-i18n='weather' name=`roll_${buttonName('weather')}` type='roll' value!=`${templateHeader('weather')} {{damage=[[3d6+5]]}}`)
button.text-capitalize(data-i18n='manorial luck' name=`roll_${buttonName('d6')}` type='roll' value!=`${templateHeader('manorial luck')} {{luck=[[1d6]]}} {{calamity=[[1d20]]}}`)
button.text-capitalize(data-i18n='property destruction' name=`roll_${buttonName('property destruction')}` type='roll' value!=`${templateHeader('property destruction')} {{damage=[[1d20+(?{Mod.|0})]]}}`)
.row
button.text-capitalize(data-i18n='conflict' name=`roll_${buttonName('conflict')}` type='roll' value!=`${templateHeader('conflict')} {{conflict=[[1d6+(?{Mod.|0})]]}}`)
button.text-capitalize(data-i18n='season' name=`roll_${buttonName('season')}` type='roll' value!=`${templateHeader('season')} {{season=[[1d6]]}}`)
button.text-capitalize(data-i18n='knightly presence' name=`roll_${buttonName('d6')}` type='roll' value!=`${templateHeader('knightly presence')} {{knightly=[[1d6]]}}`)
.row
button.text-capitalize(data-i18n='bandits' name=`roll_${buttonName('bandits')}` type='roll' value!=`${templateHeader('bandits')} {{damage=[[1d6-1]]}}`)
button.text-capitalize(data-i18n='raided' name=`roll_${buttonName('raided')}` type='roll' value!=`${templateHeader('raided')} {{damage=[[1d6+1+(?{Mod.|0})]]}}`)
button.text-capitalize(data-i18n='pillaged' name=`roll_${buttonName('pillaged')}` type='roll' value!=`${templateHeader('pillaged')} {{damage=[[1d6+6+(?{Mod.|0})]]}}`)
button.text-capitalize(data-i18n='plundered' name=`roll_${buttonName('plundered')}` type='roll' value!=`${templateHeader('plundered')} {{damage=[[2d6+6+(?{Mod.|0})]]}}`)
.row
button.text-capitalize(data-i18n='property destruction' name=`roll_${buttonName('property destruction')}` type='roll' value!=`${templateHeader('property destruction')} {{damage=[[1d20+(?{Mod.|0})]]}}`)
.border
.grid.sub-header.bottom-border.mt
each val in ['a.d.', 'revenue £', 'fortune', 'harvest', 'tally']
.col
h2.eclipse(data-i18n=val)
.repeating-container
fieldset(class=`repeating_income-worksheet`)
.grid.grid-rows
.col
.row.text-center
h3.eclipse(data-i18n='date')
.row
+textInput('date')
.col.group
.row.text-center
h3.eclipse(data-i18n='anticipated income')
.row.total.text-center
input(name='attr_anticipated_income' type='hidden' value='0')
span(name='attr_anticipated_income')
each val in ['normal income', 'investment income']
.grid.2autocolumn
h3.eclipse(data-i18n=val)
+textInput(val)
.col.group
.row.grid.text-center
+rollButton('misfortune')
.row.total.text-center
input(name='attr_misfortune' type='hidden' value='0')
span(name='attr_misfortune')
.grid.2autocolumn
h3.eclipse(data-i18n='manorial luck')
+textInput('manorial luck')
.grid.4autocolumn
each val in ['fate', 'care']
h3.eclipse(data-i18n=val)
+textInput(val)
.col.group
.row.text-center
h3.eclipse(data-i18n='manor income')
.row.total.text-center
input(name='attr_manor_income' type='hidden' value='0')
span(name='attr_manor_income')
.grid
.row
h3.eclipse(data-i18n='harvest result')
.row
select(name="attr_harvest_result")
each val, key in { 'incredible': 2.5, 'excellent': 2, 'good': 1.5, 'regular': 1, 'meager': 0.75, 'bad': 0.5, 'very bad': 0.25, 'negligible': 0.17}
option(data-i18n=key value=val)
.col.group
.row.text-center
h3.eclipse(data-i18n='treasury')
.row.total.text-center
span(name='attr_treasury')
each val in ['emergency income', 'expenses']
.grid.2autocolumn
h3.eclipse(data-i18n=val)
+textInput(val)
.grid.2autocolumn
h3.eclipse(data-i18n='notes')
+textInput('notes')
.grid.income-treasure.mt.2column
.col.text-center
.row
h3.eclipse(data-i18n=`annual income`)
.row.total
span(name=`attr_annual_income_total` )
.col.text-center
.row
h3.eclipse(data-i18n=`treasure total`)
.row.total
span(name=`attr_treasure_total` )
.grid.expenses.mt
.col.text-center
.row
h3.eclipse(data-i18n=`expenses`)
.row.total
input(name=`attr_expense_total` type='hidden' value='0')
span(name=`attr_expense_total` )
.flex-center
span =
.col.text-center
.row
h3.eclipse(data-i18n=`lifestyle £`)
.row.total
+textInput('lifestyle')
.flex-center
span +
.col.text-center
.row
h3.eclipse(data-i18n=`annual maintenance £`)
.row.total
span(name=`attr_annual_maintenance_total` )
.flex-center
span +
.col.text-center
.row
h3.eclipse(data-i18n=`new improvements £`)
.row.total
+textInput('new improvements')
.flex-center
span +
.col.text-center
.row
h3.eclipse(data-i18n=`retinue total £`)
.row.total
span(name=`attr_retinue_total` )
.land-record.grid
.col
.grid.headers
.col
.row
img(alt='King Arthur Pendragon' src=`${imageSource}/pendragonlogo.jpg`)
.row.header
h1.header(data-i18n='land record')
.col
each val in ['manor name', 'held by', 'liege lord', 'location']
.grid.2autocolumn
h2(data-i18n=val)
+textInput(`${val}`)
.grid.2autocolumn
h2(data-i18n='fortification (DV)')
+textInput('fortification')
.grid.3column
each val in ['annual income total', 'annual maintenance total', 'annual glory total']
.col
.row.text-center
h3.eclipse(data-i18n=`${val}`)
.row.total.text-center
input(name=`attr_${attrName(val)}` type='hidden' value='0')
span(name=`attr_${attrName(val)}`)
.border.mt
.row.mt.bottom-border
h2(data-i18n='manor improvements')
.repeating-container
fieldset(class=`repeating_land-record`)
.grid.first-row
each val in ['date', 'feature', 'building cost', 'hate (landlord)']
h3(data-i18n=val)
+textInput(val)
.grid.3column
each val in ['annual income', 'annual maintenance', 'annual glory']
.grid.2autocolumn
h3(data-i18n=val)
+textInput(val)
.grid.2autocolumn
h3(data-i18n='notes')
+textInput('notes')
.col
.grid.2autocolumn
h2.text-uppercase(data-i18n='hate (landlord)')
+numberInput(`hate landlord`)
.grid.2autocolumn.mt
h2.text-uppercase(data-i18n='population')
+numberInput(`population`)
.flex-center.mt
button.text-capitalize(data-i18n='population growth' name=`roll_${buttonName('population growth')}` type='roll' value!=`${templateHeader('population growth')} {{dice=[[1d20]]}} {{threshold=[[@{population}/100]]}}`)
.flex-center.mt
button.text-capitalize(data-i18n='build improvement' name=`roll_${buttonName('build improvement')}` type='roll' value!=`${templateHeader('build improvement')} {{build=[[1d20cs0cf20]]}}`)
.row.text-center.mt
.row
h3.eclipse(data-i18n=`retinue total £`)
.row.total
input(name=`attr_retinue_total` type='hidden' value='0')
span(name=`attr_retinue_total` )
.border.retinue.mt
.bottom-border
h2(data-i18n='manor personal & retinue')
.grid.subheaders.bottom-border
each val in ['type', 'cost', 'rating']
h3.text-center(data-i18n=val)
.repeating-container
fieldset(class=`repeating_manor-personnel-retinue`)
.grid
+textInput('type')
+textInput('cost')
+textInput('rating')
+repeatingRetinueRollButton('rating', `rating`)
@@ -5,4 +5,5 @@
option(data-i18n='knight' value='knight' selected)
option(data-i18n='woman' value='woman')
option(data-i18n='feast' value='feast record')
option(data-i18n='manor' value='land record')
option(data-i18n='npc' value='npc')
+113 -37
View File
@@ -5,58 +5,134 @@
.sheet-template-header {{#header}}{{header}}{{/header}}
// - Display the dice roll in the template -
.sheet-template-body
| {{#luck}}
.sheet-template-row.sheet-template-roll
.sheet-template-col
span {{luck}}
span Luck
|{{#calamity}}
.sheet-template-col
span {{calamity}}
span Benefit/Calamity
| {{/calamity}}
| {{/luck}}
| {{#dice}}
.sheet-template-row.sheet-template-roll
.sheet-template-col
span {{dice}}
span Rolled
| {{/dice}}
| {{#threshold}}
|{{#threshold}}
.sheet-template-col
span {{threshold}}
span Threshold
| {{/threshold}}
| {{#damage}}
| {{#dice}}
.sheet-template-row.sheet-result-row
// Modified skill is greater than 19
| {{#rollGreater() threshold 19}}
| {{#rollGreater() dice 19}}
.sheet-rollResult
span.text-center(data-i18n='Critical')
| {{/rollGreater() dice 19}}
| {{#^rollGreater() dice 19}}
.sheet-rollResult
span.text-center(data-i18n='Success')
| {{/^rollGreater() dice 19}}
| {{/rollGreater() threshold 19}}
| {{#^rollGreater() threshold 19}}
| {{#rollBetween() dice fumbleVal 20}}
.sheet-rollResult
span.text-center(data-i18n='Fumble')
| {{/rollBetween() dice fumbleVal 20}}
| {{#^rollBetween() dice fumbleVal 20}}
| {{#rollTotal() dice threshold}}
.sheet-rollResult
span.text-center(data-i18n='Critical')
| {{/rollTotal() dice threshold}}
| {{#^rollTotal() dice threshold}}
| {{#rollGreater() dice threshold}}
.sheet-rollResult
span.text-center(data-i18n='Failure')
| {{/rollGreater() dice threshold}}
| {{#^rollGreater() dice threshold}}
.sheet-rollResult
span.text-center(data-i18n='Success')
| {{/^rollGreater() dice threshold}}
| {{/^rollTotal() dice threshold}}
| {{/^rollBetween() dice fumbleVal 20}}
| {{/^rollGreater() threshold 19}}
| {{/dice}}
|{{#damage}}
.sheet-template-row.sheet-template-damage
.sheet-template-col
| {{damage}}
| {{damage}}
br
span Rolled
| {{/damage}}
|{{#knightly}}
.sheet-template-row.sheet-template-damage
.sheet-template-col
| {{knightly}}
br
span Rolled
| {{/knightly}}
|{{#conflict}}
.sheet-template-row.sheet-template-damage
.sheet-template-col
| {{conflict}}
br
span Rolled
| {{/conflict}}
|{{#build}}
.sheet-template-row.sheet-template-damage
| {{build}}
br
span Rolled
| {{#rollTotal() build 20}}
.sheet-rollResult
span.text-center.text-capitalize(data-i18n='disaster')
| {{/rollTotal() build 20}}
| {{/build}}
|{{#season}}
.sheet-template-row.sheet-season
.sheet-template-col
| {{#rollTotal() season 1}}
| {{season}}
br
span Spring
| {{/rollTotal() season 1}}
| {{#rollBetween() season 2 4}}
| {{season}}
br
span Summer
| {{/rollBetween() season 2 4}}
| {{#rollBetween() season 5}}
| {{season}}
br
span Autumn
| {{/rollBetween() season 5}}
| {{#rollTotal() season 6}}
| {{season}}
br
span Winter
| {{/rollTotal() season 6}}
| {{/season}}
| {{#desc}}
.sheet-template-row
span.sheet-template-desc {{desc}}
| {{/desc}}
.sheet-template-rollResult
// Modified skill is greater than 19
| {{#rollGreater() threshold 19}}
| {{#rollGreater() dice 19}}
.rollResult
span.text-center(data-i18n='Critical')
| {{/rollGreater() dice 19}}
| {{#^rollGreater() dice 19}}
.rollResult
span.text-center(data-i18n='Success')
| {{/^rollGreater() dice 19}}
| {{/rollGreater() threshold 19}}
| {{#^rollGreater() threshold 19}}
| {{#rollBetween() dice fumbleVal 20}}
.rollResult
span.text-center(data-i18n='Fumble')
| {{/rollBetween() dice fumbleVal 20}}
| {{#^rollBetween() dice fumbleVal 20}}
| {{#rollTotal() dice threshold}}
.rollResult
span.text-center(data-i18n='Critical')
| {{/rollTotal() dice threshold}}
| {{#^rollTotal() dice threshold}}
| {{#rollGreater() dice threshold}}
.rollResult
span.text-center(data-i18n='Failure')
| {{/rollGreater() dice threshold}}
| {{#^rollGreater() dice threshold}}
.rollResult
span.text-center(data-i18n='Success')
| {{/^rollGreater() dice threshold}}
| {{/^rollTotal() dice threshold}}
| {{/^rollBetween() dice fumbleVal 20}}
| {{/^rollGreater() threshold 19}}
+106 -92
View File
@@ -1,113 +1,127 @@
div.sheet-background {
background-color: $transparentGray;
}
div.sheet-background {
background-color: $transparentGray;
}
.sheet-border {
border: 0.15em solid $gray;
}
.sheet-border {
border: 0.15em solid $gray;
}
.sheet-bottom-border {
border-bottom: 0.2em solid $dark;
}
.sheet-bottom-border {
border-bottom: 0.2em solid $dark;
}
.sheet-pictos {
font-family: "pictos";
}
.sheet-pictos {
font-family: "pictos";
}
.sheet-d20 {
font-family: "dicefontd20";
}
.sheet-d20 {
font-family: "dicefontd20";
}
.sheet-text-center {
text-align: center;
}
.sheet-text-right {
text-align: right;
}
.sheet-font-weight-bold {
font-weight: bold;
}
.sheet-text-center {
text-align: center;
}
.sheet-font-italic {
font-style: italic;
}
.sheet-text-right {
text-align: right;
}
.sheet-text-primary {
color: $primary;
}
.sheet-flex-center {
display: flex;
align-items: center;
justify-content: center;
}
.sheet-text-uppercase {
text-transform: uppercase;
}
.sheet-font-weight-bold {
font-weight: bold;
}
.sheet-text-lowercase {
text-transform: lowercase;
}
.sheet-font-italic {
font-style: italic;
}
.sheet-text-capitalize {
text-transform: capitalize;
}
.sheet-text-primary {
color: $primary;
}
div.sheet-2column {
grid-template-columns: repeat(2, 1fr);
}
.sheet-text-uppercase {
text-transform: uppercase;
}
div.sheet-3column {
grid-template-columns: repeat(3, 1fr);
}
.sheet-text-lowercase {
text-transform: lowercase;
}
div.sheet-4column {
grid-template-columns: repeat(4, 1fr);
}
.sheet-text-capitalize {
text-transform: capitalize;
}
div.sheet-5column {
grid-template-columns: repeat(5, 1fr);
}
div.sheet-2column {
grid-template-columns: repeat(2, 1fr);
}
div.sheet-6column {
grid-template-columns: repeat(6, 1fr);
}
div.sheet-3column {
grid-template-columns: repeat(3, 1fr);
}
div.sheet-2autocolumn {
grid-template-columns: auto 1fr;
}
div.sheet-4column {
grid-template-columns: repeat(4, 1fr);
}
div.sheet-3autocolumn {
grid-template-columns: auto 1fr 10%;
}
div.sheet-col-3 {
grid-template-columns: 1fr 3.5em 10%;
}
div.sheet-5column {
grid-template-columns: repeat(5, 1fr);
}
div.sheet-gold-left-border {
border-left: 0.2em solid $secondary;
padding-left: 1%;
}
div.sheet-6column {
grid-template-columns: repeat(6, 1fr);
}
div.sheet-gold-bottom-border {
border-bottom: 0.2em solid $secondary;
padding-bottom: 2%;
}
div.sheet-header {
margin-top: 2%;
border-top: 2px solid $primary;
border-bottom: 2px solid $primary;
text-align: center;
background-color: $gold;
background-image: url("https://www.transparenttextures.com/patterns/arches.png");
}
div.sheet-2autocolumn {
grid-template-columns: auto 1fr;
}
span.sheet-display {
border-bottom: 2px dotted $dark;
padding-top: 3%;
}
div.sheet-3autocolumn {
grid-template-columns: auto 1fr 10%;
}
div.sheet-repeating-container {
button {
font-variant: none;
}
}
div.sheet-4autocolumn {
grid-template-columns: auto 1fr auto 1fr;
}
div.sheet-col-3 {
grid-template-columns: 1fr 3.5em 10%;
}
div.sheet-gold-left-border {
border-left: 0.2em solid $secondary;
padding-left: 1%;
}
div.sheet-gold-bottom-border {
border-bottom: 0.2em solid $secondary;
padding-bottom: 2%;
}
div.sheet-header {
margin-top: 2%;
border-top: 2px solid $primary;
border-bottom: 2px solid $primary;
text-align: center;
background-color: $gold;
background-image: url("https://www.transparenttextures.com/patterns/arches.png");
}
span.sheet-display {
border-bottom: 2px dotted $dark;
padding-top: 3%;
}
div.sheet-repeating-container {
button {
font-variant: none;
}
}
.sheet-mt {
margin-top: 2%;
}
+101 -102
View File
@@ -1,147 +1,146 @@
* {
box-sizing: border-box;
font-family: sans-serif;
box-sizing: border-box;
font-family: sans-serif;
}
button {
text-overflow: ellipsis;
font-family: serif;
font-variant: small-caps;
text-overflow: ellipsis;
font-family: serif;
font-variant: small-caps;
&:before {
display: none;
}
&:focus,
&:hover,
&:active {
background: none;
background-color: $primary !important;
color: #fff;
}
&[type="roll"],
&[type="action"] {
background-color: $white;
border: {
bottom : 0.01em solid #666;
bottom-right-radius: 0.01em;
color : hsl(0, 0%, 70%);
radius : 0.25em;
right : 0.02em solid hsl(0, 0%, 20%);
style : outset;
}
margin: 0.2em !important;
padding: 0.1em !important;
box-shadow: $box-shadow;
&:before {
display: none;
}
&:focus,
&:hover,
&:active {
background: none;
background-color: $primary !important;
color: #fff;
}
&[type="roll"],
&[type="action"] {
background-color: $white;
border: {
bottom: 0.01em solid #666;
bottom-right-radius: 0.01em;
color: hsl(0, 0%, 70%);
radius: 0.25em;
right: 0.02em solid hsl(0, 0%, 20%);
style: outset;
}
margin: 0.2em !important;
padding: 0.1em !important;
box-shadow: $box-shadow;
}
}
div {
background-color: transparent;
width: 100%;
background-color: transparent;
width: 100%;
}
fieldset {
background-color: transparent;
background-color: transparent;
}
h1 {
color: $primary;
text-transform: capitalize;
font-family: 'El Messiri', sans-serif;
padding: 1% 2%;
font-size: 1.9em;
color: $primary;
text-transform: capitalize;
font-family: "El Messiri", sans-serif;
padding: 1% 2%;
font-size: 1.9em;
}
h2 {
font-size: 1em;
line-height: 1.4em;
text-transform: capitalize;
display: flex;
align-items: center;
font-size: 1em;
line-height: 1.4em;
text-transform: capitalize;
display: flex;
align-items: center;
&.sheet-label {
border-bottom: 0.15em solid $dark;
text-align: center;
margin-left: 3%;
}
&.sheet-label {
border-bottom: 0.15em solid $dark;
text-align: center;
margin-left: 3%;
}
}
h3 {
font-size: 1.25em;
line-height: 36px;
text-transform: capitalize;
font-size: 0.9em;
line-height: 18px;
text-transform: capitalize;
}
input {
&[type="text"],
&[type="number"] {
background-color: transparent;
border-bottom: 0.15em solid $dark;
&[type="text"],
&[type="number"] {
background-color: transparent;
border-bottom: 0.15em solid $dark;
border: {
left : 0em;
radius: 0em;
right : 0em;
top : 0em;
};
height : 2.1em;
width: 100%;
border: {
left: 0em;
radius: 0em;
right: 0em;
top: 0em;
}
height: 2.1em;
width: 100%;
&::placeholder {
background-color: $light;
border: 0.1em dotted $primary;
}
}
&[type='number'] {
text-align: center;
width: 100% !important;
&::placeholder {
background-color: $light;
border: 0.1em dotted $primary;
}
}
&[type="number"] {
text-align: center;
width: 100% !important;
}
&::-webkit-outer-spin-button,
&::-webkit-inner-spin-button {
margin: 0;
}
&::-webkit-outer-spin-button,
&::-webkit-inner-spin-button {
margin: 0;
}
}
label {
margin-bottom: 0px;
padding-right: 0px;
vertical-align: middle;
margin-bottom: 0px;
padding-right: 0px;
vertical-align: middle;
}
select {
margin-bottom: 0px;
vertical-align: bottom;
border: 2px solid $primary;
font-weight: bold;
text-transform: capitalize;
width: 100%;
margin-bottom: 0px;
vertical-align: bottom;
border: 2px solid $primary;
font-weight: bold;
text-transform: capitalize;
width: 100%;
}
span {
word-break: break-word;
word-break: break-word;
}
textarea {
text-align: left;
border-bottom : 0.2em dotted $light;
font-size : 12px;
font-weight : normal;
min-height : 50px;
line-height : 18px;
overflow : hidden;
overflow-wrap : break-word;
padding : 2px;
resize : vertical;
vertical-align: top;
overflow: scroll;
text-align: left;
border-bottom: 0.2em dotted $light;
font-size: 12px;
font-weight: normal;
min-height: 50px;
line-height: 18px;
overflow: hidden;
overflow-wrap: break-word;
padding: 2px;
resize: vertical;
vertical-align: top;
overflow: scroll;
}
.charsheet {
width: 800px;
width: 825px;
div.sheet-row {
margin-bottom: 0px;
}
}
div.sheet-row {
margin-bottom: 0px;
}
}
@@ -1,80 +1,116 @@
%displaynone { display: none; }
%displayInlineGrid { display: inline-grid;}
%displaynone {
display: none;
}
%displayInlineGrid {
display: inline-grid;
}
$sheets: (
'character': 'character',
'holdings': 'holdings',
'feast-record': 'feast record',
'gamemaster-characters': 'gamemaster characters',
'npc': 'npc',
'entourage': 'entourage'
"character": "character",
"holdings": "holdings",
"feast-record": "feast record",
"gamemaster-characters": "gamemaster characters",
"npc": "npc",
"entourage": "entourage",
"treasure-record": "treasure record",
"income-worksheet": "income worksheet",
"land-record": "land record",
);
$characterSheets: 'character', 'holdings', 'entourage';
$feastSheets: 'feast record', 'gamemaster characters';
$characterSheets: "character", "holdings", "entourage";
$feastSheets: "feast record", "gamemaster characters";
$manorSheets: "treasure record", "income worksheet", "land record";
@each $className, $valueName in $sheets {
div.sheet-#{$className} {
@extend %displayInlineGrid;
}
div.sheet-#{$className} {
@extend %displayInlineGrid;
}
input[name='attr_sheet_type']:not([value='#{$valueName}']) ~ div.sheet-#{$className},
input[name='attr_settings_toggle'][value='settings'] ~ div.sheet-#{$className} {
@extend %displaynone;
}
input[name="attr_sheet_type"]:not([value="#{$valueName}"])
~ div.sheet-#{$className},
input[name="attr_settings_toggle"][value="settings"]
~ div.sheet-#{$className} {
@extend %displaynone;
}
}
@each $characterSheet in $characterSheets {
input[name='attr_sheet_type'][value='#{$characterSheet}'] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(4, 1fr);
}
@include tabHide($characterSheet, 'feast')
input[name="attr_sheet_type"][value="#{$characterSheet}"]
~ div.sheet-tabs
div.sheet-type {
grid-template-columns: repeat(4, 1fr);
}
@include tabHide($characterSheet, "feast");
@include tabHide($characterSheet, "manor");
}
@each $feastSheet in $feastSheets {
input[name='attr_sheet_type'][value='#{$feastSheet}'] ~ div.sheet-tabs div.sheet-type {
grid-template-columns: repeat(3, 1fr);
}
input[name="attr_sheet_type"][value="#{$feastSheet}"]
~ div.sheet-tabs
div.sheet-type {
grid-template-columns: repeat(3, 1fr);
}
@include tabHide($feastSheet, 'character')
@include tabHide($feastSheet, "character");
@include tabHide($feastSheet, "manor");
}
input[name='attr_sheet_type'][value='feast'] ~ div.sheet-tabs select[name='attr_character_type'] {
@extend %displaynone;
}
@each $manorSheet in $manorSheets {
input[name="attr_sheet_type"][value="#{$manorSheet}"]
~ div.sheet-tabs
div.sheet-type {
grid-template-columns: repeat(3, 1fr);
}
$types: 'knight', 'woman';
@include tabHide($manorSheet, "character");
@include tabHide($manorSheet, "feast");
}
input[name="attr_sheet_type"][value="feast"]
~ div.sheet-tabs
select[name="attr_character_type"] {
@extend %displaynone;
}
$types: "knight", "woman";
@each $value in $types {
input[name='attr_character_type']:not([value="#{$value}"]) ~ div.sheet-character div.sheet-col,
input[name='attr_character_type']:not([value="#{$value}"]) ~ div.sheet-holdings div.sheet-col,
input[name='attr_character_type']:not([value="#{$value}"]) ~ div.sheet-entourage div.sheet-row {
& div.sheet-row .sheet-#{$value},
& div.sheet-personal-data div.sheet-row .sheet-#{$value},
& div.sheet-personality-traits .sheet-#{$value},
& div.sheet-personality-traits div.sheet-row .sheet-#{$value},
& div.sheet-equipment-carried .sheet-#{$value},
& div.sheet-skills .sheet-#{$value},
& div.sheet-squire .sheet-#{$value},
& .sheet-#{$value},
& div.sheet-combat-skills .sheet-#{$value},
& div.sheet-horse div.sheet-row .sheet-#{$value},
& div.sheeet-family-history div.sheet-row,
& .sheet-#{$value},
& div.sheet-col .sheet-#{$value} {
@extend %displaynone;
}
input[name="attr_character_type"]:not([value="#{$value}"])
~ div.sheet-character
div.sheet-col,
input[name="attr_character_type"]:not([value="#{$value}"])
~ div.sheet-holdings
div.sheet-col,
input[name="attr_character_type"]:not([value="#{$value}"])
~ div.sheet-entourage
div.sheet-row {
& div.sheet-row .sheet-#{$value},
& div.sheet-personal-data div.sheet-row .sheet-#{$value},
& div.sheet-personality-traits .sheet-#{$value},
& div.sheet-personality-traits div.sheet-row .sheet-#{$value},
& div.sheet-equipment-carried .sheet-#{$value},
& div.sheet-skills .sheet-#{$value},
& div.sheet-squire .sheet-#{$value},
& .sheet-#{$value},
& div.sheet-combat-skills .sheet-#{$value},
& div.sheet-horse div.sheet-row .sheet-#{$value},
& div.sheeet-family-history div.sheet-row,
& .sheet-#{$value},
& div.sheet-col .sheet-#{$value} {
@extend %displaynone;
}
}
}
div.sheet-settings {
@extend %displayInlineGrid;
@extend %displayInlineGrid;
}
input[name='attr_settings_toggle']:not([value='settings']) ~ div.sheet-settings {
@extend %displaynone;
input[name="attr_settings_toggle"]:not([value="settings"])
~ div.sheet-settings {
@extend %displaynone;
}
input[name='attr_sheet_type'][value='npc'] ~ div.sheet-tabs div.sheet-type {
visibility: hidden;
}
input[name="attr_sheet_type"][value="npc"] ~ div.sheet-tabs div.sheet-type {
visibility: hidden;
}
+38 -38
View File
@@ -2,58 +2,58 @@ div.sheet-feast-record,
div.sheet-gamemaster-characters {
min-height: 800px;
div.sheet-row, div.sheet-col {
@extend %gridRowCol
div.sheet-row,
div.sheet-col {
@extend %gridRowCol;
}
}
div.sheet-feast-record {
grid-row-gap: 0;
div.sheet-sub-header,
div.sheet-repeating-container div.sheet-row {
grid-template-columns: 1fr 5em 5em 60%;
grid-row-gap: 2%;
}
grid-row-gap: 0;
div.sheet-6column {
grid-column-gap: 5%;
div.sheet-sub-header,
div.sheet-repeating-container div.sheet-row {
grid-template-columns: 1fr 5em 5em 60%;
grid-row-gap: 2%;
}
h3 {
font-size: 1em;
}
}
div.sheet-6column {
grid-column-gap: 5%;
div.sheet-sub-header {
div.sheet-table {
grid-column: 1 / 4;
}
h3 {
font-size: 1em;
}
}
div.sheet-sub-header:nth-of-type(even) {
background-color: $light;
div.sheet-sub-header {
div.sheet-table {
grid-column: 1 / 4;
}
}
div.sheet-sub-header:nth-of-type(even) {
background-color: $light;
}
}
div.sheet-gamemaster-characters {
div.sheet-sub-header,
div.sheet-repeating-row {
grid-template-columns: 2fr repeat(8, 1fr);
grid-row-gap: 5%;
}
div.sheet-sub-header,
div.sheet-repeating-row {
grid-template-columns: 2fr repeat(8, 1fr);
grid-row-gap: 5%;
}
div.sheet-bottom-border,
div.sheet-3column,
div.sheet-notes {
margin-top: 2%;
}
div.sheet-bottom-border,
div.sheet-3column,
div.sheet-notes {
margin-top: 2%;
}
div.sheet-sub-header {
margin-top: 1%;
}
div.sheet-sub-header {
margin-top: 1%;
}
div.sheet-repeating-row {
padding-bottom: 1%;
}
div.sheet-repeating-row {
padding-bottom: 1%;
}
}
@@ -0,0 +1,82 @@
div.sheet-treasure-record,
div.sheet-income-worksheet,
div.sheet-land-record {
.repitem {
margin-bottom: 2%;
}
h2 {
justify-content: center;
}
input[type="text"] {
text-align: center;
}
div.sheet-total {
background-color: $transparentGray;
min-height: 25px;
width: 100%;
}
div.sheet-border {
padding: 8px 5px;
}
}
div.sheet-treasure-record {
div.sheet-sub-header,
div.sheet-repeating-container div.sheet-grid {
grid-template-columns: 5em 10em 1fr 10em 5em;
grid-row-gap: 2%;
}
}
div.sheet-income-worksheet {
div.sheet-sub-header,
div.sheet-repeating-container div.sheet-grid-rows {
grid-template-columns: 5em 3fr 4fr 2fr 3fr;
grid-row-gap: 2%;
button[type="roll"] {
font-size: 1em;
font-weight: bold;
margin-top: -8px !important;
}
}
div.sheet-group {
border-left: 2px solid black;
padding: 0px 5px;
}
div.sheet-landholding {
margin-top: 5%;
}
div.sheet-expenses {
grid-template-columns: repeat(5, 1fr 1em);
}
}
div.sheet-land-record {
grid-template-columns: 70% 30%;
div.sheet-headers {
grid-template-columns: 2fr 3fr;
}
div.sheet-repeating-container {
div.sheet-first-row {
grid-template-columns: auto 2.5em auto 1fr auto 2.5em auto 2.5em;
}
}
div.sheet-retinue {
min-height: 180px;
div.sheet-grid {
grid-template-columns: 1fr repeat(3, 2.5em);
}
}
}
@@ -2,8 +2,8 @@ div.sheet-settings {
h1 {
padding: 0px;
}
select {
width: 200px;
}
}
}
+99 -101
View File
@@ -1,105 +1,103 @@
.sheet-rolltemplate-rolls {
div.sheet-template-container {
border: 2px solid $dark;
border-radius: 0.3em;
box-shadow: inset 0px 0px 3px 1px $primary;
text-align: center;
font-family: 'fantasy';
div.sheet-template-container {
border: 2px solid $dark;
border-radius: 0.3em;
box-shadow: inset 0px 0px 3px 1px $primary;
text-align: center;
font-family: "fantasy";
/* DICE ROLL STYLES
/* DICE ROLL STYLES
----------------------------- */
.inlinerollresult.fullfail,
.inlinerollresult.fullcrit,
.inlinerollresult.importantroll {
border: none;
}
.inlinerollresult.fullfail, .inlinerollresult.fullcrit {
color: $primary;
}
.inlinerollresult {
background-color: transparent;
border: none;
font-size: 2em;
padding: unset;
}
div.sheet-template-header {
@extend div.sheet-header;
color: $primary;
font-weight: bold;
font-size: 1.5em;
border-bottom: 2px solid $dark;
padding: 3% 2%;
text-transform: capitalize;
margin-top:0px;
}
div.sheet-template-body {
background-color: $white;
div.sheet-template-row {
&:nth-child(2n+0) { background-color: $light; }
span {
&.sheet-inlinerollresult {
color: $primary;
font-size: 2em;
font-weight: bold;
cursor: help;
padding: 0 3px 0 3px;
font-weight: bold;
}
&.sheet-percent,
&.sheet-template-desc {
color: $primary;
font-size: 1em;
}
}
}
div.sheet-template-damage {
background-color: #fff;
padding: 3% 2%;
}
div.sheet-template-roll {
display: inline-grid;
grid-template-columns: 1fr 1fr;
width: 100%;
div.sheet-template-col {
padding: 5%;
&:nth-of-type(2) {
border-left: 2px solid $dark;
}
span {
display: block;
&:last-child {
margin-top: 5%;
}
}
}
}
}
.inlinerollresult.fullfail,
.inlinerollresult.fullcrit,
.inlinerollresult.importantroll {
border: none;
}
div.sheet-template-rollResult{
padding: 5px;
background-color:
white;text-align:center;
border:solid black;
border-width: 0 2px 2px 2px;
font-size:large;
}
}
.inlinerollresult.fullfail,
.inlinerollresult.fullcrit {
color: $primary;
}
.inlinerollresult {
background-color: transparent;
border: none;
font-size: 2em;
padding: unset;
}
div.sheet-template-header {
@extend div.sheet-header;
color: $primary;
font-weight: bold;
font-size: 1.5em;
border-bottom: 2px solid $dark;
padding: 3% 2%;
text-transform: capitalize;
margin-top: 0px;
}
div.sheet-template-row {
background-color: $white;
span {
&.sheet-inlinerollresult {
color: $primary;
font-size: 2em;
font-weight: bold;
cursor: help;
padding: 0 3px 0 3px;
font-weight: bold;
}
&.sheet-percent,
&.sheet-template-desc {
color: $primary;
font-size: 1em;
}
}
}
div.sheet-template-damage {
background-color: #fff;
padding: 3% 2%;
}
div.sheet-result-row {
grid-column: 1 / 3;
}
div.sheet-template-roll {
display: inline-grid;
grid-template-columns: 1fr 1fr;
width: 100%;
div.sheet-template-col {
padding: 5%;
&:nth-of-type(2) {
border-left: 2px solid $dark;
}
span {
display: block;
&:last-child {
margin-top: 5%;
}
}
}
}
}
div.sheet-rollResult {
padding: 5px;
text-align: center;
font-size: large;
border-top: 2px solid black;
}
div.sheet-season {
padding-top: 2%;
}
}
+75 -1
View File
@@ -147,7 +147,6 @@
,"hp":"hp"
,"armor":"armor"
,"breed":"breed"
,"joust score":"joust score"
,"knight":"knight"
,"holdings":"holdings"
,"annual glory rewards":"annual glory rewards"
@@ -327,4 +326,79 @@
,"glory won":"glory won"
,"abilities":"abilities"
,"skills / passions":"skills / passions"
,"manor":"manor"
,"treasure record": "treasure record"
,"income worksheet": "income worksheet"
,"land record": "land record"
,"knight name":"knight name"
,"treasure location":"treasure location"
,"security":"security"
,"other location":"other location"
,"best clothing":"best clothing"
,"source/expense":"source/expense"
,"form of treasure":"form of treasure"
,"amount/worth":"amount/worth £"
,"manor income worksheet":"manor income worksheet"
,"a.d.":"a.d."
,"revenue £":"revenue £"
,"fortune":"fortune"
,"harvest":"harvest"
,"tally":"tally"
,"normal income":"normal income £"
,"investment income":"investment income £"
,"anticipated income":"anticipated income £"
,"manorial luck":"manorial luck"
,"fate":"fate"
,"care":"care"
,"misfortune":"misfortune"
,"harvest result":"harvest result"
,"manor income":"manor income £"
,"emergency income":"emergency income £"
,"expenses":"expenses £"
,"treasury":"treasury £"
,"incredible":"incredible"
,"excellent":"excellent"
,"good":"good"
,"regular":"regular"
,"bad":"bad"
,"very bad":"very bad"
,"negligible":"negligible"
,"hate (landlord)":"hate (landlord)"
,"manor name":"manor name"
,"held by":"held by"
,"liege lord":"liege lord"
,"annual glory":"annual glory"
,"fortification (DV)":"fortification (DV)"
,"manor description":"manor description"
,"manor summary":"manor summary"
,"manor improvements":"manor improvements"
,"feature":"feature"
,"building cost":"building cost £"
,"annual income":"annual income £"
,"annual maintenance": "annual maintenance £"
,"annual income total":"annual income total £"
,"annual maintenance total": "annual maintenance total £"
,"annual glory total":"annual glory total"
,"weather":"weather"
,"bandits":"bandits"
,"raided":"raided"
,"pillaged":"pillaged"
,"plundered":"plundered"
,"property destruction":"property destruction"
,"season":"season"
,"knightly presence": "knightly presence"
,"conflict": "conflict"
,"population":"population"
,"population growth":"population growth"
,"meager":"meager"
,"total £":"total £"
,"treasure total":"treasure total £"
,"manor personal & retinue":"manor personal & retinue"
,"rating":"rating"
,"retinue total £":"retinue total £"
,"lifestyle £":"lifestyle £"
,"annual maintenance £": "annual maintenance £"
,"new improvements £":"new improvements £"
,"build improvement":"build improvement"
,"disaster":"disaster"
}