Trollbabe Sheet

A character sheet for the RPG by Ron Edwards/Adept press:
http://adept-press.com/games-fantasy-horror/trollbabe/
This commit is contained in:
G-G-G
2018-04-06 15:19:17 +01:00
parent d73693b3a6
commit dcc05f5fd4
4 changed files with 533 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
{
"html": "trollbabe.html",
"css": "trollbabe.css",
"authors": "G G",
"roll20userid": "157788",
"preview": "trollbabe.png",
"instructions": "This sheet for the Trollbabe rpg by Ron Edwards is modelled closely on the official character sheet. It includes a sheet worker to calculate the Number ranges, an expanding fieldset for Relationships, and a very simple roll template."
}
+211
View File
@@ -0,0 +1,211 @@
/* banner: https://i.imgur.com/V7EAooT.jpg
logo: https://i.imgur.com/Ezf4uJI.png
*/
body {
margin: 20px;
}
.sheet-font {
font-family: Georgia, serif;
}
.sheet-underline {
text-decoration:underline;
}
input {
font-size:1.2em;
}
.sheet-wrapper {
display: grid;
grid-template-columns: 130px 130px 100px 100px 130px 100px;
grid-template-rows: auto 2em auto auto auto;
grid-gap: 10px;
/* background-color: #fff;
color: #444; */
}
.sheet-box {
/* background-color: #444;
color: #fff; */
border: 1px solid gray;
border-radius: 5px;
padding: 10px;
font-size: 130%;
}
.sheet-name {
grid-column: 1 / 4;
grid-row: 1;
}
.sheet-logo {
border:0;
grid-column: 4 / 7;
grid-row: 1;
}
.sheet-number-heading {
border:0;
grid-column: 1 / 2;
grid-row: 2;
}
label.sheet-number-label {
text-align:center;
/* margin-left:-15px;
margin-top:-10px; */
}
input[type=number].sheet-number-input {
font-weight:bolder;
font-size:80px;
text-align:center;
width:100px;
margin-top:0px;
margin-left:10px;
padding-bottom:15px;
}
.sheet-number {
grid-column: 1 / 2;
grid-row: 3;
border:3px solid black;
border-radius: 5px;
}
.sheet-stats {
grid-column: 2 / 7;
grid-row: 2 / 4;
}
.sheet-rerolls {
grid-column: 1 / 3;
grid-row: 4;
}
.sheet-relationships {
grid-column: 1 / 3;
grid-row: 5;
}
.sheet-health {
grid-column: 3 / 5;
grid-row: 4;
}
.sheet-equipment {
grid-column: 5 / 7;
grid-row: 4;
}
.sheet-notes {
grid-column: 3 / 7;
grid-row: 5;
}
input[type=text].sheet-stats-range {
font-weight:bolder;
font-size:1.5em;
width: 4em;
text-align:center;
}
input.sheet-stats-specialty {
width:16em;
}
input[type=checkbox] {
vertical-align:top;
}
label.sheet-rerolls {
margin-top:5px;
margin-left:5px;
}
input[type=checkbox].sheet-relationships {
vertical-align:middle;
}
input[type=text].sheet-relationships {
vertical-align:middle;
width:11em;
}
input[type=text].sheet-names {
width:13em;
}
input[type=radio].sheet-health {
vertical-align:top;
}
.sheet-stats-button {
margin-top:-8px !important;
}
.sheet-banner {
width:735px;
}
.sheet-logo {
width:auto;
padding-bottom:0;
}
textarea.sheet-notes {
width:97%;
height:70%;
font-size:1em;
}
textarea.sheet-equipment {
width:95%;
height:80%;
font-size:1em;
}
td.sheet-center {
text-align:center;
}
.sheet-rolltemplate-Trollbabe table {
width: 199px;
padding: 2px;
border: 1px solid rgb(126, 45, 64);
background-color: #ffffff;
}
.sheet-rolltemplate-Trollbabe th {
color: rgb(126, 45, 64);
line-height: 1.5em;
font-size: 1.5em;
text-align: center;
font-family: Georgia, serif;
font-variant: small-caps;
}
.sheet-rolltemplate-Trollbabe .sheet-subheader {
color: #ffffff;
background-color:rgb(126, 45, 64);
font-size: 1.5em;
line-height: 1.5em;
text-align: center;
font-family: Georgia, serif;
font-variant: small-caps;
}
.sheet-rolltemplate-Trollbabe .sheet-roll {
text-align:right;
}
.sheet-rolltemplate-Trollbabe .sheet-result {
text-align:left;
color: rgb(126, 45, 64);
}
.sheet-rolltemplate-Trollbabe .sheet-cell {
font-family: Georgia, serif;
font-variant: small-caps;
line-height:1.5em;
font-size: 1.5em;
padding-bottom:5px;
}
.sheet-rolltemplate-Trollbabe .sheet-roll-success {
color:green;
font-weight:bold;
}
.sheet-rolltemplate-Trollbabe .sheet-roll-failure {
color:red;
font-weight:bold;
}
+314
View File
@@ -0,0 +1,314 @@
<input type="hidden" name="attr_FightingScore" />
<input type="hidden" name="attr_MagicScore" />
<input type="hidden" name="attr_SocialScore" />
<input type="hidden" name="attr_FightingType" value="1" />
<input type="hidden" name="attr_MagicType" value="2" />
<input type="hidden" name="attr_SocialType" />
<img src="https://i.imgur.com/V7EAooT.jpg" class="sheet-banner" />
<div class="sheet-wrapper">
<div class="sheet-box sheet-name">
<table>
<tr>
<td>
<label class="sheet-names sheet-font">Name:</label>
</td>
<td>
<input class="sheet-names sheet-font" type="text" name="attr_Trollbabe" />
</td>
</tr>
<tr>
<td>
<label class="sheet-names sheet-font">Player:</label>
</td>
<td>
<input class="sheet-names sheet-font" type="text" name="attr_Player" />
</td>
</tr>
<tr>
<td>
<label class="sheet-names sheet-font">Story:</label>
</td>
<td>
<input class="sheet-names sheet-font" type="text" name="attr_Story" />
</td>
</tr>
</table>
</div>
<div class="sheet-box sheet-logo">
<img src="https://i.imgur.com/Ezf4uJI.png" class="sheet-logo" />
</div>
<div class="sheet-box sheet-number-heading">
<label class="sheet-number-label sheet-font sheet-underline">Number</label>
</div>
<!-- <div class="sheet-box sheet-stats-heading">Type etc </div> -->
<div class="sheet-box sheet-number">
<input class="sheet-number-input sheet-font" type="number" name="attr_Number" value="5" min="2" max="9"/>
</div>
<div class="sheet-box sheet-stats">
<table>
<tr>
<td>
</td>
<td>
<label class="sheet-stats sheet-font sheet-underline">Type</label>
</td>
<td class='sheet-center'>
<label class="sheet-center sheet-stats sheet-font sheet-underline" style="text-align:center">Range</label>
</td>
<td>
<label class="sheet-stats sheet-font sheet-underline">Specialty</label>
</td>
</tr>
<tr>
<td>
<button type='roll' class='sheet-stats-button' name='roll_Fighting' value='&{template:Trollbabe} {{name=@{Trollbabe} }} {{Versus=@{Number} }} {{ability=Fighting}} {{range=@{Fighting} }} {{score=[[@{FightingScore}]] }} {{rollType=[[@{FightingType}]] }} {{roll=[[1d10]]}} '></button>
</td>
<td>
<label class="sheet-stats sheet-font">Fighting:</label>
</td>
<td>
<input class="sheet-stats-range sheet-font" type="text" name="attr_Fighting" readonly />
</td>
<td>
<input class="sheet-stats-specialty sheet-font" type="text" name="attr_FightingStyle" />
</td>
</tr>
<tr>
<td>
<button type='roll' class='sheet-stats-button' name='roll_Magic' value='&{template:Trollbabe} {{name=@{Trollbabe} }} {{Versus=@{Number} }} {{ability=Magic}} {{range=@{Magic} }} {{score=[[@{MagicScore}]] }} {{rollType=[[@{MagicType}]] }} {{roll=[[1d10]]}} '></button>
</td>
<td>
<label class="sheet-stats sheet-font">Magic:</label>
</td>
<td>
<input class="sheet-stats-range sheet-font" type="text" name="attr_Magic" readonly />
</td>
<td>
<input class="sheet-stats-specialty sheet-font" type="text" name="attr_MagicStyle" />
</td>
</tr>
<tr>
<td>
<button type='roll' class='sheet-stats-button' name='roll_Social' value='&{template:Trollbabe} {{name=@{Trollbabe} }} {{ability=Social}} {{range=@{Social} }} {{score=[[@{SocialScore}]] }} {{rollType=[[@{SocialType}]] }} {{roll=[[1d10]]}}'></button>
</td>
<td>
<label class="sheet-stats sheet-font">Social:</label>
</td>
<td>
<input class="sheet-stats-range sheet-font" type="text" name="attr_Social" readonly />
</td>
<td>
<input class="sheet-stats-specialty sheet-font" type="text" name="attr_SocialStyle" />
</td>
</tr>
</table>
</div>
<div class='sheet-box sheet-health'>
<table>
<tr>
<td colspan="2">
<label class="sheet-rerolls-titles sheet-font sheet-underline">Health</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-health' type='radio' name='attr_Injuries' value='0' checked />
</td>
<td>
<label class="sheet-rerolls sheet-font">Healthy</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-health' type='radio' name='attr_Injuries' value='1' />
</td>
<td>
<label class="sheet-rerolls sheet-font">Discommoded</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-health' type='radio' name='attr_Injuries' value='2' />
</td>
<td>
<label class="sheet-rerolls sheet-font">Injured</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-health' type='radio' name='attr_Injuries' value='3' />
</td>
<td>
<label class="sheet-rerolls sheet-font">Doubly Injured</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-health' type='radio' name='attr_Injuries' value='4' />
</td>
<td>
<label class="sheet-rerolls sheet-font">Incapacitated</label>
</td>
</tr>
</table>
</div>
<div class="sheet-box sheet-equipment">
<label class="sheet-equipment-titles sheet-font sheet-underline">Equipment</label>
<textarea class="sheet-font sheet-equipment" name='attr_Equipment'></textarea>
</div>
<div class="sheet-box sheet-rerolls">
<table>
<tr>
<td colspan="2">
<label class="sheet-rerolls-titles sheet-font sheet-underline">Rerolls</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-rerolls' type='checkbox' name='attr_CarriedObject' value='1' />
</td>
<td>
<label class="sheet-rerolls sheet-font">A Carried Object</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-rerolls' type='checkbox' name='attr_FoundItem' value='1' />
</td>
<td>
<label class="sheet-rerolls sheet-font">A Found Item</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-rerolls' type='checkbox' name='attr_SuddenAlly' value='1' />
</td>
<td>
<label class="sheet-rerolls sheet-font">A Sudden Ally</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-rerolls' type='checkbox' name='attr_Spell' value='1' />
</td>
<td>
<label class="sheet-rerolls sheet-font">A Remembered Spell</label>
</td>
</tr>
<tr>
<td>
<input class='sheet-rerolls' type='checkbox' name='attr_GeoFeature' value='1' />
</td>
<td>
<label class="sheet-rerolls sheet-font">A Geographic Feature</label>
</td>
</tr>
</table>
</div>
<div class="sheet-box sheet-relationships">
<label class="sheet-relationship-titles sheet-font sheet-underline">Relationships</label>
<fieldset class="repeating_relationships" >
<input class='sheet-relationships' type='checkbox' name='attr_relationship_check' value='1' />
<input class='sheet-relationships sheet-font' type='text' name='attr_relationship_name' value='' />
<br/>
</fieldset>
</div>
<div class="sheet-box sheet-notes">
<label class="sheet-titles sheet-font sheet-underline">Appearance and Notes</label>
<textarea class="sheet-font sheet-notes" name='attr_Notes'></textarea>
</div>
</div>
<img src="https://i.imgur.com/V7EAooT.jpg" class="sheet-banner" />
<!-- SHEET WORKERS -->
<script type="text/worker">
on("sheet:opened change:number", function() {
getAttrs(["Number"], function(v) {
var magicrange = "-10";
var fightingrange = "1-";
var socialrange = "";
var magicscore;
var fightingscore;
var socialscore;
var socialtype;
var myNumber = parseInt(v.Number)||5;
fightingscore = myNumber -1;
magicscore = myNumber +1;
magicrange = magicscore + "-10";
fightingrange = "1-" + fightingscore;
socialscore = myNumber;
if (myNumber > 5) {
socialrange = socialscore + "-10";
socialtype = "2";
} else {
socialrange = "1-" + socialscore;
socialtype = "1";
}
if (myNumber >8) {magicrange = "10";}
if (myNumber <3) {fightingrange = "1";}
setAttrs({
"Fighting": fightingrange,
"Magic": magicrange,
"Social": socialrange,
"FightingScore": fightingscore,
"MagicScore": magicscore,
"SocialScore": socialscore,
"SocialType": socialtype
});
});
});
</script>
<rolltemplate class="sheet-rolltemplate-Trollbabe">
<table>
<tr>
<th colspan="2">
{{name}}
</th>
</tr>
<tr>
<td colspan="2" class='subheader'>
{{ability}} ({{range}})
</td>
</tr>
<tr>
<td class="roll cell">
{{roll}} =
</td>
<td class="result cell">
{{#rollTotal() rollType 1}}
{{#rollGreater() roll score}}
<span class='sheet-roll-failure'>Failure!</span>
{{/rollGreater() roll score}}
{{#rollBetween() roll 1 score}}
<span class='sheet-roll-success'>Success!</span>
{{/rollBetween() roll 1 score}}
{{/rollTotal() rollType 1}}
{{#rollTotal() rollType 2}}
{{#rollLess() roll score}}
<span class='sheet-roll-failure'>Failure!</span>
{{/rollLess() roll score}}
{{#rollBetween() roll score 100}}
<span class='sheet-roll-success'>Success!</span>
{{/rollBetween() roll score 100}}
{{/rollTotal() rollType 2}}
</td>
</tr>
</table>
</rolltemplate>
Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB