diff --git a/Outbreak/outbreak.css b/Outbreak/outbreak.css index 255574e414..dba7120ea9 100644 --- a/Outbreak/outbreak.css +++ b/Outbreak/outbreak.css @@ -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; } diff --git a/Outbreak/outbreak.html b/Outbreak/outbreak.html index 0acc68d5e9..1fa07b3f83 100644 --- a/Outbreak/outbreak.html +++ b/Outbreak/outbreak.html @@ -1,846 +1,4 @@ - - -
- -
-
-
-

Name

- -

Player

- -

Campaign

- -
-
-

S.P.E.W Attributes

-
-
Strength -

Strength

-
- - - -
-
-
Perception -

Perception

-
- - - -
-
-
Empathy -

Empathy

-
- - - -
-
-
Willpower -

Willpower

-
- - - -
-
-
-

Character Resources

-
-

Survival Points:

- -

Gestalt Level:

- -

Competance Points:

- -
-
-

Skills

-

Basic Skills

-
-
-

-

-
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
-
-
-

-

-
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
-

Trained Skills

-
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
-
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
-

Expert Skills

-
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
-
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
- - - - - - -
-
-
-

Specalizations

-

Attr

-

Bonus

-

Adv

-

Skill

-

Roll

-
- - - - - - - - -
-
-
-
-
-

Equipment

- -
-
-
- -
- -
difficulty dice - -
-
speed dice - -
-
damage dice - -
-
depletion dice - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
-

Vitality

-
-

Injuries

-

Damage Threshold

-
-
-

-
- - - - - - - - - - -
-
-
-

Sb + Wb

- -
-
-

Bonus

- -
-
-

Total

- -
-
-
-
-
-

Viral

-
- - - - - - - - - - -
-

Symptoms

- -
-
-

Psyche

-

Wb + Eb

-

Bonus

-

Total

-

Morale

- + - = - -

Coping Mechanisms

- -
-
-
-

Training Value Bonus

-
-
-

Archery Gear

- -
-
-

Long Gun

- -
-
-

Bludgeoning

- -
-
-

Pistol

- -
-
-

Piercing

- -
-
-

Throwing

- -
-
-

Slashing

- -
-
-

Martial Arts

- -
-
-
-
-

Athletic Gear

- -
-
-

First Aid Kits

- -
-
-

Swimming/Diving

- -
-
-

Climbing Gear

- -
-
-

Medical Gear

- -
-
-

Tools

- -
-
-

Command App

- -
-
-

Recon Gear

- -
-
-

Value

- -
-
-

Firefighting

- -
-
-

Survival Kit

- -
-
-

Vehicles

- -
-
-
-
-
-
+

Name

Player

Campaign

S.P.E.W Attributes

Strength

Strength

Perception

Perception

Empathy

Empathy

Willpower

Willpower

Character Resources

Survival Points:

Gestalt Level:

Competance Points:

Skills

Basic Skills

Trained Skills

Expert Skills

Specalizations

Attr

Bonus

Adv

Skill

Roll

Equipment

difficulty dice
speed dice
damage dice
depletion dice

Vitality

Injuries

Damage Threshold

Sb + Wb

Bonus

Total

Viral

Symptoms

Psyche

Wb + Eb

Bonus

Total

Morale

+=

Coping Mechanisms

Training Value Bonus

Archery Gear

Long Gun

Bludgeoning

Pistol

Piercing

Throwing

Slashing

Martial Arts

Athletic Gear

First Aid Kits

Swimming/Diving

Climbing Gear

Medical Gear

Tools

Command App

Recon Gear

Value

Firefighting

Survival Kit

Vehicles

