diff --git a/Pendragon5thEdition/pendragon.css b/Pendragon5thEdition/pendragon.css index ee5be3734d..bc55218591 100644 --- a/Pendragon5thEdition/pendragon.css +++ b/Pendragon5thEdition/pendragon.css @@ -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 ----------------------------- */ diff --git a/Pendragon5thEdition/pendragon.html b/Pendragon5thEdition/pendragon.html index c418b348e6..570e910a63 100644 --- a/Pendragon5thEdition/pendragon.html +++ b/Pendragon5thEdition/pendragon.html @@ -1,25 +1,38 @@ -

King Arthur Pendragon Knight's Character SheetKing Arthur Pendragon Woman's Character Sheet

*
/
**
/
/
*
/
*
/
*
/
*
/
**
/
*
/
/
*
/
/
*
/

King Arthur Pendragon Knight's Character SheetKing Arthur Pendragon Woman's Character Sheet

King Arthur Pendragon

King Arthur Pendragon

{{#header}}{{header}}{{/header}}
{{#dice}}
{{dice}} Rolled
{{/dice}} - {{#threshold}}
{{threshold}} Threshold
{{/threshold}} - {{#damage}}
{{damage}} Rolled
{{/damage}}
{{#desc}}
{{desc}}
{{/desc}}
{{#rollGreater() threshold 19}} -{{#rollGreater() dice 19}}
{{/rollGreater() dice 19}} - {{#^rollGreater() dice 19}}
{{/^rollGreater() dice 19}} +

King Arthur Pendragon Knight's Character SheetKing Arthur Pendragon Woman's Character Sheet

*
/
**
/
/
*
/
*
/
*
/
*
/
**
/
*
/
/
*
/
/
*
/

King Arthur Pendragon Knight's Character SheetKing Arthur Pendragon Woman's Character Sheet

King Arthur Pendragon

King Arthur Pendragon

King Arthur Pendragon

King Arthur Pendragon

=

+

+

+

King Arthur Pendragon

{{#header}}{{header}}{{/header}}
{{#luck}}
{{luck}} Luck
{{#calamity}}
{{calamity}} Benefit/Calamity
{{/calamity}}
{{/luck}} +{{#dice}}
{{dice}} Rolled
{{/dice}} +{{#threshold}}
{{threshold}} Threshold
{{/threshold}} +{{#dice}}
{{#rollGreater() threshold 19}} +{{#rollGreater() dice 19}}
{{/rollGreater() dice 19}} + {{#^rollGreater() dice 19}}
{{/^rollGreater() dice 19}} {{/rollGreater() threshold 19}} {{#^rollGreater() threshold 19}} - {{#rollBetween() dice fumbleVal 20}}
{{/rollBetween() dice fumbleVal 20}} + {{#rollBetween() dice fumbleVal 20}}
{{/rollBetween() dice fumbleVal 20}} {{#^rollBetween() dice fumbleVal 20}} - {{#rollTotal() dice threshold}}
{{/rollTotal() dice threshold}} + {{#rollTotal() dice threshold}}
{{/rollTotal() dice threshold}} {{#^rollTotal() dice threshold}} - {{#rollGreater() dice threshold}}
{{/rollGreater() dice threshold}} - {{#^rollGreater() dice threshold}}
{{/^rollGreater() dice threshold}} + {{#rollGreater() dice threshold}}
{{/rollGreater() dice threshold}} + {{#^rollGreater() dice threshold}}
{{/^rollGreater() dice threshold}} {{/^rollTotal() dice threshold}} {{/^rollBetween() dice fumbleVal 20}} - {{/^rollGreater() threshold 19}}
\ No newline at end of file +const twopointtwo = () => setAttrs( { book_entourage: 'entourage' } ) + \ No newline at end of file diff --git a/Pendragon5thEdition/pendragon.pug b/Pendragon5thEdition/pendragon.pug index 11e3810ecc..d9462e7091 100644 --- a/Pendragon5thEdition/pendragon.pug +++ b/Pendragon5thEdition/pendragon.pug @@ -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 diff --git a/Pendragon5thEdition/pendragon.scss b/Pendragon5thEdition/pendragon.scss index f565806e9c..fa42874ec8 100644 --- a/Pendragon5thEdition/pendragon.scss +++ b/Pendragon5thEdition/pendragon.scss @@ -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; -} \ No newline at end of file + background-color: $transparentGray; +} diff --git a/Pendragon5thEdition/src/js/eventhandlers.js b/Pendragon5thEdition/src/js/eventhandlers.js index 02485c95c7..9d68131449 100644 --- a/Pendragon5thEdition/src/js/eventhandlers.js +++ b/Pendragon5thEdition/src/js/eventhandlers.js @@ -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' )) +}) diff --git a/Pendragon5thEdition/src/js/helpers.js b/Pendragon5thEdition/src/js/helpers.js index 0bf6a7085a..e2e19ff794 100644 --- a/Pendragon5thEdition/src/js/helpers.js +++ b/Pendragon5thEdition/src/js/helpers.js @@ -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 }, diff --git a/Pendragon5thEdition/src/js/scripts.js b/Pendragon5thEdition/src/js/scripts.js index 7d12352a74..9759dfb408 100644 --- a/Pendragon5thEdition/src/js/scripts.js +++ b/Pendragon5thEdition/src/js/scripts.js @@ -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) }); }); -}; \ No newline at end of file +}; + +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) + }); + }) + }) +} + diff --git a/Pendragon5thEdition/src/js/versioning.js b/Pendragon5thEdition/src/js/versioning.js index 3915a4fde0..3921e5674b 100644 --- a/Pendragon5thEdition/src/js/versioning.js +++ b/Pendragon5thEdition/src/js/versioning.js @@ -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) - }); -} \ No newline at end of file +const twopointtwo = () => setAttrs( { book_entourage: 'entourage' } ) diff --git a/Pendragon5thEdition/src/pug/abstracts/mixins.pug b/Pendragon5thEdition/src/pug/abstracts/mixins.pug index 67b4795963..3c731ffd74 100644 --- a/Pendragon5thEdition/src/pug/abstracts/mixins.pug +++ b/Pendragon5thEdition/src/pug/abstracts/mixins.pug @@ -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}`) diff --git a/Pendragon5thEdition/src/pug/abstracts/variables.pug b/Pendragon5thEdition/src/pug/abstracts/variables.pug index a2d1cba1bf..0a69f5253b 100644 --- a/Pendragon5thEdition/src/pug/abstracts/variables.pug +++ b/Pendragon5thEdition/src/pug/abstracts/variables.pug @@ -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' + diff --git a/Pendragon5thEdition/src/pug/pages/character.pug b/Pendragon5thEdition/src/pug/pages/character.pug index 4333f927c2..179382efe1 100644 --- a/Pendragon5thEdition/src/pug/pages/character.pug +++ b/Pendragon5thEdition/src/pug/pages/character.pug @@ -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') diff --git a/Pendragon5thEdition/src/pug/pages/holdings.pug b/Pendragon5thEdition/src/pug/pages/holdings.pug index 2da96e1c73..59a7a54faa 100644 --- a/Pendragon5thEdition/src/pug/pages/holdings.pug +++ b/Pendragon5thEdition/src/pug/pages/holdings.pug @@ -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') diff --git a/Pendragon5thEdition/src/pug/pages/manor.pug b/Pendragon5thEdition/src/pug/pages/manor.pug new file mode 100644 index 0000000000..9103182a82 --- /dev/null +++ b/Pendragon5thEdition/src/pug/pages/manor.pug @@ -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`) + + + + + + + + + \ No newline at end of file diff --git a/Pendragon5thEdition/src/pug/pages/settings.pug b/Pendragon5thEdition/src/pug/pages/settings.pug index 7157767a86..b1194be061 100644 --- a/Pendragon5thEdition/src/pug/pages/settings.pug +++ b/Pendragon5thEdition/src/pug/pages/settings.pug @@ -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') diff --git a/Pendragon5thEdition/src/pug/vendor/rolltemplate.pug b/Pendragon5thEdition/src/pug/vendor/rolltemplate.pug index 8daec35200..f6544e81ca 100644 --- a/Pendragon5thEdition/src/pug/vendor/rolltemplate.pug +++ b/Pendragon5thEdition/src/pug/vendor/rolltemplate.pug @@ -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}} \ No newline at end of file + + + diff --git a/Pendragon5thEdition/src/scss/base/generic.scss b/Pendragon5thEdition/src/scss/base/generic.scss index 09e1f300d5..12b96a3716 100644 --- a/Pendragon5thEdition/src/scss/base/generic.scss +++ b/Pendragon5thEdition/src/scss/base/generic.scss @@ -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; - } - } \ No newline at end of file +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%; +} diff --git a/Pendragon5thEdition/src/scss/base/globals.scss b/Pendragon5thEdition/src/scss/base/globals.scss index 19ca5c5692..68d1624b50 100644 --- a/Pendragon5thEdition/src/scss/base/globals.scss +++ b/Pendragon5thEdition/src/scss/base/globals.scss @@ -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; - } -} \ No newline at end of file + div.sheet-row { + margin-bottom: 0px; + } +} diff --git a/Pendragon5thEdition/src/scss/layout/show_hide.scss b/Pendragon5thEdition/src/scss/layout/show_hide.scss index df26d3540c..60f9352b15 100644 --- a/Pendragon5thEdition/src/scss/layout/show_hide.scss +++ b/Pendragon5thEdition/src/scss/layout/show_hide.scss @@ -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; -} \ No newline at end of file +input[name="attr_sheet_type"][value="npc"] ~ div.sheet-tabs div.sheet-type { + visibility: hidden; +} diff --git a/Pendragon5thEdition/src/scss/pages/feast.scss b/Pendragon5thEdition/src/scss/pages/feast.scss index 6fa2913035..d460e85fa7 100644 --- a/Pendragon5thEdition/src/scss/pages/feast.scss +++ b/Pendragon5thEdition/src/scss/pages/feast.scss @@ -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%; + } } - diff --git a/Pendragon5thEdition/src/scss/pages/manor.scss b/Pendragon5thEdition/src/scss/pages/manor.scss new file mode 100644 index 0000000000..16e7b0061c --- /dev/null +++ b/Pendragon5thEdition/src/scss/pages/manor.scss @@ -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); + } + } +} diff --git a/Pendragon5thEdition/src/scss/pages/settings.scss b/Pendragon5thEdition/src/scss/pages/settings.scss index 284402cf80..7f5585a608 100644 --- a/Pendragon5thEdition/src/scss/pages/settings.scss +++ b/Pendragon5thEdition/src/scss/pages/settings.scss @@ -2,8 +2,8 @@ div.sheet-settings { h1 { padding: 0px; } - + select { width: 200px; } -} \ No newline at end of file +} diff --git a/Pendragon5thEdition/src/scss/vendor/rolltemplate.scss b/Pendragon5thEdition/src/scss/vendor/rolltemplate.scss index 09a6755917..f53fb88a3d 100644 --- a/Pendragon5thEdition/src/scss/vendor/rolltemplate.scss +++ b/Pendragon5thEdition/src/scss/vendor/rolltemplate.scss @@ -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; - } -} \ No newline at end of file + + .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%; + } +} diff --git a/Pendragon5thEdition/translation.json b/Pendragon5thEdition/translation.json index 465f2b1bd5..6e27462597 100644 --- a/Pendragon5thEdition/translation.json +++ b/Pendragon5thEdition/translation.json @@ -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" } \ No newline at end of file