Files
roll20-character-sheets/Pirate Borg/pirateborgsheet.html
T
2024-06-03 13:15:14 -04:00

577 lines
22 KiB
HTML
Executable File

<input type="hidden" class="randompirate" name="attr_sheetTab" value="character" />
<div class="randompirate">
<button type="roll" value="https://www.limithron.com/randompirate"> Random Pirate</button>
</div>
<main>
<input type="hidden" class="sheet-tabstoggle" name="attr_sheetTab" value="character" />
<div class="page-switcher">
<button type="action" name="act_pc" >PC</button>
<button type="action" name="act_ship" >Ship</button>
<button type="action" name="act_npc" >NPC</button>
</div>
<div class="sheet-pc">
<section class="common f-col nowrap">
<div class="character_name noborder">
<input name="attr_character_name" type="text" value="Name">
</div >
<div class="class noborder">
<input name="attr_class" type="text" value="Class">
</div >
<div class="features noborder">
<textarea name="attr_features"></textarea>
</div >
<div class="ritual">
<fieldset class="repeating_rituals">
<div class="f-row nowrap">
<input name="attr_ritual" type="text" >
<button type="roll" name="roll_ritual_use" title="Use Ritual" value="&{template:rolls} {{title=Use Ritual}} {{subtitle=@{character_name} uses @{ritual}}} {{roll= [[1d20+@{spirit}[spirit] ]]}}"></button>
</div>
</fieldset>
</div >
<div class="spell_use noborder">
<input name="attr_spell_use" type="number" value="2" min="0">
<button type="roll" name="roll_spell_use" title="Use Spell/Prayer" value="&{template:rolls} {{title=Use Spell}} {{subtitle=@{character_name} rerolls for daily spells/prayers}} {{roll= [[ {1d2+@{spirit}[spirit],0d0}kh1 ]]}}"></button>
</div >
<div class="ritual_use noborder">
<input name="attr_ritual_use" type="number" value="2" min="0">
<button type="roll" name="roll_ritual_use" title="Use Ritual" value="&{template:rolls} {{title=Use Ritual}} {{subtitle=@{character_name} rerolls for daily rituals}} {{roll= [[ {1d4+@{spirit}[spirit],1d0}kh1 ]]}}"></button>
</div >
</section>
<section class="skill f-col nowrap">
<div class="hp stat noborder">
<input type="number" name="attr_hp" value="0">
</div>
<div class="hp_max stat noborder">
<input type="number" name="attr_hp_max" value="0">
</div>
<div class="stat strength noborder">
<select name="attr_strength" value="+0">
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0">+0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
<option value="5">+5</option>
<option value="6">+6</option>
</select>
<button type="roll" name="roll_strength" value="&{template:rolls} {{title=Strength}} {{subtitle=@{character_name} }} {{roll= [[d20+@{strength}[strength] ]]}}"> </button>
</div >
<div class="stat agility noborder">
<select name="attr_agility" value="+0">
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0">+0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
<option value="6">+6</option>
</select>
<button type="roll" name="roll_agility" value="&{template:rolls} {{title=Agility}} {{subtitle=@{character_name} }} {{roll= [[d20+@{agility}[agility] ]]}}"> </button>
</div >
<div class="stat presence noborder">
<select name="attr_presence" value="+0">
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0">+0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
<option value="6">+6</option>
</select>
<button type="roll" name="roll_presence" value="&{template:rolls} {{title=Presence}} {{subtitle=@{character_name} }} {{roll= [[d20+@{presence}[presence] ]]}}"> </button>
</div >
<div class="stat toughness noborder">
<select name="attr_toughness" value="+0">
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0">+0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
<option value="6">+6</option>
</select>
<button type="roll" name="roll_toughness" value="&{template:rolls} {{title=Toughness}} {{subtitle=@{character_name} }} {{roll= [[d20+@{toughness}[toughness] ]]}}"> </button>
</div >
<div class="stat spirit noborder">
<select name="attr_spirit" value="+0">
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0">+0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
<option value="6">+6</option>
</select>
<button type="roll" name="roll_spirit" value="&{template:rolls} {{title=Spirit}} {{subtitle=@{character_name} }} {{roll= [[d20+@{spirit}[spirit] ]]}}"> </button>
</div >
<div class="luck noborder">
<input type="number" name="attr_luck" value="2" min="0">
<button type="roll" name="roll_luck" value="&{template:rolls} {{title=Devil's Luck}} {{subtitle=@{character_name} }} {{roll= [[d@{luck_dr} ]]}}"> </button>
</div>
<div class="luck_radio noborder">
<input type="radio" name="attr_luck_dr" value="2" checked>
<input type="radio" name="attr_luck_dr" value="4">
<input type="radio" name="attr_luck_dr" value="6">
</div>
</section>
<section class="items f-col nowrap">
<div class="f-row nowrap weapon">
<span class="weapon-name"><h3>Weapon</h3></span>
<span class="weapon-attack-type"><h3>Type</h3></span>
<span class="weapon-dmg-die"><h3>DMG</h3></span>
</div>
<fieldset class="repeating_weapons">
<div class="f-row nowrap">
<input name="attr_weapon" type="text" class="weapon-name">
<select name="attr_attacktype" class="w-auto">
<option value="@{strength}">Melee( Strength)</option>
<option value="@{agility}">Melee( Agility)</option>
<option value="@{presence}">Ranged (Presence)</option>
</select>
<select name="attr_weapondamage" class="w-auto">
<option value="1d2" selected="selected">d2</option>
<option value="1d4">d4</option>
<option value="1d6">d6</option>
<option value="1d8">d8</option>
<option value="1d10">d10</option>
<option value="1d12">d12</option>
<option value="2d4">2d4</option>
<option value="2d6">2d6</option>
<option value="2d8">2d8</option>
<option value="?{Damage die|1d2}">Special</option>
</select>
<button type="roll" name="roll_attack" value="&{template:attack} {{name=@{weapon}}} {{attack=[[1d20 + @{attacktype}]]}} {{damage=[[@{weapondamage}]]}} {{critdmg=[[@{weapondamage}*2]]}} {{misfire=[[d6]]}} {{misfiredmg=[[d2]]}} {{subtitle=@{character_name} }}"></button>
</div>
</fieldset>
<div class="f-row nowrap armor">
<h3>Armor/Clothing/Hat</h3>
<label><input type="radio" name="attr_armortier" value="0" checked><br>0</label>
<label><input type="radio" name="attr_armortier" value="d2"><br>-d2</label>
<label><input type="radio" name="attr_armortier" value="d4"><br>-d4</label>
<label><input type="radio" name="attr_armortier" value="d6"><br>-d6</label>
<button type="roll" name="roll_defend" value="&{template:rolls} {{name=Defend with @{armor_name}}} {{subtitle=@{character_name} }} {{Defense Roll=[[1d20 + @{agility}]]}} {{Damage/Damage Reduction=[[[[?{Attacker's DMG or DMG Formula. Leave Blank for just an armor roll|0}]]-[[@{armortier}]] ]] }}">Defend</button>
</div>
<input name="attr_armor_name" type="text">
<div class="equipment noborder">
<fieldset class="repeating_equipment">
<div class="f-row nowrap">
<textarea name="attr_equipment"></textarea>
<input name="attr_equipment_large" type="checkbox" value="large">
</div>
</fieldset>
</div >
<div class="silver noborder">
<input name="attr_silver" type="number" value="0"></input>
</div >
</section>
<div class="background noborder">
<textarea name="attr_background"></textarea>
</div >
<div class="flaws noborder">
<textarea name="attr_flaws"></textarea>
</div >
<div class="trademark noborder">
<textarea name="attr_trademark"></textarea>
</div >
<div class="idiosyncrasies noborder">
<textarea name="attr_idiosyncrasies"></textarea>
</div >
<div class="incidents noborder">
<textarea name="attr_incidents"></textarea>
</div >
<div class="thing_of_importance noborder">
<textarea name="attr_thing_of_importance"></textarea>
</div >
</div>
<div class="sheet-ship">
<section class="ship f-col nowrap">
<div class="f-row nowrap noborder ship-name">
<label><input name="attr_vessel_name" type="text"></label>
</div>
<div class="f-row stat noborder ship-hp">
<label><input type="number" class="ship-hp-current" name="attr_ship_hp" value="1"> <input type="number" class="ship-hp-max" name="attr_ship_hp_max" value="1"></label>
</div>
<div class="ship-hull-radio noborder">
<input type="radio" name="attr_ship_hull" value="0" checked>
<input type="radio" name="attr_ship_hull" value="d2">
<input type="radio" name="attr_ship_hull" value="d4">
<input type="radio" name="attr_ship_hull" value="d6">
<button type="roll" name="roll_ship_hull" value="&{template:rolls} {{title=Ship Hull}} {{subtitle=@{vessel_name} }} {{Hull Prevents= [[@{ship_hull}[ship_hull] ]]}}"> </button>
</div>
<div class="stat ship-skill noborder">
<select name="attr_crew_skill" value="+0">
<option value="0">*</option>
<option value="-4">-4</option>
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="+0" checked>+0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
<option value="6">+6</option>
</select>
<button type="roll" name="roll_ship_skill" value="&{template:rolls} {{title=Ship Skill}} {{subtitle=@{vessel_name} }} {{Ship Skill= [[d20+@{crew_skill}[Crew Skill] + [[?{Is a PC helping repair? What is their Presence Mod?|0|-1|-2|-3|+1|+2|+3|+4|+5|+6}]] [PC Mod] ]]}}"> </button>
</div >
<div class="ship-stat ship-broadsides noborder">
<button type="roll" name="roll_attack" value="&{template:shipattack} {{name=Broadside Attack}} {{attack=[[1d20 + @{crew_skill} [Crew Skill]+ [[?{Is a PC helping? What is their Presence Mod?|0|-1|-2|-3|+1|+2|+3|+4|+5|+6}]] [PC Mod] ]]}} {{damage=[[@{ship_broadsides}]]}} {{critdmg=[[@{ship_broadsides}*2]]}} {{subtitle=@{vessel_name} }}"></button>
<select name="attr_ship_broadsides" value="+0">
<option value="0" checked>None</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value=d8" >d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
</select>
</div >
<div class="f-row ship-broadsides-count">
<label><input type="number" name="attr_ship_broadsides_count" value="0" min="0">@</label>
</div>
<div class="ship-stat ship-small-arms noborder">
<button type="roll" name="roll_attack" value="&{template:shipattack} {{name=Small Arms Attack}} {{attack=[[1d20 + @{crew_skill} [Crew Skill] + [[?{Is a PC helping? What is their Presence Mod?|0|-1|-2|-3|+1|+2|+3|+4|+5|+6}]] [PC Mod] ]] }} {{damage=[[@{ship_small_arms}]]}} {{critdmg=[[@{ship_small_arms}*2]]}} {{subtitle=@{vessel_name} }}"></button>
<select name="attr_ship_small_arms" value="+0">
<option value="0" checked>None</option>
<option value="d2">d2</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value=d8" >d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
</select>
</div >
<div class="f-row ship-small-arms-count">
<label><input type="number" name="attr_small_arms_count" value="0" min="0">@</label>
</div>
<div class="ship-stat ship-agility noborder">
<button type="roll" name="roll_ship_agility" value="&{template:rolls} {{title=Ship Agility}} {{subtitle=@{vessel_name} }} {{Ship Agility= [[d20+@{ship_agility}[Ship Agility] + [[?{Is a PC helping? What is their Agility (Full Sail) or Strength (Come About) Mod?|0|-1|-2|-3|+1|+2|+3|+4|+5|+6}]] [PC Mod] ]] }}"> </button>
<select name="attr_ship_agility" value="+0">
<option value="-4">-4</option>
<option value="-3">-3</option>
<option value="-2">-2</option>
<option value="-1">-1</option>
<option value="0" checked>+0</option>
<option value="1">+1</option>
<option value="2">+2</option>
<option value="3">+3</option>
<option value="4">+4</option>
<option value="5">+5</option>
</select>
</div >
<div class="f-row stat noborder ship-speed">
<label><input type="number" name="attr_vessel_speed" value="0" min="0"></label>
</div>
</section>
<section class="vessel f-col nowrap tab-ship">
<div class="f-row nowrap noborder ship-class">
<label><input type="text" name="attr_vessel_class" value=""></label>
</div>
<div class="ship-stat ship-ram noborder">
<select name="attr_ship_ram" value="">
<option value="0" checked>none</option>
<option value="d2">d2</option>
<option value="d4">d4</option>
<option value="d6">d6</option>
<option value="d8">d8</option>
<option value="d10">d10</option>
<option value="d12">d12</option>
</select>
<button type="roll" name="roll_ship_ram" value="&{template:rolls} {{title=Ship Ram}} {{subtitle=@{vessel_name} }} {{Ship Rams for= [[ [[@{ship_ram}[ship_ram] ]] + [[?{How far has it travelled since last turn?|0|1|2|3|4|5|6}]] ]] }}"> </button>
</div >
<div class="f-row stat noborder ship-cargo-max">
<label><input type="number" name="attr_vessel_cargo_max" value="0" min="0"></label>
</div>
<div class="noborder ship-cargo">
<fieldset class="repeating_cargo">
<input name="attr_cargo" type="text" >
</fieldset>
</div>
<div class="f-row stat noborder ship-crew-min">
<label><input type="text" name="attr_vessel_crew_min" value="0" min="0"></label>
</div>
<div class="f-row stat noborder ship-crew-max">
<label><input type="text" name="attr_vessel_crew_max" value="0" min="0"></label>
</div>
<div class="f-row nowrap ship-captain">
<label>Captain: <br><input type="text" name="attr_vessel_captain" value=""></label>
</div>
<div class="f-row nowrap ship-quartermaster">
<label>Quartermaster:<br> <input type="text" name="attr_vessel_quartermaster" value=""></label>
</div>
<div class="f-row nowrap ship-special">
<label>Special:<br> <textarea name="attr_ship_special"></textarea></label>
</div>
</section>
</div>
<div class="sheet-npc">
<section class="common f-col nowrap">
<div class="npc-name noborder">
<input type="text" name="attr_npc_name" value="Name?">
</div>
<div class="npc-desc">
<textarea name="attr_npc_desc"></textarea>
</div>
<div class="f-row stat noborder npc-hp">
<input type="number" name="attr_npc_hp" value="1">
<input type="number" name="attr_npc_hp_max" value="1">
</div>
<div class="stat npc-morale noborder">
<input type="text" name="attr_npc_morale" value="-">
<button type="roll" name="roll_npc_morale" value="&{template:rolls} {{title=Morale}} {{subtitle=@{npc_name} }} {{NPC Morale= [[@{npc_morale}[npc_morale] ]]}} {{Morale Test= [[2d6]]}}"> </button>
</div >
<div class="npc-armor-radio noborder">
<input type="radio" name="attr_npc_armor" value="0" checked>
<input type="radio" name="attr_npc_armor" value="d2">
<input type="radio" name="attr_npc_armor" value="d4">
<input type="radio" name="attr_npc_armor" value="d6">
<button type="roll" name="roll_npc_armor" value="&{template:rolls} {{title=Armor: @{npc_armor_desc}}} {{subtitle=@{npc_name}}} {{Damage Reduction=[[@{npc_armor}]]}}">Armor</button>
</div>
<div class="npc-armor-desc">
<input type="text" name="attr_npc_armor_desc" value="">
</div>
<div class="npc-attack1 noborder stat">
<input type="text" name="attr_npc_attack1" value="d4">
<button type="roll" name="roll_npc_attack1" value="&{template:rolls} {{title=@{npc_attack1_desc}}} {{subtitle=@{npc_name} }} {{Damage= [[@{npc_attack1}[npc_attack1] ]]}} "> </button>
</div>
<div class="npc-attack1-desc ">
<input type="text" name="attr_npc_attack1_desc" value="Attack Name">
</div>
<div class="npc-attack2 noborder stat">
<input type="text" name="attr_npc_attack2" value="">
<button type="roll" name="roll_npc_attack2" value="&{template:rolls} {{title=@{npc_attack2_desc}}} {{subtitle=@{npc_name} }} {{Damage= [[@{npc_attack2}[npc_attack2] ]]}} "> </button>
</div>
<div class="npc-attack2-desc ">
<input type="text" name="attr_npc_attack2_desc" value="">
</div>
<div class="npc-special ">
<textarea name="attr_npc_special"></textarea>
</div>
</section>
</div>
</main>
<!-- Workers -->
<script type="text/worker">
const buttonlist = ["pc","npc","ship"];
buttonlist.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
sheetTab: button
});
});
});
</script>
<script type="text/worker">
on(`change:armortier`, () => {
getAttrs([stat], values => {
const armorstat_score = parseInt(values["armortier"], 10)||0;
var armor_agi_modifier = 0;
var armor_def_modifier = 0;
if (armorstat_score == 6) {
armor_agi_modifier = 4;
armor_def_modifier = 2;
} else if (armorstat_score == 4) {
armor_def_modifier = 2;
armor_agi_modifier = 2;
} else {
armor_agi_modifier = 0;
armor_def_modifier = 0;
}
setAttrs({
["agidr"]: armor_agi_modifier,
["defdr"]: armor_def_modifier
});
});
});
</script>
<!-- roll template -->
<rolltemplate class="sheet-rolltemplate-rolls">
<div class="sheet-container">
<div class="sheet-header">
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
{{#name}}<div class="sheet-name">{{name}}</div>{{/name}}
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
</div>
<div class="sheet-content">
{{#allprops() title name subtitle desc}}
<div class="sheet-key">{{key}}</div>
<div class="sheet-value">{{value}}</div>
{{/allprops() title name subtitle desc}}
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-attack">
<div class="sheet-container">
<div class="sheet-header">
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
{{#name}}<div class="sheet-name">{{name}}</div>{{/name}}
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
</div>
<div class="sheet-content">
<div class="sheet-key">Attack Roll</div>
<div class="sheet-value">{{attack}}</div>
{{#rollWasCrit() attack}}
{{/rollWasCrit() attack}}
{{#rollWasFumble() attack}}
{{/rollWasFumble() attack}}
{{#^rollWasCrit() attack}}
<div class="sheet-key">Damage</div>
<div class="sheet-value">{{damage}}</div>
</div>
{{/^rollWasCrit() attack}}
{{#rollWasCrit() attack}}
<div class="sheet-key">Damage</div>
<div class="sheet-value">{{critdmg}}</div>
</div>
<div class="sheet-crit-black">
<span class="lacquer"><strong>Critical hit!</strong><br>Reduce armor/protection one tier (after dealing damage).</span>
</div>
{{/rollWasCrit() attack}}
{{#rollWasFumble() attack}}
<div class="sheet-crit-black">
<span class="lacquer"><strong>Weapon breaks or is lost! </strong><br>Black powder weapons roll {{misfire}} on the misfire table.<br><strong>1-2</strong> Backfire. Take {{misfiredmg}} damage.<br><strong>3-4</strong> Broken. Weapon is broken.<br><strong>5-6</strong> Both.</span>
</div>
{{/rollWasFumble() attack}}
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-shipattack">
<div class="sheet-container">
<div class="sheet-header">
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
{{#name}}<div class="sheet-name">{{name}}</div>{{/name}}
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
</div>
<div class="sheet-content">
<div class="sheet-key">Attack Roll</div>
<div class="sheet-value">{{attack}}</div>
{{#rollWasCrit() attack}}
{{/rollWasCrit() attack}}
{{#rollWasFumble() attack}}
{{/rollWasFumble() attack}}
{{#^rollWasCrit() attack}}
<div class="sheet-key">Damage</div>
<div class="sheet-value">{{damage}}</div>
{{/^rollWasCrit() attack}}
{{#rollWasCrit() attack}}
<div class="sheet-key">Damage</div>
<div class="sheet-value">{{critdmg}}</div>
<div class="sheet-crit">
<span style="color: green;"><strong>CRIT HIT!</strong></span><br><br>Reduce hull one tier (after dealing damage).<br><br>Ship hulls cannot be repaired at sea.
</div>
{{/rollWasCrit() attack}}
{{#rollWasFumble() attack}}
<div class="sheet-fumble">
<span style="color: red;"><strong>FUMBLE!</strong></span><br><br>Cannons or small arms misfire.<br><br>A damaged weapon must be repaired before it can be fired again.<br><br>GM decides outcome for other crew actions, if any. </div>
{{/rollWasFumble() attack}}
</div>
</div>
</rolltemplate>