@@ -861,33 +19,19 @@ {{#rollGreater() result dof4b}}{{/rollGreater() result dof4b}} - - {{#rollGreater() Spd1 0}} {{#rollTotal() DieSpd 6}} {{/rollTotal() DieSpd 6}} {{#rollTotal() DieSpd 5}} - + {{/rollTotal() DieSpd 5}} - + z {{/rollGreater() Spd1 0}} {{#rollGreater() Dmg 0}} - {{#rollTotal() DieDmg 6}} - - {{/rollTotal() DieDmg 6}} - {{#rollTotal() DieDmg 5}} - - {{/rollTotal() DieDmg 5}} + {{/rollGreater() Dmg 0}} {{#rollGreater() Deplet 0}} @@ -896,14 +40,14 @@ {{/rollTotal() DieDep 6}} {{#rollTotal() DieDep 5}} - + {{/rollTotal() DieDep 5}} {{/rollGreater() Deplet 0}}
{{name}} rolls
-----
Speed:{{Spd1}}Speed:{{Spd1}}Speed:{{Spd1}}
Damage:{{Dmg}}Damage:{{Dmg}}Damage:{{Dmg}}
Depletion:{{Deplet}}Depletion:{{Deplet}}Depletion:{{Deplet}}
Roll dice for all: - Speed Die - Damage Die - Depletion Die + Speed Die + Damage Die + Depletion Die
@@ -946,13 +90,12 @@ {{/rollGreater() Deplet 0}} Reroll: - Speed Die - Damage Die - Depletion Die + Speed Die + Damage Die + Depletion Die - - \ No newline at end of file +}); \ No newline at end of file diff --git a/Outbreak/outbreak.pug b/Outbreak/outbreak.pug index 783fea8a5d..e4fb9e27f8 100644 --- a/Outbreak/outbreak.pug +++ b/Outbreak/outbreak.pug @@ -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='') diff --git a/Outbreak/outbreak.scss b/Outbreak/outbreak.scss index bec670b434..a0c33d1be9 100644 --- a/Outbreak/outbreak.scss +++ b/Outbreak/outbreak.scss @@ -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; + } } } } diff --git a/Outbreak/package.json b/Outbreak/package.json new file mode 100644 index 0000000000..ddad1d00ed --- /dev/null +++ b/Outbreak/package.json @@ -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" +} diff --git a/Outbreak/src/pug/_mixins.pug b/Outbreak/src/pug/_mixins.pug index aac1d28fdd..3c678a1935 100644 --- a/Outbreak/src/pug/_mixins.pug +++ b/Outbreak/src/pug/_mixins.pug @@ -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') diff --git a/Outbreak/src/pug/rolltemplate.html b/Outbreak/src/pug/rolltemplate.html index d8ffac5242..1057992386 100644 --- a/Outbreak/src/pug/rolltemplate.html +++ b/Outbreak/src/pug/rolltemplate.html @@ -19,33 +19,19 @@ {{#rollGreater() result dof4b}}-----{{/rollGreater() result dof4b}} - - {{#rollGreater() Spd1 0}} {{#rollTotal() DieSpd 6}} Speed:{{Spd1}} {{/rollTotal() DieSpd 6}} {{#rollTotal() DieSpd 5}} - Speed:{{Spd1}} + Speed:{{Spd1}} {{/rollTotal() DieSpd 5}} - + z {{/rollGreater() Spd1 0}} {{#rollGreater() Dmg 0}} - {{#rollTotal() DieDmg 6}} - Damage:{{Dmg}} - {{/rollTotal() DieDmg 6}} - {{#rollTotal() DieDmg 5}} - Damage:{{Dmg}} - {{/rollTotal() DieDmg 5}} + Damage:{{Dmg}} {{/rollGreater() Dmg 0}} {{#rollGreater() Deplet 0}} @@ -54,14 +40,14 @@ Depletion:{{Deplet}} {{/rollTotal() DieDep 6}} {{#rollTotal() DieDep 5}} - Depletion:{{Deplet}} + Depletion:{{Deplet}} {{/rollTotal() DieDep 5}} {{/rollGreater() Deplet 0}} Roll dice for all: - Speed Die - Damage Die - Depletion Die + Speed Die + Damage Die + Depletion Die @@ -104,9 +90,9 @@ {{/rollGreater() Deplet 0}} Reroll: - Speed Die - Damage Die - Depletion Die + Speed Die + Damage Die + Depletion Die \ No newline at end of file diff --git a/Outbreak/src/scss/_global.scss b/Outbreak/src/scss/_global.scss index fc4f16a07a..cf202a550d 100644 --- a/Outbreak/src/scss/_global.scss +++ b/Outbreak/src/scss/_global.scss @@ -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; } diff --git a/Outbreak/translation.json b/Outbreak/translation.json index 12fa9b6eea..fba85404e2 100644 --- a/Outbreak/translation.json +++ b/Outbreak/translation.json @@ -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" } \ No newline at end of file