Sheet for Fantastic Heros & Witchery

This is a character sheet for the OSR game Fantastic Heros and Witchery. It features automatic checks, initiative, and attacks, as well as a spell book.
This commit is contained in:
lorbog
2017-10-10 21:38:10 -04:00
parent 08ae74255a
commit b7ed3a065d
4 changed files with 624 additions and 0 deletions
+221
View File
@@ -0,0 +1,221 @@
.charsheet {
font-family: "Georgia", serif;
text-align: center;
border: 2px solid;
border-radius: 5px;
}
div.sheet-tab-content { display: none; }
input.sheet-tab1:checked ~ div.sheet-tab1,
input.sheet-tab2:checked ~ div.sheet-tab2,
input.sheet-tab3:checked ~ div.sheet-tab3 { display: block; }
textarea.sheet-spell-desc { display: none; }
input.sheet-spell-hide:checked ~ textarea.sheet-spell-desc {display: inline;}
.sheet-shortText {
width: 12%;
}
.sheet-shortText2 {
width: 45px;
}
.sheet-shortText3 {
width: 80px;
}
.sheet-heading {
text-align: center;
border-style: solid;
border-bottom: none;
border-width: 2px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
font-weight: bold;
margin: auto;
width: 100%;
}
.sheet-heading2 {
text-align: center;
border-style: solid;
border-top: none;
border-width: 2px;
padding-bottom: 5px;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
font-weight: bold;
margin: auto;
width: 100%;
}
.sheet-name {
width: 80%;
}
.sheet-attributes {
text-align: center;
margin: auto;
width: 100%;
border-style: solid;
border-width: 2px;
border-radius: 5px;
margin-top: 5px;
padding-top: 5px;
padding-bottom: 15px;
}
.sheet-spellArea {
text-align: center;
margin: auto;
width: 100%;
border-style: solid;
border-width: 2px;
border-radius: 5px;
margin-top: 5px;
padding-top: 5px;
padding-bottom: 15px;
}
.sheet-spellArea table {
margin: auto;
border: none;
}
.sheet-attributes td {
width: 10%;
margin: auto;
border: 1px solid;
}
.sheet-attributes th {
width: 10%;
margin: auto;
}
.sheet-attributes table {
margin: auto;
border: none;
}
.sheet-attributeName {
border-top: 1px solid;
font-size: 12pt;
}
.sheet-attributeName2 {
border-top: 1px solid;
border-bottom: 1px solid;
font-size: 12pt;
}
.sheet-pointsBlack {
background-color: black;
color: white;
border: 2px solid;
border-color: black;
width: 90%;
margin: auto;
}
.sheet-insanities {
width: 90%;
height: 55px;
}
.sheet-points {
border: 2px solid;
border-radius: 5px;
width: 100%;
height: 135px;
}
.sheet-points input {
width: 180px;
}
.sheet-current {
font-weight: bold;
}
.sheet-pointsSection {
margin-top: 5px;
}
.sheet-pointsSection2 {
margin-top: 5px;
}
.sheet-pointsTable {
margin: auto;
margin-top: 20px;
}
.sheet-pointsTable2 {
margin: auto;
margin-top: 5px;
}
.sheet-pointsTable caption{
width: 150px;
margin: auto;
}
.sheet-armorTable {
margin: auto;
width: 100%;
}
.sheet-weaponTableGuide td {
height: 1px;
visibility: hidden;
}
.sheet-weaponHeading {
margin-left: 0px;
text-align: left;
}
.sheet-spell-desc {
width: 97%;
height: 25px;
}
.sheet-rolltemplate-basic {
font-family: "Georgia", serif;
text-align: center;
border: 2px solid;
border-radius: 5px;
height: 115px;
background: white;
margin: auto;
}
.sheet-rolltemplate-basic .inlinerollresult {
font-size: 18px;
background: white;
border: none;
}
.sheet-rolltemplate-basic .inlineroll {
background: white;
}
.sheet-rolltemplate-basic .inlinerollresult.fullcrit {
font-size: 18px;
border: none;
color: green;
}
.sheet-rolltemplate-basic .inlinerollresult.fullfail {
font-size: 18px;
border: none;
color: red;
}
.sheet-equipmentMath {
display: none;
}
+395
View File
@@ -0,0 +1,395 @@
<span>Core</span><input type="radio" name="attr_tab" class="sheet-tab sheet-tab1" value="1" checked="checked"><span title="First Tab"></span>
<span>Equipment</span><input type="radio" name="attr_tab" class="sheet-tab sheet-tab2" value="2"><span title="Second Tab"></span>
<span>Magic</span><input type="radio" name="attr_tab" class="sheet-tab sheet-tab3" value="3"><span title="Third Tab"></span>
<div class="sheet-tab-content sheet-tab1">
<div class="sheet-heading">
<h2>Character Information</h2>
Name <input type="text" class="sheet-name" name="attr_name">
</div>
<div class="sheet-heading2">
<div class="sheet-row">
Class(es) <input type="text" name="attr_class">
Level <input type="number" name="attr_level">
Race <input type="text" name="attr_race">
Experience <input type="number" name="attr_experience">
</div>
<div>
Gender <input type="text" class="sheet-shortText" name="attr_gender">
Age <input type="number" name="attr_age">
Height <input type="text" class="sheet-shortText" name="attr_height">
Weight <input type="text" class="sheet-shortText" name="attr_weight">
Eyes <input type="text" class="sheet-shortText" name="attr_eyes">
Hair <input type="text" class="sheet-shortText" name="attr_hair">
</div>
</div>
<div class="sheet-attributes">
<h2>Attributes</h2>
<table>
<tr>
<th>Attribute</th>
<th>Score</th>
<th>Current</th>
<th>Modifier</th>
<th>Random<br>Number</th>
<th>Maximum<br>Number</th>
<th>Severe %</th>
<th>Facile %</th>
<th>Roll</th>
</tr>
<tr>
<th class="sheet-attributeName">Str.</th>
<td><input type="number" name="attr_strength_max"></td>
<td><input type="number" name="attr_strength"></td>
<td><input type="number" name="attr_strength_mod"></td>
<td><input class="sheet-shortText2" type="text" name="attr_strength_rn"></td>
<td><input class="sheet-shortText2" type="text" name="attr_strength_mn"></td>
<td><input type="number" name="attr_strength_severe"></td>
<td><input type="number" name="attr_strength_facile"></td>
<td><button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=a strength check}} {{roll=[[d20+@{strength_mod}+?{Modifier|0}]]}}"></button></td>
</tr>
<tr>
<th class="sheet-attributeName">Dex.</th>
<td><input type="number" name="attr_dexterity_max"></td>
<td><input type="number" name="attr_dexterity"></td>
<td><input type="number" name="attr_dexterity_mod"></td>
<td><input class="sheet-shortText2" type="text" name="attr_dexterity_rn"></td>
<td><input class="sheet-shortText2" type="text" name="attr_dexterity_mn"></td>
<td><input type="number" name="attr_dexterity_severe"></td>
<td><input type="number" name="attr_dexterity_facile"></td>
<td><button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=a dexterity check}} {{roll=[[d20+@{dexterity_mod}+?{Modifier|0}]]}}"></button></td>
</tr>
<tr>
<th class="sheet-attributeName">Con.</th>
<td><input type="number" name="attr_constitution_max"></td>
<td><input type="number" name="attr_constitution"></td>
<td><input type="number" name="attr_constitution_mod"></td>
<td><input class="sheet-shortText2" type="text" name="attr_constitution_rn"></td>
<td><input class="sheet-shortText2" type="text" name="attr_constitution_mn"></td>
<td><input type="number" name="attr_constitution_severe"></td>
<td><input type="number" name="attr_constitution_facile"></td>
<td><button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=a constitution check}} {{roll=[[d20+@{constitution_mod}+?{Modifier|0}]]}}"></button></td>
</tr>
<tr>
<th class="sheet-attributeName">Int.</th>
<td><input type="number" name="attr_intelligence_max"></td>
<td><input type="number" name="attr_intelligence"></td>
<td><input type="number" name="attr_intelligence_mod"></td>
<td><input class="sheet-shortText2" type="text" name="attr_intelligence_rn"></td>
<td><input class="sheet-shortText2" type="text" name="attr_intelligence_mn"></td>
<td><input type="number" name="attr_intelligence_severe"></td>
<td><input type="number" name="attr_intelligence_facile"></td>
<td><button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=a intelligence check}} {{roll=[[d20+@{intelligence_mod}+?{Modifier|0}]]}}"></button></td>
</tr>
<tr>
<th class="sheet-attributeName">Wis.</th>
<td><input type="number" name="attr_wisdom_max"></td>
<td><input type="number" name="attr_wisdom"></td>
<td><input type="number" name="attr_wisdom_mod"></td>
<td><input class="sheet-shortText2" type="text" name="attr_wisdom_rn"></td>
<td><input class="sheet-shortText2" type="text" name="attr_wisdom_mn"></td>
<td><input type="number" name="attr_wisdom_severe"></td>
<td><input type="number" name="attr_wisdom_facile"></td>
<td><button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=a wisdom check}} {{roll=[[d20+@{wisdom_mod}+?{Modifier|0}]]}}"></button></td>
</tr>
<tr>
<th class="sheet-attributeName2">Cha.</th>
<td><input type="number" name="attr_charisma_max"></td>
<td><input type="number" name="attr_charisma"></td>
<td><input type="number" name="attr_charisma_mod"></td>
<td><input class="sheet-shortText2" type="text" name="attr_charisma_rn"></td>
<td><input class="sheet-shortText2" type="text" name="attr_charisma_mn"></td>
<td><input type="number" name="attr_charisma_severe"></td>
<td><input type="number" name="attr_charisma_facile"></td>
<td><button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=a charisma check}} {{roll=[[d20+@{charisma_mod}+?{Modifier|0}]]}}"></button></td>
</tr>
</table>
</div>
<div class="sheet-3colrow sheet-pointsSection">
<div class="sheet-col">
<div class="sheet-points">
<h3>Armor Class</h3>
<div class="sheet-pointsBlack">
<span>Ascending <input type="number" name="attr_ac_ascending">
</span> <span>Descending <input type="number" name="attr_ac_descending"></span>
</div>
<table class="sheet-armorTable">
<tr>
<th>Touch AC</th>
<th>Surprised</th>
<th>Shieldless</th>
<th>Rear AC</th>
</tr>
<tr>
<td><input type="number" name="attr_ac_touch"></td>
<td><input type="number" name="attr_ac_surprised"></td>
<td><input type="number" name="attr_ac_shieldless"></td>
<td><input type="number" name="attr_ac_rear"></td>
</tr>
</table>
</div>
</div>
<div class="sheet-col">
<div class="sheet-points">
<h3>Hit-Points</h3>
<div class="sheet-pointsBlack"><span>Wound HP <input type="number" name="attr_whp_max"></span> <span>Vitality HP <input type="number" name="attr_vhp_max"></span></div>
<span class="sheet-current">Current</span>
<input type="number" name="attr_whp">
<span class="sheet-current">Current</span>
<input type="number" name="attr_vhp">
</div>
</div>
<div class="sheet-col">
<div class="sheet-points">
<h3>Sanity Points</h3>
<div class="sheet-pointsBlack"><span>Maximum <input type="number" name="attr_sanity_max"></span> <span>Current <input type="number" name="attr_sanity"></span></div>
<textarea class="sheet-insanities" name="attr_insanities"></textarea>
</div>
</div>
</div>
<div class="sheet-3colrow sheet-pointsSection2">
<div class="sheet-col">
<div class="sheet-points">
<table class="sheet-pointsTable">
<caption><h3>Saving Throws</h3></caption>
<tr>
<th>Base</th>
<th>Special/Bonuses</th>
</tr>
<tr>
<td><input type="number" name="attr_save"></td>
<td><input type="text" name="attr_save_text"></td>
</tr>
</table>
</div>
</div>
<div class="sheet-col">
<div class="sheet-points">
<table class="sheet-pointsTable">
<caption><h3>Base Speed</h3></caption>
<tr>
<th>Feet</th>
<th>Units</th>
</tr>
<tr>
<td><input type="number" name="attr_move_feet"></td>
<td><input type="number" name="attr_move_units"></td>
</tr>
</table>
</div>
</div>
<div class="sheet-col">
<div class="sheet-points">
<table class="sheet-pointsTable2">
<tr>
<th>Initiative</th>
<th>Non-prof<br>Penulty</th>
<th>Base BtH</th>
</tr>
<tr>
<td><button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=initiative}} {{roll=[[d6+?{Modifier|0}&{tracker}]]}}"></button></td>
<td><input type="number" name="attr_prof_penulty"></td>
<td><input type="number" name="attr_bth"></td>
</tr>
</table>
<div><h5>Crit Effect</h5></div>
<div><input type="text" name="attr_crit_effect"></div>
</div>
</div>
</div>
<div class="sheet-attributes">
<h2>Weapons</h2>
<div class="weaponHeading">
<span style="margin-left:10.5%; margin-right:40px">Name</span>
<span style="margin-right:20px">Speed</span>
<span style="margin-right:12px">Total BtH</span>
<span style="margin-right:16px">Damage</span>
<span style="margin-right:20px">Special/Magic</span>
<span style="margin-right:50px">Range</span>
<span style="margin-right:50px">Size</span>
<span style="margin-right:30px">Type</span>
<span style="margin-right:8px">Weight</span>
<span>Roll</span>
</div>
<div>
<fieldset class="repeating_weapons">
<input type="text" class="sheet-shortText3" name="attr_weapon_name">
<input type="text" class="sheet-shortText3" name="attr_weapon_speed">
<input type="number" name="attr_weapon_bth">
<input type="text" class="sheet-shortText3" name="attr_weapon_damage">
<input type="text" class="sheet-shortText3" name="attr_weapon_special">
<input type="text" class="sheet-shortText3" name="attr_weapon_range">
<input type="text" class="sheet-shortText3" name="attr_weapon_size">
<input type="text" class="sheet-shortText3" name="attr_weapon_type">
<input type="number" name="attr_weapon_weight">
<button type="roll" value="&{template:basic} {{name=@{name}}} {{rolltype=an attack}} {{attackRoll=[[d20+@{weapon_bth}+?{To Hit Modifier|0}]]}} {{critEffect=@{crit_effect}}} {{damage=[[@{weapon_damage}]]}} {{range=@{weapon_range}}}"></button>
</fieldset>
</div>
</div>
<div class="sheet-attributes">
<h2>Class Features, Skills, Talents, etc</h2>
<textarea class="features" style="width:95%;"></textarea>
</div>
</div>
<div class="sheet-tab-content sheet-tab2">
<div class="sheet-attributes">
<h2>Encumbrance</h2>
Total Weight: <input type="number" name="attr_total_weight">
<div class="sheet-3colrow">
<div class="sheet-col">
Light: <input type="number" name="attr_encumbrance_light">
</div>
<div class="sheet-col">
Medium: <input type="number" name="attr_encumbrance_medium">
</div>
<div class="sheet-col">
Heavy: <input type="number" name="attr_encumbrance_heavy">
</div>
</div>
</div>
<div class="sheet-attributes">
<h2>Equipment</h2>
<div>
<span style="position:relative; right:10%;">Name</span>
<span style="position:relative; left:10%;">Notes</span>
<span style="position:relative; left:21%;">Weight</span>
<span style="position:relative; left:22%;">Quantity</span>
</div>
<fieldset class="repeating_equipment">
<input type="text" name="attr_equipment_name">
<input type="text" name="attr_equipment_notes">
<input type="number" name="attr_equipment_weight">
<input type="number" name="attr_equipment_quantity">
<input type="number" class="sheet-equipmentMath" name="attr_equipment_math" value="@{equipment_name}*@{equipment_quantity}">
</fieldset>
</div>
</div>
<div class="sheet-tab-content sheet-tab3">
<div class="sheet-attributes">
<h2>Spells per Day</h2>
<table>
<tr>
<th> </th>
<th>Lvl.1</th>
<th>Lvl.2</th>
<th>Lvl.3</th>
<th>Lvl.4</th>
<th>Lvl.5</th>
<th>Lvl.6</th>
<th>Lvl.7</th>
<th>Lvl.8</th>
<th>Lvl.9</th>
</tr>
<tr>
<th class="attributeName">Max</th>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
</tr>
<tr>
<th class="attributeName2">Current</th>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
<td><input type="number"></td>
</tr>
</table>
</div>
<div class="sheet-spellArea">
<h2>Spell Book</h2>
<table>
<tr style="visibility: hidden;">
<th><input type="checkbox"></th>
<th><input type="text"></th>
<th><input type="number"></th>
<th><input type="text" class="sheet-shortText3"></th>
<th><input type="text" class="sheet-shortText3"></th>
<th><input type="text" class="sheet-shortText3"></th>
<th><input type="text" class="sheet-shortText3"></th>
<th><input type="text" class="sheet-shortText3"></th>
<th><input type="checkbox"></th>
</tr>
<tr>
<td>P</td>
<td>Spell</td>
<td>Level</td>
<td>Range</td>
<td>Cast Time</td>
<td>Duration</td>
<td>Save</td>
<td>Resist</td>
</tr>
</table>
<fieldset class="repeating_spells">
<td><input type="checkbox" name="attr_spell_prepared"></td>
<td><input type="text" name="attr_spell_name"></td>
<td><input type="number" name="attr_spell_level"></td>
<td><input type="text" class="sheet-shortText3" name="attr_spell_range"></td>
<td><input type="text" class="sheet-shortText3" name="attr_spell_castTime"></td>
<td><input type="text" class="sheet-shortText3" name="attr_spell_duration"></td>
<td><input type="text" class="sheet-shortText3" name="attr_spell_save"></td>
<td><input type="text" class="sheet-shortText3" name="attr_spell_resist"></td>
<td><input type="checkbox" name="attr_spell_hide" class="sheet-spell-hide"></td>
<textarea class="sheet-spell-desc" name="attr_spell_desc"></textarea>
</fieldset>
</div>
<div class="sheet-attributes">
<h2>Misc Magic</h2>
<textarea name="attr_magic" style="width:97%;"></textarea>
</div>
</div>
<rolltemplate class="sheet-rolltemplate-basic">
<div style="margin: auto;">
<div style="padding-top: 5px;">
{{name}} rolls {{rolltype}}!
</div>
<div>
{{roll}}
</div>
<div>
{{attackRoll}}
</div>
<div>
{{#rollWasCrit() attackRoll }}
Critical Hit! <br>
<div style="font-size: 10px;">{{critEffect}}</div>
{{#damage}}
Damage: {{damage}} {{damage}}
{{/damage}}
{{/rollWasCrit() attackRoll }}
</div>
<div>
{{#^rollWasCrit() attackRoll }}
{{#damage}}
Damage: {{damage}}
{{/damage}}
{{/^rollWasCrit() attackRoll }}
</div>
<div>
{{#range}}
Range: {{range}}
{{/range}}
</div>
</div>
</rolltemplate>
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

+8
View File
@@ -0,0 +1,8 @@
{
"html": "fhw.html",
"css": "fhw.css",
"authors": "lorbog",
"roll20userid": "436206",
"preview": "fhw.png",
"instructions": "This is a character sheet for the OSR game Fantastic Heros and Witchery. It features automatic checks, initiative, and attacks, as well as a spell book. "
}