diff --git a/Barbaric/Readme.md b/Barbaric/Readme.md new file mode 100644 index 0000000000..a63c7c9b18 --- /dev/null +++ b/Barbaric/Readme.md @@ -0,0 +1,36 @@ +# About + +Official Character Sheet for [Barbaric!](https://www.drivethrurpg.com/product/348272/Barbaric) by Stellagama Publishing. Sheet Created by [Andreas J.](https://wiki.roll20.net/Anduh) + +## Sheet Info +Basic character sheet for tracking your stats, with roll buttons for Skills, Attacks & Initiative. + +If critical Success or Critical Fumbles are rolled with Skills or Attacks, the crit will be highlighted in the result. + +Sheet can be translated to other languages using [CrowdIn](https://wiki.roll20.net/CrowdIn). + +### Roll Template + +Has built in roll templates that can be used for creating customize roll results, such as sorcery. + +**base format** +`&{template:rolls} {{title=the}} {{subtitle= optional subtitle }} {{color= color of title background, default black}} {{anything= anything, can have as many of these sections}} {{desc= optional section that's full width of the template, good for descriptions}}` + + + +**Ex 1** +How the base roll for crafting looks like: +`&{template:rolls} {{title=craft}} {{subtitle=@{character_name} }} {{color=black}} {{^{roll-i18n}[[ [[2d6]]+@{craft} ]]}} {{baseroll=$[[0]]}}` + +**Ex 2** + +`&{template:rolls} {{title=Poison Cloud}} {{color=green}} {{damage=[[3d6]]}} {{desc=poison cloud spreads in the surrounding}}` + + +**Ex 3** + +`&{template:rolls} {{title=Read/Sense Magic}} {{subtitle= @{selected|character_name} }} {{color=purple}} {{^{roll-i18n}[[ [[2d6]]+@{selected|sorcery} ]]}} {{baseroll=$[[0]]}} {{desc=Succeeds on a Sorcery 8+ throw}}` + +# Contribute + +Compile `barbaric.scss` from the `src` folder to get the barbaric.css, don't edit barbaric.css directly. \ No newline at end of file diff --git a/Barbaric/barbaric.css b/Barbaric/barbaric.css new file mode 100755 index 0000000000..f74a7652dc --- /dev/null +++ b/Barbaric/barbaric.css @@ -0,0 +1,329 @@ +/*------------------------------------------------*\ + #GENERAL +\*------------------------------------------------*/ +@import url("https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz|Anton&display=swap"); +/* duplicate class to catch import bug */ +.charsheet * { + font-family: "Yanone Kaffeesatz"; +} + +.charsheet { + /* --------- Text ------------- */ + /* --------- Inputs ------------- */ + /* -----Hides up/down buttons on numberfields that don't need them ---*/ + /* ------- Buttons ---------- */ + /*-----------------------------------------------------------------*\ + #SECTIONS + \*-----------------------------------------------------------------*/ + /* --------- General Section Styling ------------- */ +} +.charsheet * { + font-family: "Yanone Kaffeesatz"; +} +.charsheet label, .charsheet div, .charsheet span, .charsheet button[type=roll] { + text-transform: capitalize; + flex-grow: 0; + align-self: center; +} +.charsheet div, .charsheet span, .charsheet label { + flex-shrink: 1; +} +.charsheet textarea, .charsheet input[type=number], .charsheet input[type=text] { + flex-grow: 6; + flex-shrink: 1; + align-self: center; +} +.charsheet label { + padding-left: 15px; + text-align: center; +} +.charsheet input[type=text], +.charsheet input[type=number] { + background-color: transparent; + border-style: none none solid none; + border-color: black; + border-radius: 0px; + width: fit-content; + padding: 0.5em; + margin: auto 5px 5px 5px; + max-height: 50px; +} +.charsheet input[type=number] { + text-align: center; +} +.charsheet textarea { + background-color: transparent; + width: 95%; + height: max-content; +} +.charsheet input[type=checkbox].checkbox { + border-style: solid black; + border-radius: 0px; + height: auto; +} +.charsheet textarea:focus, +.charsheet input[type=text]:focus, +.charsheet input[type=number]:focus { + background-color: #cab7b7; +} +.charsheet textarea.warn-missing:placeholder-shown, +.charsheet input[type=text].warn-missing:placeholder-shown, +.charsheet input[type=number].warn-missing:placeholder-shown { + background-color: #EAC9D1; +} +.charsheet input[type=number].txtfield::-webkit-inner-spin-button, +.charsheet input[type=number].txtfield::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} +.charsheet input[type=number].txtfield { + -moz-appearance: textfield; +} +.charsheet button[type=roll], .charsheet button[type=roll].d6, .charsheet button[type=roll].blank { + text-shadow: none; + background-position: 0 -40px; + background-color: #d9d9d9; + border: 2px; +} +.charsheet button[type=roll].blank::before { + content: ""; + height: min-content; + text-align: center; +} +.charsheet button[type=roll].d6::before { + /*new die changes die roller to d6*/ + font-family: "dicefontd6"; + content: "F "; +} +.charsheet button[type=roll].d6:hover, .charsheet button[type=roll].blank:hover, .charsheet button[type=roll]:hover { + border: 2px solid black; + background-color: #7e7d7d; + border-radius: 10px; + text-shadow: none; +} +.charsheet section, .charsheet .section { + display: flex; + flex-flow: column nowrap; + align-items: center; + justify-content: space-around; + align-content: space-around; +} +.charsheet .border { + border: solid 2px black; +} +.charsheet .flex-center { + display: flex; + align-items: center; +} +.charsheet .flex-middle { + display: flex; + justify-content: center; +} +.charsheet .flex-col { + display: flex; + flex-flow: column nowrap; +} +.charsheet .flex-row { + display: flex; + flex-flow: row nowrap; +} +.charsheet main { + display: grid; + grid-template-columns: 2fr 4fr 4fr 100px; + grid-template-rows: 1fr 5fr 5fr; + grid-template-areas: "name name name name " "skills traits combat xp " "equip equip sorcery sorcery"; + grid-gap: 4px; + width: 1200px; + /* Defines the width and height of the sheet */ + height: 800px; + background-color: whitesmoke; + /* NAME SECTION */ +} +.charsheet main section.name { + grid-area: name; +} +.charsheet main section.name input[type=checkbox] { + height: auto; + transform: scale(1.1); +} +.charsheet main section.name .pad { + padding: 8px; +} +.charsheet main section.skills { + grid-area: skills; +} +.charsheet main section.skills .flex-row { + width: 90%; +} +.charsheet main section.skills .flex-row input { + width: 25%; + margin: 0 10px; + border: 4px solid black; + border-radius: 22px; + font-size: 1.4em; + padding: 6px; +} +.charsheet main section.skills .flex-row button { + width: 55%; + font-size: 1.4em; +} +.charsheet main section.traits { + grid-area: traits; +} +.charsheet main section.combat { + grid-area: combat; +} +.charsheet main section.combat .flex-row.section { + width: 90%; + height: 90%; +} +.charsheet main section.combat .flex-row.section button { + height: 35%; +} +.charsheet main section.combat div.armor { + flex-grow: 1; +} +.charsheet main section.combat div.grid-weapon { + display: grid; + grid-template-columns: 30px 180px 42px 42px auto; + grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr; + grid-gap: 5px; + grid-row-gap: 10px; + flex-grow: 1; + width: 560px; +} +.charsheet main section.combat div.grid-weapon span { + width: 70px; +} +.charsheet main section.combat div.grid-weapon button { + width: 18px; + margin-left: 5px; +} +.charsheet main section.combat div.grid-weapon input[type=text].weapon-name { + width: 170px; +} +.charsheet main section.combat div.grid-weapon input[type=text].weapon-notes { + width: 235px; +} +.charsheet main section.combat div.grid-weapon input[type=text].dmg { + width: 40px; + text-align: center; +} +.charsheet main section.equip { + grid-area: equip; +} +.charsheet main section.sorcery { + grid-area: sorcery; +} +.charsheet main section.xp { + grid-area: xp; + display: flex; + align-content: flex-start; +} +.charsheet main section.xp input[type=checkbox] { + height: 23px; + transform: scale(0.8); +} +.charsheet main section.xp span { + width: 80px; + text-align: center; +} + +/*------------------------------------*\ + #ROLL TEMPLATES +\*------------------------------------*/ +/* Smaller margins - remove these if you want the huge default left margin */ +.withoutavatars .sheet-rolltemplate-rolls { + margin-left: -7px; +} + +.sheet-rolltemplate-rolls { + margin-left: -37px; + font-family: "Yanone Kaffeesatz"; + /* Header formatting - title and subtitle */ + /* example colors */ + /* alt template colors */ + /* Allprops part */ + /* Left column */ + /* Make even-numbered rows grey */ + /* Description field */ +} +.sheet-rolltemplate-rolls .sheet-container { + border: 3px solid black; + border-radius: 3px; +} +.sheet-rolltemplate-rolls .sheet-header { + background-color: var(--header-bg-color, #a83521); + color: var(--header-text-color, #FFF); + text-align: left; + text-transform: capitalize; + padding: 5px; + border-bottom: 2px solid black; +} +.sheet-rolltemplate-rolls .sheet-title { + font-size: 1.4em; + font-weight: bold; +} +.sheet-rolltemplate-rolls .sheet-subtitle { + font-size: 1em; +} +.sheet-rolltemplate-rolls .sheet-container { + /* the default colors */ + --header-bg-color: #a83521; + --header-text-color: #FFF; +} +.sheet-rolltemplate-rolls .sheet-container.sheet-color-green { + --header-bg-color: #008000; +} +.sheet-rolltemplate-rolls .sheet-container.sheet-color-blue { + --header-bg-color: #0000e0; +} +.sheet-rolltemplate-rolls .sheet-container.sheet-color-gold { + --header-bg-color: #ffdd1f; + --header-text-color: #000; +} +.sheet-rolltemplate-rolls .sheet-container.sheet-color-purple { + --header-bg-color: #c200c2; +} +.sheet-rolltemplate-rolls .sheet-container.sheet-color-black { + --header-bg-color: #000; +} +.sheet-rolltemplate-rolls .sheet-container.sheet-color-white { + --header-bg-color: #FFF; + --header-text-color: #000; +} +.sheet-rolltemplate-rolls .sheet-content { + display: grid; + background: #FFF; + /* Header formatting - modify the column layout below */ + grid-template-columns: auto auto; + /* Line height to match default roll template */ + line-height: 1.4em; +} +.sheet-rolltemplate-rolls .sheet-content > div { + padding: 5px; +} +.sheet-rolltemplate-rolls .sheet-content .sheet-key { + font-weight: bold; + padding-right: 10px; + text-align: right; +} +.sheet-rolltemplate-rolls .sheet-content :nth-child(4n+3), +.sheet-rolltemplate-rolls .sheet-content :nth-child(4n) { + background: #EEE; +} +.sheet-rolltemplate-rolls .sheet-desc, .sheet-rolltemplate-rolls .sheet-crit, .sheet-rolltemplate-rolls .sheet-fail { + grid-column: span 2; + padding: 5px; + text-align: center; +} +.sheet-rolltemplate-rolls .sheet-crit, .sheet-rolltemplate-rolls .sheet-fail { + font-weight: bold; + font-size: 1.3em; +} +.sheet-rolltemplate-rolls .sheet-crit { + color: green; +} +.sheet-rolltemplate-rolls .sheet-fail { + color: red; +} diff --git a/Barbaric/barbaric.html b/Barbaric/barbaric.html new file mode 100644 index 0000000000..34211bbd10 --- /dev/null +++ b/Barbaric/barbaric.html @@ -0,0 +1,225 @@ +
+ +
+ + + Name + + + + heritage + + + + endurance + + + + lifeblood + + + + Fatigued? + + + + + hero points + + + + Player + + +
+ +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ +
+ +
+ + + +
+
+ +
+ + weapons + range + damage + notes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ + +
+ +
+ + experienced +
+ + + + + +
+ expert +
+ + + + + +
+ master +
+ + + + + +
+ grandmster +
+ + + + + +
+ legend +
+ + + + + +
+
+
+ + + + + + + + + + + + + + +
+
+ {{#title}}
{{title}}
{{/title}} + {{#subtitle}}
{{subtitle}}
{{/subtitle}} +
+
+ {{#allprops() title subtitle desc color baseroll}} +
{{key}}
+
{{value}}
+ {{/allprops() title subtitle desc color baseroll}} + {{#rollTotal() baseroll 2}} +
Critical Fumble!
+ {{/rollTotal() baseroll 2}} + {{#rollTotal() baseroll 12}} +
Critical Success!
+ {{/rollTotal() baseroll 12}} + {{#desc}}
{{desc}}
{{/desc}} +
+
+
+ + \ No newline at end of file diff --git a/Barbaric/sheet.json b/Barbaric/sheet.json new file mode 100755 index 0000000000..b506a39bcd --- /dev/null +++ b/Barbaric/sheet.json @@ -0,0 +1,9 @@ +{ + "html": "barbaric.html", + "css": "barbaric.css", + "authors": "Andreas J.", + "roll20userid": "1223200", + "preview": "barbaric-preview.png", + "instructions": "This is the Official character sheet for **Barbaric!** by [Stellagama Publishing](https://www.drivethrurpg.com/browse/pub/9571/Stellagama-Publishing).\n\n* [Readme.md](https://github.com/Roll20/roll20-character-sheets/blob/master/Barbaric/) - sheet instructions\n* [Barbaric!](https://www.drivethrurpg.com/product/348272/Barbaric) - rules", + "legacy": false +} diff --git a/Barbaric/src/barbaric.scss b/Barbaric/src/barbaric.scss new file mode 100755 index 0000000000..7a28f395a0 --- /dev/null +++ b/Barbaric/src/barbaric.scss @@ -0,0 +1,388 @@ +/*------------------------------------------------*\ + #GENERAL +\*------------------------------------------------*/ + +@import url('https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz|Anton&display=swap'); + +/* duplicate class to catch import bug */ +.charsheet *{ + font-family: "Yanone Kaffeesatz"; +} + +.charsheet { + + *{ + font-family: "Yanone Kaffeesatz"; + } + /* --------- Text ------------- */ + + label, div, span, button[type="roll"] { + text-transform: capitalize; + flex-grow: 0; + align-self: center; + } + + div, span, label{ + flex-shrink: 1; + } + textarea, input[type="number"], input[type="text"] { + flex-grow: 6; + flex-shrink: 1; + align-self: center; + } + + label{ + padding-left: 15px; + text-align: center; + } + + + /* --------- Inputs ------------- */ + + input[type="text"], + input[type="number"]{ + background-color: transparent; + border-style: none none solid none; + border-color: black; + border-radius: 0px; + width: fit-content; + padding: 0.5em; + margin: auto 5px 5px 5px; + max-height: 50px; + + } + + input[type="number"]{ + text-align: center; + } + + textarea { + background-color: transparent; + width: 95%; + height: max-content; + } + + input[type="checkbox"].checkbox { + border-style: solid black; + border-radius: 0px; + height: auto; + } + + textarea:focus, + input[type="text"]:focus, + input[type="number"]:focus{ + background-color: hsla(0.0, 15.2%, 75.5%, 1.0); + } + + textarea.warn-missing:placeholder-shown, + input[type="text"].warn-missing:placeholder-shown, + input[type="number"].warn-missing:placeholder-shown { + background-color: #EAC9D1; + } + + /* -----Hides up/down buttons on numberfields that don't need them ---*/ + + input[type=number].txtfield::-webkit-inner-spin-button, + input[type=number].txtfield::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; + } + + input[type=number].txtfield { + -moz-appearance: textfield; + } + + /* ------- Buttons ---------- */ + button[type=roll], button[type=roll].d6, button[type=roll].blank { + text-shadow: none; + background-position: 0 -40px; + background-color: #d9d9d9; + border: 2px; + } + + button[type=roll].blank::before { + content: ''; + height: min-content; + text-align: center; + } + + button[type=roll].d6::before { /*new die changes die roller to d6*/ + font-family: 'dicefontd6'; + content: 'F '; + } + + button[type=roll].d6:hover, button[type=roll].blank:hover, button[type=roll]:hover{ + border: 2px solid black; + background-color: #7e7d7d; + border-radius: 10px; + text-shadow: none; + } + + /*-----------------------------------------------------------------*\ + #SECTIONS + \*-----------------------------------------------------------------*/ + + + /* --------- General Section Styling ------------- */ + section, .section{ + display: flex; + flex-flow: column nowrap; + align-items:center; + justify-content: space-around; + align-content: space-around; + } + + .border{ + border: solid 2px black; + } + + .flex-center { + display: flex; + align-items: center; + } + + .flex-middle { + display: flex; + justify-content: center; + } + + .flex-col { + display: flex; + flex-flow: column nowrap; + } + + .flex-row { + display: flex; + flex-flow: row nowrap; + } + + + main { + display: grid; + grid-template-columns: 2fr 4fr 4fr 100px; + grid-template-rows: 1fr 5fr 5fr; + grid-template-areas:"name name name name " + "skills traits combat xp " + "equip equip sorcery sorcery"; + grid-gap: 4px; + width: 1200px;/* Defines the width and height of the sheet */ + height: 800px; + background-color: whitesmoke; + + /* NAME SECTION */ + + section.name{ + grid-area: name; + + input[type="checkbox"]{ + height: auto; + transform: scale(1.1); + } + .pad{ + padding: 8px; + } + } + + section.skills{ + grid-area: skills; + + .flex-row{ + width: 90%; + + input{ + width: 25%; + margin: 0 10px; + border: 4px solid black; + border-radius: 22px; + font-size: 1.4em; + padding: 6px; + } + + button{ + width: 55%; + font-size: 1.4em; + } + } + } + + section.traits{ + grid-area: traits; + } + section.combat{ + grid-area: combat; + + .flex-row.section{ + width: 90%; + height: 90%; + + button{ + height: 35%; + } + } + + div.armor{ + flex-grow: 1; + } + + div.grid-weapon{ + display: grid; + grid-template-columns: 30px 180px 42px 42px auto; + grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr; + grid-gap: 5px; + grid-row-gap: 10px; + flex-grow: 1; + width: 560px; + + span{ + width: 70px; + } + button{ + width: 18px; + margin-left: 5px; + } + input[type="text"].weapon-name{ + width: 170px; + } + input[type="text"].weapon-notes{ + width: 235px; + } + input[type="text"].dmg{ + width: 40px; + text-align: center; + } + } + } + section.equip{ + grid-area: equip; + } + section.sorcery{ + grid-area: sorcery; + } + section.xp{ + grid-area: xp; + display: flex; + align-content: flex-start; + input[type="checkbox"]{ + height: 23px; + transform: scale(0.8); + } + span{ + width: 80px; + text-align: center; + } + } + + } + +} + + +/*------------------------------------*\ + #ROLL TEMPLATES +\*------------------------------------*/ + +/* Smaller margins - remove these if you want the huge default left margin */ + +.withoutavatars .sheet-rolltemplate-rolls { + margin-left: -7px; +} + +.sheet-rolltemplate-rolls { + margin-left: -37px; + font-family: "Yanone Kaffeesatz"; + + .sheet-container { + border: 3px solid black; + border-radius: 3px; + } + + /* Header formatting - title and subtitle */ + .sheet-header { + background-color: var(--header-bg-color, #a83521); + color: var(--header-text-color, #FFF); + text-align: left; + text-transform: capitalize; + padding: 5px; + border-bottom: 2px solid black; + } + .sheet-title { + font-size: 1.4em; + font-weight: bold; + } + .sheet-subtitle { + font-size: 1em; + } + + /* example colors */ + .sheet-container { + /* the default colors */ + --header-bg-color: #a83521; + --header-text-color: #FFF; + } + + /* alt template colors */ + .sheet-container.sheet-color-green { + --header-bg-color: #008000; + } + .sheet-container.sheet-color-blue { + --header-bg-color: #0000e0; + } + .sheet-container.sheet-color-gold { + --header-bg-color: #ffdd1f; + --header-text-color: #000; + } + .sheet-container.sheet-color-purple { + --header-bg-color: #c200c2; + } + .sheet-container.sheet-color-black { + --header-bg-color: #000; + } + .sheet-container.sheet-color-white { + --header-bg-color: #FFF; + --header-text-color: #000; + } + + /* Allprops part */ + .sheet-content { + display: grid; + background: #FFF; + /* Header formatting - modify the column layout below */ + grid-template-columns: auto auto; + /* Line height to match default roll template */ + line-height:1.4em; + } + .sheet-content > div { + padding: 5px; + } + + /* Left column */ + .sheet-content .sheet-key { + font-weight: bold; + padding-right: 10px; + text-align: right; + } + + /* Make even-numbered rows grey */ + .sheet-content :nth-child(4n+3), + .sheet-content :nth-child(4n) { + background:#EEE; + } + + /* Description field */ + .sheet-desc, .sheet-crit, .sheet-fail { + grid-column: span 2; + padding: 5px; + text-align: center; + } + .sheet-crit, .sheet-fail{ + font-weight: bold; + font-size: 1.3em; + } + .sheet-crit { + color: green; + } + .sheet-fail { + color: red; + } +} + diff --git a/Barbaric/translation.json b/Barbaric/translation.json new file mode 100644 index 0000000000..ffb4cc5003 --- /dev/null +++ b/Barbaric/translation.json @@ -0,0 +1,37 @@ +{ + "name":"name", + "heritage":"heritage", + "endurance":"endurance", + "lifeblood":"lifeblood", + "fatigued-":"Fatigued?", + "hero-points":"hero points", + "skills":"skills", + "combat":"combat", + "craft":"craft", + "lore":"lore", + "physical":"physical", + "social":"social", + "sorcery":"sorcery", + "stealth":"stealth", + "traits":"traits", + "initative":"Initiative", + "armor":"armor", + "weapons":"weapons", + "weapon":"Weapon", + "range":"range", + "damage":"damage", + "notes":"notes", + "equipment":"equipment", + "sorcery-notes":"sorcery/notes", + "description-short":"desc", + "xp":"XP", + "experienced":"experienced", + "expert":"expert", + "master":"master", + "grandmster":"grandmster", + "legend":"legend", + "critical-fumble":"Critical Fumble!", + "critical-success":"Critical Success!", + "roll-i18n":"roll", + "player":"Player" +} \ No newline at end of file