Files
roll20-character-sheets/Outbreak/outbreak.pug
T

233 lines
12 KiB
Plaintext

//- VERSION
//- =============================
input(name='attr_version' type='hidden' value='1.02')
//- 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
.column
.grid.playerinfo.box
each val in ['Name', 'Player', 'Campaign']
-const name = val.toLowerCase();
h2(data-i18n=`${val}`) #{val}
input(name=`attr_character_${name}` placeholder=val title=`@{character_${name}}` type='text' value='')
.spewbox.box
h1.green-header(data-i18n='S.P.E.W Attributes') S.P.E.W Attributes
.grid.dicetypes
each val in ['Strength', 'Perception', 'Empathy', 'Willpower']
-const name = val.toLowerCase();
.grid.attributes
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}]]`)
label
input(name=`attr_${name}_bonus` title=`@{${name}_bonus}` type='text' value='0')
label
input(name=`attr_${name}_base` title=`@{${name}_base}` type='text' value=`0`)
h2(data-i18n='Character Resources') Character Resources
.grid.points
each val in ['Survival', 'Gestalt', 'Competance']
-const name = val === 'Gestalt' ? `${val.toLowerCase()}_level` : `${val.toLowerCase()}_points` ;
if val === 'Gestalt'
h3.yellow-header(data-i18n=`${val} Level:`) #{val} Level:
else
h3.green-header(data-i18n=`${val} Points:`) #{val} Points:
label
input.points(name=`attr_${name}` title=`@{${name}}` value='0' type='text')
.grid.skills
h1.yellow-header(data-i18n='Skills') Skills
h2(data-i18n='Basic Skills') Basic Skills
.skill-column
.grid.header
h3(data-i18n='Adv')
h3(data-i18n='Tot')
each val, key in {'Balance':['perception', 'willpower'], 'Brawl': ['strength', 'perception'], 'Climb':['strength','willpower'], 'Composure':['willpower', 'empathy'], 'Dodge':['perception', 'strength'], 'Endurance':['strength', 'willpower'], 'Expression':['empathy','perception'], 'Grapple':['strength', 'willpower']}
+skillList(key, val[0], val[1])
.skill-column
.grid.header
h3(data-i18n='Adv')
h3(data-i18n='Tot')
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
.skill-column
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 {'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
.skill-column
each val, key in {'Adv Medicine':['perception', 'willpower'], 'Construct Engineer':['perception', 'willpower'], 'Martial Arts':['strength', 'perception'], 'Pilot':['perception', 'willpower']}
+expertSkillList(key, val[0], val[1])
.skill-column
each val, key in {'Ride': ['empathy', 'willpower'], 'Science':['perception', 'willpower'], 'Survival':['perception', 'willpower'], 'Toughness':['strength', 'willpower']}
+expertSkillList(key, val[0], val[1])
.grid.repeating-container
each val in ['Specalizations', 'Attr', 'Bonus', 'Adv', 'Skill', 'Roll',]
h3(data-i18n=val) #{val}
fieldset(class='repeating_skills')
input(name=`attr_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_total` type='hidden' value=`(@{skill} [Skill]+@{button_base} [Kit])`)
input(name=`attr_skill_name` type='text' value=``)
select(name='attr_attribute_base' value='@{perception_bonus}')
option(value='@{strength_bonus}') strength
option(value='@{perception_bonus}' selected) perception
option(value='@{empathy_bonus}') empathy
option(value='@{willpower_bonus}') willpower
select(name='attr_attribute_bonus' value='@{willpower_bonus}')
option(value='@{strength_bonus}') strength
option(value='@{perception_bonus}') perception
option(value='@{empathy_bonus}') empathy
option(value='@{willpower_bonus}' selected) willpower
label
input.center(name=`attr_advancement` type='number' value='0')
label
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_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
textarea(data-i18n-placeholder='Equipment' name='attr_equipment' placeholder='Equipment' value='')
.column
.grid.box.logo
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_dice}}} {{DieDep=@{depletion_die}}}')
.die
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!pcs>6cf<0]]`) #{n}
- n++
.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
+dieRadios(val)
.grid.box.health
.grid.vitality
h1.green-header(data-i18n='Vitality') Vitality
.grid.header
h2(data-i18n='Injuries') Injuries
h2(data-i18n='Damage Threshold') Damage Threshold
.grid.body
h3(data-i18n='Health Points')
.grid.injuries
- let i = 0;
while i < 5
- i++
input(name=`attr_injury_${i}` type='checkbox')
input(name=`attr_injury_${i}_details` type='text' value='')
.grid.damage-threshold
.row
h3(data-i18n='Sb + Wb') Sb + Wb
input(name='attr_damage_treshold_base' type='number' value='(@{strength_bonus}+@{willpower_bonus})' disabled='true')
.row
h3(data-i18n='Bonus') Bonus
input(name='attr_damage_threshold_bonus' type='number' value='0')
.row
h3(data-i18n='Total') Total
input(name='attr_damage_threshold' type='number' value='(@{strength_bonus}+@{willpower_bonus}+@{damage_threshold_bonus})' disabled='true')
.grid.viral
h1.yellow-header(data-i18n='Viral') Viral
.virus-checkboxes
- let v = 0;
while v < 10
- v++
input(name=`attr_viral_${v}` value=v type='checkbox')
span
h2(data-i18n='Symptoms') Symptoms
textarea(name='attr_symptoms')
.grid.pysche
h1.yellow-header(data-i18n='Psyche') Psyche
h2(data-i18n='Wb + Eb') Wb + Eb
h2(data-i18n='Bonus') Bonus
h2(data-i18n='Total') Total
h2(data-i18n='Morale') Morale
input(name='attr_morale_base' type='number' value='(@{willpower_bonus}+@{empathy_bonus})' disabled='true')
span +
input(name='attr_morale_bonus' type='number' value='0')
span =
input(name='attr_morale' type='number' value='(@{morale_base}+@{morale_bonus})' disabled='true')
h2(data-i18n='Coping Mechanisms') Coping Mechanisms
textarea(name='attr_coping_mechanisms')
.grid.box.training-value
h1.green-header(data-i18n='Training Value Bonus') Training Value Bonus
.grid.red-kits
each val in ['Archery Gear', 'Long Gun', 'Bludgeoning', 'Pistol', 'Piercing', 'Throwing', 'Slashing', 'Martial Arts']
-const name = val.replace(' ', '_').toLowerCase();
.kits
h2(data-i18n=`${val}`) #{val}
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=`${imageSrc}/KitIcons_${val.replace(/ /g, '').replace('/', '')}_30x30.png`)
input(name=`attr_${name}` type='number' value='')
//- ROLL TEMPLATE
include src/pug/rolltemplate.html
//- SCRIPTS
script(type='text/worker')
include src/js/scripts.js