Outbreak official sheet v1.01 (#6225)

* fix Oubtreak issues

* fix typo

* update version number

* fix damage dice
This commit is contained in:
Cassie Levett
2020-04-20 15:15:02 -04:00
committed by GitHub
parent 505b52730a
commit ad158b2a8b
9 changed files with 168 additions and 972 deletions
+32 -20
View File
@@ -11,7 +11,9 @@ button {
text-overflow: ellipsis; }
button:before {
display: none; }
button:focus > h3, button:hover > h3, button:active > h3 {
button:focus > h3,
button:hover > h3,
button:active > h3 {
color: #bbb;
text-shadow: 1px 1px 2px #000, 0 0 25px #bbb, 0 0 5px #bbb; }
button[type='roll'], button[type='action'] {
@@ -44,7 +46,9 @@ label {
input[type="number"], input[type="text"] {
padding: 1px 2px;
height: 100%;
width: 100% !important; }
input[disabled='true'] {
background-color: #77be7924;
cursor: not-allowed; }
@@ -106,11 +110,11 @@ div.sheet-navigation {
background-color: #dcdcdc;
border-bottom-color: #fff; }
div.sheet-navigation input:nth-of-type(1), div.sheet-navigation span:nth-of-type(1) {
grid-area: 1 / 1 / 1 / 1; }
grid-area: 1 / 1 / 1; }
div.sheet-navigation input:nth-of-type(2), div.sheet-navigation span:nth-of-type(2) {
grid-area: 1 / 2 / 1 / 2; }
grid-area: 1 / 2 / 0.5; }
div.sheet-navigation input:nth-of-type(3), div.sheet-navigation span:nth-of-type(3) {
grid-area: 1 / 3 / 1 / 3; }
grid-area: 1 / 3 / 0.33333; }
.sheet-small-font {
font-size: 0.5em; }
@@ -127,11 +131,11 @@ div.sheet-container {
div.sheet-container .sheet-green-header {
background-repeat: no-repeat;
background-position: center top;
background-image: url("https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/greenheader.png"); }
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/greenheader.png"); }
div.sheet-container .sheet-yellow-header {
background-repeat: no-repeat;
background-position: center top;
background-image: url("https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/yellowheader.png"); }
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/yellowheader.png"); }
div.sheet-container div.sheet-main {
margin: 1%;
width: 98%; }
@@ -195,13 +199,13 @@ div.sheet-container {
div.sheet-container div.sheet-main div.sheet-column div.sheet-spewbox div.sheet-skills label {
border: 0.15em solid #000; }
div.sheet-container div.sheet-main div.sheet-column div.sheet-spewbox div.sheet-skills option[value*='strength'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Strength_40x40.png); }
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Strength_40x40.png); }
div.sheet-container div.sheet-main div.sheet-column div.sheet-spewbox div.sheet-skills option[value*='perception'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Perception_40x40.png); }
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Perception_40x40.png); }
div.sheet-container div.sheet-main div.sheet-column div.sheet-spewbox div.sheet-skills option[value*='empathy'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Empathy_40x40.png); }
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Empathy_40x40.png); }
div.sheet-container div.sheet-main div.sheet-column div.sheet-spewbox div.sheet-skills option[value*='willpower'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Willpower_40x40.png); }
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Willpower_40x40.png); }
div.sheet-container div.sheet-main div.sheet-column div.sheet-spewbox div.sheet-skills select {
font-size: 0.8em;
width: 100%; }
@@ -245,7 +249,7 @@ div.sheet-dice-box {
div.sheet-dice-box button {
grid-area: 1 / 1 / 1 / 5; }
div.sheet-dice-box img {
left: 10px;
left: 5%;
margin-left: -5%;
position: relative;
top: 0px;
@@ -258,7 +262,7 @@ div.sheet-dice-box {
div.sheet-box {
box-sizing: border-box;
border: 10px solid transparent;
-webkit-border-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/background.png) 18 18 repeat;
-webkit-border-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/background.png) 18 18 repeat;
box-shadow: 3px 5px 2px #888888;
float: left; }
@@ -274,6 +278,7 @@ div.sheet-dicelabel {
div.sheet-health h1, div.sheet-health h2 {
text-align: center; }
div.sheet-health div.sheet-header {
grid-template-columns: 1em 2fr 1fr;
text-align: center; }
@@ -282,6 +287,7 @@ div.sheet-health div.sheet-header {
div.sheet-health div.sheet-header h2[data-i18n='Damage Threshold'] {
grid-column: 3;
line-height: inherit; }
div.sheet-health div.sheet-body {
grid-template-columns: 1em 2fr 1fr; }
div.sheet-health div.sheet-body h3 {
@@ -306,20 +312,21 @@ div.sheet-health div.sheet-body {
grid-column: 1 / 4 / 1 / 4; }
div.sheet-health div.sheet-body div.sheet-damage-threshold input {
text-align: center; }
div.sheet-health div.sheet-viral h2[data-i18n='Symptoms'] {
text-align: left; }
div.sheet-health div.sheet-viral input[type="checkbox"] {
-webkit-appearance: initial;
appearance: initial;
background: none;
border: 1px solid black;
height: 19px;
margin-right: -8px;
position: relative;
width: 19px; }
div.sheet-health div.sheet-viral input[type="checkbox"]:checked {
background: #ccff33;
content: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/virus.png);
content: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/virus.png);
border: none; }
div.sheet-health div.sheet-viral input[type="checkbox"]:checked:after {
-moz-transform: translate(-50%, -50%);
@@ -329,9 +336,11 @@ div.sheet-health div.sheet-viral input[type="checkbox"] {
position: absolute;
top: 50%;
transform: translate(-50%, -50%); }
div.sheet-health div.sheet-viral div.sheet-virus-checkboxes {
display: inline;
margin-left: 15%; }
display: block;
text-align: center; }
div.sheet-health div.sheet-pysche {
grid-template-columns: 4fr 3fr 1fr 2fr 1fr 3fr; }
div.sheet-health div.sheet-pysche h1 {
@@ -362,18 +371,19 @@ div.sheet-training-value h1 {
grid-column: 1 / 2;
font-size: 1.8em;
text-align: center; }
div.sheet-training-value div.sheet-red-kits {
grid-template-columns: 1fr 1fr; }
div.sheet-training-value div.sheet-red-kits img {
margin-left: 25%;
margin-right: -5%; }
margin-left: 25%; }
div.sheet-training-value div.sheet-green-kits {
grid-template-columns: 1fr 1fr 1fr; }
div.sheet-training-value div.sheet-green-kits h2 {
font-size: 0.8em; }
div.sheet-training-value div.sheet-green-kits img {
margin-left: 20%;
margin-right: -5%; }
margin-left: 20%; }
div.sheet-training-value div.sheet-kits {
margin-bottom: 5%; }
div.sheet-training-value div.sheet-kits h2 {
@@ -398,6 +408,8 @@ div.sheet-repeating-container {
display: inline-grid;
grid-template-columns: 4fr 2fr 2fr 10% 10% 1fr;
grid-column-gap: 1%; }
div.sheet-repeating-container .repcontainer .repitem input[type='number'] {
border: none; }
div.sheet-equipment textarea {
min-height: 100px; }
+13 -871
View File
File diff suppressed because one or more lines are too long
+37 -16
View File
@@ -1,11 +1,13 @@
//- VERSION
//- =============================
input(name='attr_version' type='hidden' value='1.001')
input(name='attr_version' type='hidden' value='1.01')
//- MIXINS
include src/pug/_mixins.pug
- const imageSrc = `https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img`;
.container
input(name='attr_tab' type='hidden' value='main')
.main.tab
@@ -22,7 +24,7 @@ include src/pug/_mixins.pug
each val in ['Strength', 'Perception', 'Empathy', 'Willpower']
-const name = val.toLowerCase();
.grid.attributes
img(alt=`${val}` src=`https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_${val}_40x40.png`)
img(alt=`${val}` src=`${imageSrc}/OU_Attributes_${val}_40x40.png`)
h3(data-i18n=val) #{val}
.grid
input(name=`attr_${name}` type='hidden' value=`[[(@{${name}_bonus}*10)+@{${name}_base}]]`)
@@ -55,7 +57,7 @@ include src/pug/_mixins.pug
.grid.header
h3(data-i18n='Adv')
h3(data-i18n='Tot')
each val, key in {'Hold':['willpower','perception'], 'Jump/Leap':['strength','perception'], 'Lift/Pull':['strenght','willpower'], 'Resist Pain':['willpower','strength'], 'Search':['perception','willpower'], 'Spot/Listen':['perception','willpower'], 'Stealth':['perception','willpower']}
each val, key in {'Hold':['willpower','perception'], 'Jump/Leap':['strength','perception'], 'Lift/Pull':['strength','willpower'], 'Resist Pain':['willpower','strength'], 'Search':['perception','willpower'], 'Spot/Listen':['perception','willpower'], 'Stealth':['perception','willpower']}
+skillList(key, val[0], val[1])
h2(data-i18n='Trained Skills') Trained Skills
@@ -63,7 +65,7 @@ include src/pug/_mixins.pug
each val,key in {'Bow':['perception', 'strength'], 'Calm Other':['empathy', 'willpower'], 'Persuade':['empathy', 'willpower'], 'Barter':['empathy', 'willpower'], 'Command':['empathy', 'willpower'], 'Detect Motives':['empathy', 'willpower'], 'Intimidate':['empathy', 'willpower'], 'Digital Systems':['perception', 'willpower']}
+skillList(key, val[0], val[1])
.skill-column
each val,key in {'Pistol':['perception', 'willpower'], 'Long Gun':['perception', 'willpower'], 'First Aid':['perception', 'willpower'], 'Blunt':['strength', 'willpower'], 'Pierce':['strength', 'willpower'], 'Slash':['strength', 'willpower'], 'Navigation':['perception', 'willpower'], 'Swim':['strength', 'willpower'], 'Throw':['perception', 'strength']}
each val,key in {'Long Gun':['perception', 'willpower'], 'Pistol':['perception', 'willpower'], 'First Aid':['perception', 'willpower'], 'Blunt':['strength', 'willpower'], 'Pierce':['strength', 'willpower'], 'Slash':['strength', 'willpower'], 'Navigation':['perception', 'willpower'], 'Swim':['strength', 'willpower'], 'Throw':['perception', 'strength']}
+skillList(key, val[0], val[1])
h2(data-i18n='Expert Skills') Expert Skills
@@ -100,7 +102,7 @@ include src/pug/_mixins.pug
input.center(name=`attr_skill` type='hidden' value=`0`)
span(name=`attr_skill`)
button.dicefontd10(name=`roll_name` type='roll' value!=`&{template:ou} {{name=@{character_name}}} {{roll_name=@{skill_name}}} {{attr=@{skill}}} {{Target1=[[@{total}]]}} {{Target2=[[@{total}+1]]}} {{skill=VS.}} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_die}}} {{DieDep=@{depletion_die}}} {{result=[[1d100+@{difficulty_dice} [Diff]]]}} {{dos1=[[@{total}-19]]}} {{dos2a=[[@{total}-20]]}} {{dos2b=[[@{total}-29]]}} {{dos3a=[[@{total}-30]]}} {{dos3b=[[@{total}-39]]}} {{dos4a=[[@{total}-40]]}} {{dos4b=[[@{total}-49]]}} {{dof1=[[@{total}+19]]}} {{dof2a=[[@{total}+20]]}} {{dof2b=[[@{total}+29]]}} {{dof3a=[[@{total}+30]]}} {{dof3b=[[@{total}+39]]}} {{dof4a=[[@{total}+40]]}} {{dof4b=[[@{total}+49]]}}`) t
button.dicefontd10(name=`roll_name` type='roll' value!=`&{template:ou} {{name=@{character_name}}} {{roll_name=@{skill_name}}} {{attr=@{skill}}} {{Target1=[[@{total}]]}} {{Target2=[[@{total}+1]]}} {{skill=VS.}} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_dice}}} {{DieDep=@{depletion_die}}} {{result=[[1d100+@{difficulty_dice} [Diff]]]}} {{dos1=[[@{total}-19]]}} {{dos2a=[[@{total}-20]]}} {{dos2b=[[@{total}-29]]}} {{dos3a=[[@{total}-30]]}} {{dos3b=[[@{total}-39]]}} {{dos4a=[[@{total}-40]]}} {{dos4b=[[@{total}-49]]}} {{dof1=[[@{total}+19]]}} {{dof2a=[[@{total}+20]]}} {{dof2b=[[@{total}+29]]}} {{dof3a=[[@{total}+30]]}} {{dof3b=[[@{total}+39]]}} {{dof4a=[[@{total}+40]]}} {{dof4b=[[@{total}+49]]}}`) t
.equipment.grid.box
h1.green-header.center(data-i18n='Equipment') Equipment
@@ -108,23 +110,39 @@ include src/pug/_mixins.pug
.column
.grid.box.logo
img(alt='Outbreak Character Sheet', src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Logo_340pxWx90pxH.png')
img(alt='Outbreak Character Sheet', src=`${imageSrc}/OU_Logo_340pxWx90pxH.png`)
.grid.box.dice-box
button(data-i18n='Dice Pool' name='roll_Pool' type='roll' value='&{template:ou-small} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_die}}} {{DieDep=@{depletion_die}}}')
button(data-i18n='Dice Pool' name='roll_Pool' type='roll' value='&{template:ou-small} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_dice}}} {{DieDep=@{depletion_die}}}')
.die
img(alt='difficulty dice' src='https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_difficulty_16pxW_x16pxH.jpg' title='Difficult Dice')
img(alt='difficulty dice' src=`${imageSrc}/HuntersIcon_difficulty_16pxW_x16pxH.jpg` title='Difficult Dice')
select(name='attr_difficulty_dice')
- let n = 0;
while n < 6
option(data-i18n=n value=`[[${n}d6!p]]`) #{n}
option(data-i18n=n value=`[[${n}d6!pcs>6cf<0]]`) #{n}
- n++
each val in ['speed', 'damage', 'depletion']
.die
img(alt=`${val} dice` src=`https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_${val}_16pxW_x16pxH.jpg`)
+diceSelect(`${val}`)
.die
img(alt=`speed dice` src=`${imageSrc}/HuntersIcon_speed_16pxW_x16pxH.jpg`)
+diceSelect(`speed`)
.die
img(alt=`damage dice` src=`${imageSrc}/HuntersIcon_damage_16pxW_x16pxH.jpg`)
select(name=`attr_damage_dice`)
option(data-i18n='0' value='[[0d6]]')
option(data-i18n='1' value=`[[1d6!pcs>6cf<0]]`)
option(data-i18n='2' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
option(data-i18n='3' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
option(data-i18n='4' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
option(data-i18n='5' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
option(data-i18n='6' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
option(data-i18n='7' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
option(data-i18n='8' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
option(data-i18n='9' value=`[[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]] [[1d6!pcs>6cf<0]]`)
.die
img(alt=`depletion dice` src=`${imageSrc}/HuntersIcon_depletion_16pxW_x16pxH.jpg`)
+diceSelect(`depletion`)
each val in ['difficulty', 'speed', 'damage', 'depletion']
.die
@@ -190,15 +208,18 @@ include src/pug/_mixins.pug
-const name = val.replace(' ', '_').toLowerCase();
.kits
h2(data-i18n=`${val}`) #{val}
img(alt='' src=`https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/KitIcons_${val.replace(' ', '')}_30x30.png`)
input(name=`attr_${name}` type='number' value='')
img(alt='' src=`${imageSrc}/KitIcons_${val.replace(' ', '')}_30x30.png`)
if (val === 'Long Gun' || val === 'Pistol')
input(name=`attr_${name}_tv` type='number' value='')
else
input(name=`attr_${name}` type='number' value='')
.grid.green-kits
each val in ['Athletic Gear', 'First Aid Kits', 'Swimming/Diving', 'Climbing Gear', 'Medical Gear', 'Tools', 'Command App', 'Recon Gear', 'Value', 'Firefighting', 'Survival Kit', 'Vehicles']
-const name = val.replace(/ /g, '_').replace('/', '_').toLowerCase();
.kits
h2(data-i18n=`${val}`) #{val}
img(alt='' src=`https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/KitIcons_${val.replace(/ /g, '').replace('/', '')}_30x30.png`)
img(alt='' src=`${imageSrc}/KitIcons_${val.replace(/ /g, '').replace('/', '')}_30x30.png`)
input(name=`attr_${name}` type='number' value='')
+15 -14
View File
@@ -83,13 +83,13 @@ div.sheet-container {
.sheet-green-header {
background-repeat: no-repeat;
background-position: center top;
background-image: url("https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/greenheader.png");
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/greenheader.png");
}
.sheet-yellow-header {
background-repeat: no-repeat;
background-position: center top;
background-image: url("https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/yellowheader.png");
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/yellowheader.png");
}
div.sheet-main {
@@ -204,19 +204,19 @@ div.sheet-container {
option {
&[value*='strength'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Strength_40x40.png);
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Strength_40x40.png);
}
&[value*='perception'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Perception_40x40.png);
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Perception_40x40.png);
}
&[value*='empathy'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Empathy_40x40.png);
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Empathy_40x40.png);
}
&[value*='willpower'] {
background-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/OU_Attributes_Willpower_40x40.png);
background-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/OU_Attributes_Willpower_40x40.png);
}
}
@@ -291,7 +291,7 @@ div.sheet-dice-box {
}
img {
left: 10px;
left: 5%;
margin-left: -5%;
position: relative;
top: 0px;
@@ -310,7 +310,7 @@ div.sheet-dice-box {
div.sheet-box {
box-sizing: border-box;
border: 10px solid transparent;
-webkit-border-image: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/background.png) 18 18 repeat;
-webkit-border-image: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/background.png) 18 18 repeat;
box-shadow: 3px 5px 2px #888888;
float: left;
}
@@ -402,13 +402,12 @@ div.sheet-health {
background: none;
border: 1px solid black;
height: 19px;
margin-right: -8px;
position: relative;
width: 19px;
&:checked {
background: #ccff33;
content: url(https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/virus.png);
content: url(https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/virus.png);
border: none;
&:after {
@@ -424,8 +423,8 @@ div.sheet-health {
}
div.sheet-virus-checkboxes {
display: inline;
margin-left: 15%;
display: block;
text-align: center;
}
}
@@ -490,7 +489,6 @@ div.sheet-training-value {
img {
margin-left: 25%;
margin-right: -5%;
}
}
@@ -503,7 +501,6 @@ div.sheet-training-value {
img {
margin-left: 20%;
margin-right: -5%;
}
}
@@ -543,6 +540,10 @@ div.sheet-repeating-container {
display: inline-grid;
grid-template-columns: 4fr 2fr 2fr 10% 10% 1fr;
grid-column-gap: 1%;
input[type='number'] {
border: none;
}
}
}
}
+29
View File
@@ -0,0 +1,29 @@
{
"name": "sheettemplate",
"version": "1.0.0",
"description": "Character sheet development in VS Code",
"main": "index.js",
"dependencies": {
"pug": "^2.0.4",
"node-sass": "^4.5.3",
"npm-run-all": "^4.1.1"
},
"scripts": {
"start": "npm-run-all --parallel compile:sass compile:pug",
"compile:sass": "node-sass outbreak.scss outbreak.css -w",
"compile:pug": "pug outbreak.pug outbreak.html -w"
},
"repository": {
"type": "git",
"url": "git+https://github.com/clevett/SheetTemplate.git"
},
"keywords": [
"Roll20"
],
"author": "Cassie Levett",
"license": "ISC",
"bugs": {
"url": "https://github.com/clevett/SheetTemplate/issues"
},
"homepage": "https://github.com/clevett/SheetTemplate#readme"
}
+7 -9
View File
@@ -10,12 +10,10 @@ mixin diceSelect(selectedDefault)
mixin diceSelect(type)
select(name=`attr_${type}_dice`)
option(data-i18n='0' value='[[0d6]]')
option(data-i18n='1' value='[[1d6]]')
option(data-i18n='2' value='[[1d6]] [[1d6]]')
option(data-i18n='3' value='[[1d6]] [[1d6]] [[1d6]]')
option(data-i18n='4' value='[[1d6]] [[1d6]] [[1d6]] [[1d6]]')
option(data-i18n='5' value='[[1d6]] [[1d6]] [[1d6]] [[1d6]] [[1d6]]')
- let dieSelect = 1;
while dieSelect < 10
option(data-i18n=dieSelect value=`[[${dieSelect}d6!pcs>6cf<0]]`)
- dieSelect++
mixin dieRadios(type)
input(name=`attr_${type}_die` type='radio' value='[[5d1]]' checked)
@@ -27,13 +25,13 @@ mixin dieRadios(type)
mixin skillList(skill, primaryAttribute, secondaryAttribute)
.skill
-const name = skill.toLowerCase().replace('/', '_').replace(' ', '_');
input(name=`attr_${name}_button_base` type='hidden' value=`[[(?{Gear Or Kit| None, 0 | Archery, @{archery_gear}|Athletic Gear, @{athletic_gear}|Bludgeon, @{bludgeoning}|Climbing Gear, @{climbing_gear}|Command Apparatus, @{command_app}|Firefighting, @{firefighting}|First Aid Kit, @{first_aid_kits}|Long Gun, @{long_gun}|Martial Arts, @{martial_arts}|Medical Gear, @{medical_gear}|Piercing, @{piercing}|Pistol, @{pistol}|Recon Gear, @{recon_gear}|Slashing, @{slashing}|Survival Kit, @{survival_kit}|Swimming/Diving, @{swimming_diving}|Throwing, @{throwing}|Tools, @{tools}|Value, @{value}|Vehicles, @{vehicles}})*?{Multiplier|1|2|3|4|5}]]`)
input(name=`attr_${name}_button_base` type='hidden' value=`[[(?{Gear Or Kit | None, 0 | Archery, @{archery_gear}|Athletic Gear, @{athletic_gear}|Bludgeon, @{bludgeoning}|Climbing Gear, @{climbing_gear}|Command Apparatus, @{command_app}|Firefighting, @{firefighting}|First Aid Kit, @{first_aid_kits}|Long Gun, @{long_gun_tv}|Martial Arts, @{martial_arts}|Medical Gear, @{medical_gear}|Piercing, @{piercing}|Pistol, @{pistol_tv}|Recon Gear, @{recon_gear}|Slashing, @{slashing}|Survival Kit, @{survival_kit}|Swimming/Diving, @{swimming_diving}|Throwing, @{throwing}|Tools, @{tools}|Value, @{value}|Vehicles, @{vehicles}})*?{Multiplier|1|2|3|4|5}]]`)
input(name=`attr_${name}_attributes` type='hidden' value=`(@{${primaryAttribute}}+@{${secondaryAttribute}_bonus})`)
input(name=`attr_${name}_total` type='hidden' value=`(@{${name}} [Skill]+@{${name}_button_base} [Kit])`)
button(name=`roll_${skill}` type='roll' value!=`&{template:ou} {{name=@{character_name}}} {{roll_name=^{${skill}}}} {{attr=${skill}}} {{Target1=[[@{${name}_total}]]}} {{Target2=[[@{${name}_total}+1]]}} {{skill=VS.}} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_die}}} {{DieDep=@{depletion_die}}} {{result=[[1d100+@{difficulty_dice} [Diff]]]}} {{dos1=[[@{${name}_total}-19]]}} {{dos2a=[[@{${name}_total}-20]]}} {{dos2b=[[@{${name}_total}-29]]}} {{dos3a=[[@{${name}_total}-30]]}} {{dos3b=[[@{${name}_total}-39]]}} {{dos4a=[[@{${name}_total}-40]]}} {{dos4b=[[@{${name}_total}-49]]}} {{dof1=[[@{${name}_total}+19]]}} {{dof2a=[[@{${name}_total}+20]]}} {{dof2b=[[@{${name}_total}+29]]}} {{dof3a=[[@{${name}_total}+30]]}} {{dof3b=[[@{${name}_total}+39]]}} {{dof4a=[[@{${name}_total}+40]]}} {{dof4b=[[@{${name}_total}+49]]}}`)
button(name=`roll_${skill}` type='roll' value!=`&{template:ou} {{name=@{character_name}}} {{roll_name=^{${skill}}}} {{attr=${skill}}} {{Target1=[[@{${name}_total}]]}} {{Target2=[[@{${name}_total}+1]]}} {{skill=VS.}} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_dice}}} {{DieDep=@{depletion_die}}} {{result=[[1d100+@{difficulty_dice} [Diff]]]}} {{dos1=[[@{${name}_total}-19]]}} {{dos2a=[[@{${name}_total}-20]]}} {{dos2b=[[@{${name}_total}-29]]}} {{dos3a=[[@{${name}_total}-30]]}} {{dos3b=[[@{${name}_total}-39]]}} {{dos4a=[[@{${name}_total}-40]]}} {{dos4b=[[@{${name}_total}-49]]}} {{dof1=[[@{${name}_total}+19]]}} {{dof2a=[[@{${name}_total}+20]]}} {{dof2b=[[@{${name}_total}+29]]}} {{dof3a=[[@{${name}_total}+30]]}} {{dof3b=[[@{${name}_total}+39]]}} {{dof4a=[[@{${name}_total}+40]]}} {{dof4b=[[@{${name}_total}+49]]}}`)
span(data-i18n=`${skill}`) #{skill}
label
input.center(name=`attr_${name}_advancement` title=`attr_${name}_advancement` type='number' value='0')
@@ -50,7 +48,7 @@ mixin expertSkillList(skill, primaryAttribute, secondaryAttribute)
input(name=`attr_${name}_total` type='hidden' value=`(@{${name}} [Skill]+@{${name}_button_base} [Kit])`)
button(name=`roll_${skill}` type='roll' value!=`&{template:ou} {{name=@{character_name}}} {{roll_name=^{${skill}}}} {{attr=${skill}}} {{Target1=[[@{${name}_total}]]}} {{Target2=[[@{${name}_total}+1]]}} {{skill=VS.}} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_die}}} {{DieDep=@{depletion_die}}} {{result=[[1d100+@{difficulty_dice} [Diff]]]}} {{dos1=[[@{${name}_total}-19]]}} {{dos2a=[[@{${name}_total}-20]]}} {{dos2b=[[@{${name}_total}-29]]}} {{dos3a=[[@{${name}_total}-30]]}} {{dos3b=[[@{${name}_total}-39]]}} {{dos4a=[[@{${name}_total}-40]]}} {{dos4b=[[@{${name}_total}-49]]}} {{dof1=[[@{${name}_total}+19]]}} {{dof2a=[[@{${name}_total}+20]]}} {{dof2b=[[@{${name}_total}+29]]}} {{dof3a=[[@{${name}_total}+30]]}} {{dof3b=[[@{${name}_total}+39]]}} {{dof4a=[[@{${name}_total}+40]]}} {{dof4b=[[@{${name}_total}+49]]}}`)
button(name=`roll_${skill}` type='roll' value!=`&{template:ou} {{name=@{character_name}}} {{roll_name=^{${skill}}}} {{attr=${skill}}} {{Target1=[[@{${name}_total}]]}} {{Target2=[[@{${name}_total}+1]]}} {{skill=VS.}} {{Diff=@{difficulty_dice}}} {{Spd1=@{speed_dice}}} {{Dmg=@{damage_dice}}} {{Deplet=@{depletion_dice}}} {{DieDif=@{difficulty_die}}} {{DieSpd=@{speed_die}}} {{DieDmg=@{damage_dice}}} {{DieDep=@{depletion_die}}} {{result=[[1d100+@{difficulty_dice} [Diff]]]}} {{dos1=[[@{${name}_total}-19]]}} {{dos2a=[[@{${name}_total}-20]]}} {{dos2b=[[@{${name}_total}-29]]}} {{dos3a=[[@{${name}_total}-30]]}} {{dos3b=[[@{${name}_total}-39]]}} {{dos4a=[[@{${name}_total}-40]]}} {{dos4b=[[@{${name}_total}-49]]}} {{dof1=[[@{${name}_total}+19]]}} {{dof2a=[[@{${name}_total}+20]]}} {{dof2b=[[@{${name}_total}+29]]}} {{dof3a=[[@{${name}_total}+30]]}} {{dof3b=[[@{${name}_total}+39]]}} {{dof4a=[[@{${name}_total}+40]]}} {{dof4b=[[@{${name}_total}+49]]}}`)
span(data-i18n=`${skill}`) #{skill}
label
input.center(name=`attr_${name}_advancement` title=`attr_${name}_advancement` type='number' value='0')
+10 -24
View File
@@ -19,33 +19,19 @@
{{#rollGreater() result dof4b}}<td style="text-align: center"><span class="resultr">-----</span></td>{{/rollGreater() result dof4b}}
<td width="30px"></td>
</tr>
<!-- testing DoS/DoF -->
<!--<tr><td>{{dos1}}</td><td>{{Target1}}</td></tr>
<tr><td>{{dos2b}}</td><td>{{dos2a}}</td></tr>
<tr><td>{{dos3b}}</td><td>{{dos3a}}</td></tr>
<tr><td>{{dos4b}}</td><td>{{dos4a}}</td></tr>
<tr><td>{{Target2}}</td><td>{{dof1}}</td></tr>
<tr><td>{{dof2a}}</td><td>{{dof2b}}</td></tr>
<tr><td>{{dof3a}}</td><td>{{dof3b}}</td></tr>
<tr><td>{{dof4a}}</td><td>{{dof4b}}</td></tr>-->
{{#rollGreater() Spd1 0}}
<tr>
{{#rollTotal() DieSpd 6}}
<td class="speed" colspan="3">Speed:{{Spd1}}</td>
{{/rollTotal() DieSpd 6}}
{{#rollTotal() DieSpd 5}}
<td class="speed speed-five" colspan="3">Speed:{{Spd1}}</td>
<td class="speed" colspan="3">Speed:{{Spd1}}</td>
{{/rollTotal() DieSpd 5}}
</tr>
</tr>z
{{/rollGreater() Spd1 0}}
{{#rollGreater() Dmg 0}}
<tr>
{{#rollTotal() DieDmg 6}}
<td class="damage" colspan="3">Damage:{{Dmg}}</td>
{{/rollTotal() DieDmg 6}}
{{#rollTotal() DieDmg 5}}
<td class="damage damage-five" colspan="3">Damage:{{Dmg}}</td>
{{/rollTotal() DieDmg 5}}
<td class="damage" colspan="3">Damage:{{Dmg}}</td>
</tr>
{{/rollGreater() Dmg 0}}
{{#rollGreater() Deplet 0}}
@@ -54,14 +40,14 @@
<td class="deplete" style="word-spacing: -3px;" colspan="3"><span style="font-size: 1em;">Depletion:</span>{{Deplet}}</td>
{{/rollTotal() DieDep 6}}
{{#rollTotal() DieDep 5}}
<td class="deplete deplete-five" style="word-spacing: -3px;" colspan="3"><span style="font-size: 1em;">Depletion:</span>{{Deplet}}</td>
<td class="deplete" style="word-spacing: -3px;" colspan="3"><span style="font-size: 1em;">Depletion:</span>{{Deplet}}</td>
{{/rollTotal() DieDep 5}}
</tr>
{{/rollGreater() Deplet 0}}
<tr><td colspan="3" style="word-spacing: -3px;font-size: .9em;"><b>Roll dice for all:</b>
<img src="https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/HuntersIcon_speed_16pxW_x16pxH.jpg" alt="Speed Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/HuntersIcon_damage_16pxW_x16pxH.jpg" alt="Damage Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/HuntersIcon_depletion_16pxW_x16pxH.jpg" alt="Depletion Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_speed_16pxW_x16pxH.jpg" alt="Speed Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_damage_16pxW_x16pxH.jpg" alt="Damage Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_depletion_16pxW_x16pxH.jpg" alt="Depletion Die" width="16" height="16">
</td>
</table>
</rolltemplate>
@@ -104,9 +90,9 @@
</tr>
{{/rollGreater() Deplet 0}}
<tr><td style="word-spacing: -3px;font-size: .9em;"><b>Reroll:</b>
<img src="https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/HuntersIcon_speed_16pxW_x16pxH.jpg" alt="Speed Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/HuntersIcon_damage_16pxW_x16pxH.jpg" alt="Damage Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/clevett/roll20-character-sheets/outbreakv1/Outbreak/src/img/HuntersIcon_depletion_16pxW_x16pxH.jpg" alt="Depletion Die" width="16" height="16"></td>
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_speed_16pxW_x16pxH.jpg" alt="Speed Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_damage_16pxW_x16pxH.jpg" alt="Damage Die" width="16" height="16">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Outbreak/src/img/HuntersIcon_depletion_16pxW_x16pxH.jpg" alt="Depletion Die" width="16" height="16"></td>
</tr>
</table>
</rolltemplate>
+16 -15
View File
@@ -25,17 +25,17 @@ button {
&[type='roll'],
&[type='action'] {
background: $gray;
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;
background: $gray;
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;
}
&[type='action'] {
@@ -50,10 +50,10 @@ button {
&[type='roll'] {
background: $gray;
&:focus, &:hover, &:active {
background-color: $green;
color: $black;
}
&:focus, &:hover, &:active {
background-color: $green;
color: $black;
}
}
}
@@ -70,6 +70,7 @@ input {
&[type="number"],
&[type="text"] {
padding: 1px 2px;
height: 100%;
width: 100% !important;
}
+9 -3
View File
@@ -13,7 +13,6 @@
,"5th":"5th"
,"Adv Medicine":"Adv Medicine"
,"Adv":"Adv"
,"Adv":"Adv"
,"Archery Gear":"Archery Gear"
,"Athletic Gear":"Athletic Gear"
,"Attr":"Attr"
@@ -44,7 +43,6 @@
,"Empathy":"Empathy"
,"Endurance":"Endurance"
,"Equipment": "Equipment"
,"Equipment":"Equipment"
,"Expert Skills":"Expert Skills"
,"Expression":"Expression"
,"Firefighting":"Firefighting"
@@ -111,5 +109,13 @@
,"Wb + Eb":"Wb + Eb"
,"Willpower":"Willpower"
,"d5!":"d5!"
,"d6":"d6"
,"d6":"d6",
"6": "6",
"6th": "6th",
"7": "7",
"7th": "7th",
"8": "8",
"8th": "8th",
"9": "9",
"9th": "9th"
}