Initial Commit of StVHS

This commit is contained in:
Lewis Wakeford
2016-09-21 08:35:30 +01:00
parent e454eaabee
commit 156cff912c
6 changed files with 928 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

+3
View File
@@ -0,0 +1,3 @@
A sheet for StraightToVHS from Lost Cat Games
Some ideas borrowed from the WFRP sheet by Timothy S
+8
View File
@@ -0,0 +1,8 @@
{
"html": "straighttovhs.html",
"css": "straighttovhs.css",
"authors": "Lewis Wakeford",
"roll20userid": "260969",
"preview": "preview.jpg",
"instructions": "Cool Features: \n * Automated stat and weapon rolls. \n * Auto-calculates epic / blooper rolls in a single roll. Enter the amount of epic and blooper die seperatly when prompted and the sheet will do the work for you. \n * Ranged Attacks will show up as a fumble when you roll below the reload value, and prompt you to reload. NOTE: This means you have to check for a 1 yourself by mousing over the inline roll. \n Send your feedback to: \n * lewis.wakeford@gmail.com \n * (other contributors feel to include you details here)"
}
+346
View File
@@ -0,0 +1,346 @@
/* CSS Reset */
.charsheet .sheet-wrapper div, .charsheet .sheet-wrapper span, .charsheet .sheet-wrapper label,
.charsheet .sheet-wrapper h1, .charsheet .sheet-wrapper h2, .charsheet .sheet-wrapper h3, .charsheet .sheet-wrapper h4, .charsheet .sheet-wrapper h5, .charsheet .sheet-wrapper h6, .charsheet .sheet-wrapper p,
.charsheet .sheet-wrapper table, .charsheet .sheet-wrapper caption, .charsheet .sheet-wrapper tbody, .charsheet .sheet-wrapper tfoot, .charsheet .sheet-wrapper thead, .charsheet .sheet-wrapper tr, .charsheet .sheet-wrapper th, .charsheet .sheet-wrapper td {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font-family: "Courier New", Courier, monospace;
color: #404040;
vertical-align: baseline;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.charsheet .sheet-wrapper {
width: 100%
}
.charsheet .sheet-wrapper .sheet-row, .charsheet .sheet-wrapper .sheet-header {
width: 100%;
}
.charsheet .sheet-wrapper .sheet-statblock {
margin-bottom: 5px;
display: inline-block;
visibility: visible;
}
.charsheet .sheet-wrapper .sheet-stattable {
width: 55.0%;
}
.charsheet .sheet-wrapper .sheet-scriptchanges {
width: 35%;
font-size: 12px;
line-height: 12px;
}
.charsheet .sheet-wrapper .sheet-stattable tr, .charsheet .sheet-wrapper .sheet-stattable th, .charsheet .sheet-wrapper .sheet-stattable td {
width: 12.5%;
}
.charsheet .sheet-wrapper .sheet-item {
display: inline-block;
width: 100%;
height: 34px;
vertical-align: middle;
margin: 0 -2px;
text-align: left;
padding: 3px 2px;
}
.charsheet .sheet-wrapper .sheet-col {
display: inline-block;
}
.charsheet .sheet-wrapper .sheet-alignR {
text-align: right;
}
.charsheet .sheet-wrapper .sheet-header label {
padding: 0;
font-weight: bold;
color: DarkSlateBlue;
word-wrap:break-word;
}
.charsheet .sheet-wrapper .sheet-statname div, .charsheet .sheet-wrapper .sheet-statname label {
font-weight: bold;
color: DarkSlateBlue;
word-wrap:break-word;
}
.charsheet .sheet-wrapper label {
display: inline-block;
width: 100%;
font-size: 12px;
text-align: left;
height: 28px;
line-height: 28px;
vertical-align: middle;
}
/*
.charsheet .sheet-wrapper textarea {
height: 50px;
font-size: 13px;
line-height: 18px;
}
*/
.charsheet .sheet-wrapper input, /*.charsheet .sheet-wrapper textarea,*/ .charsheet .sheet-wrapper select, .charsheet .sheet-wrapper input[type=number] {
display: inline-block;
border: 1px solid #ccc;
padding: 2px;
height: 28px;
width: 100%;
font-size: 12px;
line-height: 16px;
font-weight: normal;
margin: 0;
color: #555;
background-color: white;
vertical-align: middle;
cursor: auto;
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0px;
text-shadow: none;
text-align: start;
}
.charsheet .sheet-wrapper input[type=checkbox], .charsheet .sheet-wrapper input[type=radio]{
display: inline;
margin-top: 7px;
height: 13px;
width: 13px;
color: #555;
border: 1px solid #ccc;
background-color: yellow;
vertical-align: middle;
}
.input[type=number][disabled=true]::-webkit-outer-spin-button,
.input[type=number][disabled=true]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
.charsheet .sheet-wrapper input[type=number][disabled=true] {
-moz-appearance:textfield;
}
.charsheet .sheet-wrapper .sheet-inlineinput, .charsheet .sheet-wrapper .sheet-inlineinput input {
display: inline;
width: auto;
}
.charsheet .sheet-wrapper input[type="number"].sheet-inlineinputnumber {
display: inline;
width: 40px;
}
.charsheet .sheet-wrapper .sheet-bordered {
border-style: solid;
border-width: thin;
}
.charsheet .sheet-wrapper .sheet-stattable-header label{
text-align: center;
font-weight: bold;
}
.charsheet .sheet-wrapper .sheet-stattable-title div, .charsheet .sheet-wrapper .sheet-stattable-title label, .charsheet .sheet-wrapper .sheet-stattable-title input, .charsheet .sheet-wrapper .sheet-stattable-title td {
background-color: DarkGrey;
text-align: center;
font-weight: bold;
}
.charsheet .sheet-wrapper .sheet-stattable-col, .charsheet .sheet-wrapper .sheet-stattable-col div, .charsheet .sheet-wrapper .sheet-stattable-col label, .charsheet .sheet-wrapper .sheet-stattable-col input, .charsheet .sheet-wrapper .sheet-stattable-col td
{
text-align: center;
}
.charsheet .sheet-wrapper .sheet-stattable-evencol, .charsheet .sheet-wrapper .sheet-stattable-evencol div, .charsheet .sheet-wrapper .sheet-stattable-evencol label, .charsheet .sheet-wrapper .sheet-stattable-evencol input, .charsheet .sheet-wrapper .sheet-stattable-evencol td {
background-color: LightGoldenRodYellow;
text-align: center;
}
.charsheet .sheet-wrapper .sheet-stattable-evencol, .charsheet .sheet-wrapper .sheet-stattable-oddcol div, .charsheet .sheet-wrapper .sheet-stattable-oddcol label, .charsheet .sheet-wrapper .sheet-stattable-oddcol input, .charsheet .sheet-wrapper .sheet-stattable-oddcol td {
background-color: MistyRose;
text-align: center;
}
.charsheet .sheet-wrapper .sheet-sectionhead label {
font-size: 16px;
text-decoration: underline;
color: DarkMagenta;
font-weight: bold;
}
.charsheet .sheet-wrapper textarea.sheet-oneline {
height: 24px;
resize: vertical;
}
.charsheet .sheet-wrapper .sheet-chunky{
width: 50%;
}
.charsheet .sheet-wrapper .sheet-size-one{
width: calc(8% - 3%);
}
.charsheet .sheet-wrapper .sheet-size-two {
width: calc(10% - 3%);
}
.charsheet .sheet-wrapper .sheet-size-three {
width: calc(15% - 3%);
}
.charsheet .sheet-wrapper .sheet-size-four {
width: calc(19% - 3%);
}
.charsheet .sheet-wrapper .sheet-size-five {
width: calc(20% - 0.5%);
}
.charsheet .sheet-wrapper .sheet-size-six {
width: calc(25% - 0.5%);
}
.charsheet .sheet-wrapper .sheet-size-seven {
width: calc(30% - 0.5%);
}
.charsheet .sheet-wrapper .sheet-size-eight {
width: calc(40% - 5%);
}
.charsheet .sheet-wrapper .sheet-size-nine {
width: calc(60% - 0.5%);
}
.charsheet .sheet-wrapper .sheet-size-ten {
width: calc(80% - 3%);
}
/* Roll Templates */
/* === stattest === */
.sheet-rolltemplate-stattest, .sheet-rolltemp-container div
{
border-style: solid;
border-width: medium;
border-color: #262626;
}
.sheet-rolltemplate-stattest .sheet-statname, .sheet-rolltemplate-stattest .sheet-statname div {
text-decoration: underline;
font-weight: bold;
color: DarkMagenta;
background-color: Beige;
text-align: center;
}
.sheet-rolltemplate-stattest .sheet-rollblock, .sheet-rolltemplate-stattest .sheet-rollblock div {
font-weight: bold;
color: Magenta;
background-color: Beige;
text-align: center;
}
.sheet-rolltemplate-stattest .sheet-statroll, .sheet-rolltemplate-stattest .sheet-statroll span {
font-weight: bold;
color: Black;
}
.sheet-rolltemplate-stattest .sheet-epic, .sheet-rolltemplate-stattest .sheet-epic span {
font-weight: bold;
color: Green;
}
.sheet-rolltemplate-stattest .sheet-blooper, .sheet-rolltemplate-stattest .sheet-blooper span {
font-weight: bold;
color: Red;
}
/* === meleeweptest === */
.sheet-rolltemplate-meleeweptest, .sheet-rolltemp-container div
{
border-style: solid;
border-width: medium;
border-color: #262626;
}
.sheet-rolltemplate-meleeweptest .sheet-statname, .sheet-rolltemplate-meleeweptest .sheet-statname div {
text-decoration: underline;
font-weight: bold;
color: DarkMagenta;
background-color: Beige;
text-align: center;
}
.sheet-rolltemplate-meleeweptest .sheet-rollblock, .sheet-rolltemplate-meleeweptest .sheet-rollblock div {
font-weight: bold;
color: Magenta;
background-color: Beige;
text-align: center;
}
.sheet-rolltemplate-meleeweptest .sheet-statroll, .sheet-rolltemplate-meleeweptest .sheet-statroll span {
font-weight: bold;
color: Black;
}
.sheet-rolltemplate-meleeweptest .sheet-epic, .sheet-rolltemplate-meleeweptest .sheet-epic span {
font-weight: bold;
color: Green;
}
.sheet-rolltemplate-meleeweptest .sheet-blooper, .sheet-rolltemplate-meleeweptest .sheet-blooper span {
font-weight: bold;
color: Red;
}
/* === rangedweptest === */
.sheet-rolltemplate-rangedweptest, .sheet-rolltemp-container div
{
border-style: solid;
border-width: medium;
border-color: #262626;
}
.sheet-rolltemplate-rangedweptest .sheet-statname, .sheet-rolltemplate-rangedweptest .sheet-statname div {
text-decoration: underline;
font-weight: bold;
color: DarkMagenta;
background-color: Beige;
text-align: center;
}
.sheet-rolltemplate-rangedweptest .sheet-rollblock, .sheet-rolltemplate-rangedweptest .sheet-rollblock div {
font-weight: bold;
color: Magenta;
background-color: Beige;
text-align: center;
}
.sheet-rolltemplate-rangedweptest .sheet-statroll, .sheet-rolltemplate-rangedweptest .sheet-statroll span {
font-weight: bold;
color: Black;
}
.sheet-rolltemplate-rangedweptest .sheet-epic, .sheet-rolltemplate-rangedweptest .sheet-epic span {
font-weight: bold;
color: Green;
}
.sheet-rolltemplate-rangedweptest .sheet-blooper, .sheet-rolltemplate-rangedweptest .sheet-blooper span {
font-weight: bold;
color: Red;
}
+571
View File
@@ -0,0 +1,571 @@
<!--
Handy forumla breakdown (for if you need to modify it / fix bugs):
We basically have two rolls, the epic roll and the blooper roll.
When EPIC DICE >= BLOOPER DICE the blooper roll evaluates to 0.
When EPIC DICE < BLOOPER DICE the epic roll evaluates to 0.
There are two parts to each roll, a conditional statement to enforce the above rules, and the main roll.
Here are the indivual formulas for inline rolls:
epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0}) ]]
blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0}) ]]
We'll breakdown the epic roll a a bit more:
[[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] <- This will be 1 if EPIC DICE is greater than or equal to BLOOPER DICE
([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0}) <- This is the actual formula for the roll, it doesn't make any sense when BLOOPER DICE > EPIC DICE buuuut we multiply by the first part anyway (which will be 0... so the roll is totally eliminated)
By using two seperate rolls we can use Roll Templates to show / hide only one roll. We could potentially inline both rolls together BUT that results in losing the ability to inspect the dice results by mousing over.
-->
<!-- ROLL TEMPLATES -->
<!-- stattest
Params:
statname - name of stat
epicroll - epic roll
blooperroll - blooper roll
hasepicdice - used to distinguish between a normal roll and an epic roll (as they use the same formula)
-->
<rolltemplate class="sheet-rolltemplate-stattest">
<div class="sheet-rolltemp-container" >
<div class = "sheet-row sheet-statname">TESTING {{statname}}</div>
{{#rollGreater() epicroll 0}}<div class = "sheet-row sheet-rollblock"><span class = "sheet-statroll">{{epicroll}}</span>{{#rollGreater() hasepicdice 0}} <span class = "sheet-epic">EPIC!</span>{{/rollGreater() hasepicdice 0}}</div>{{/rollGreater() epicroll 0}}
{{#rollGreater() blooperroll 0}}<div class = "sheet-row sheet-rollblock"><span class = "sheet-statroll">{{blooperroll}}</span> <span class = "sheet-blooper">BLOOPER!</span></div>{{/rollGreater() blooperroll 0}}
</div>
</rolltemplate>
<!-- meleeweptest
Params:
wepname - name of weapon
epicroll - epic roll
blooperroll - blooper roll
hasepicdice - used to distinguish between a normal roll and an epic roll (as they use the same formula)
-->
<rolltemplate class="sheet-rolltemplate-meleeweptest">
<div class="sheet-rolltemp-container" >
<div class = "sheet-row sheet-statname">MELEE ATTACK WITH {{wepname}}</div>
{{#rollGreater() epicroll 0}}<div class = "sheet-row sheet-rollblock"><span class = "sheet-statroll">{{epicroll}}</span>{{#rollGreater() hasepicdice 0}} <span class = "sheet-epic">EPIC!</span>{{/rollGreater() hasepicdice 0}}</div>{{/rollGreater() epicroll 0}}
{{#rollGreater() blooperroll 0}}<div class = "sheet-row sheet-rollblock"><span class = "sheet-statroll">{{blooperroll}}</span> <span class = "sheet-blooper">BLOOPER!</span></div>{{/rollGreater() blooperroll 0}}
</div>
</rolltemplate>
<!-- rangedweptest
Params:
wepname - name of weapon
epicroll - epic roll
blooperroll - blooper roll
hasepicdice - used to distinguish between a normal roll and an epic roll (as they use the same formula)
-->
<rolltemplate class="sheet-rolltemplate-rangedweptest">
<div class = "sheet-row sheet-statname">RANGED ATTACK WITH {{wepname}}</div>
{{#rollGreater() epicroll 0}}<div class = "sheet-row sheet-rollblock"><span class = "sheet-statroll">{{epicroll}}</span>{{#rollWasFumble() epicroll}}<span class = "sheet-reload-prompt">RELOAD!</span>{{/rollWasFumble() epicroll}}{{#rollGreater() hasepicdice 0}} <span class = "sheet-epic">EPIC!</span>{{/rollGreater() hasepicdice 0}}</div>{{/rollGreater() epicroll 0}}
{{#rollGreater() blooperroll 0}}<div class = "sheet-row sheet-rollblock"><span class = "sheet-statroll">{{blooperroll}}</span>{{#rollWasFumble() blooperroll}}<span class = "sheet-reload-prompt">RELOAD!</span>{{/rollWasFumble() blooperroll}} <span class = "sheet-blooper">BLOOPER!</span></div>{{/rollGreater() blooperroll 0}}
</rolltemplate>
<!-- CHARACTER SHEET -->
<div class="sheet-wrapper">
<img src = "http://lostcatgames.com/uploads/3/9/4/1/3941737/2698987.jpg">
<div class="sheet-row sheet-sectionhead">
<label>BASIC INFO</label>
</div>
<div class="sheet-row">
<!-- BASIC INFO -->
<div class="sheet-col">
<div class="sheet-row">
<div class="sheet-col sheet-size-six sheet-statname">
<label>CHARACTER NAME</label>
</div>
<div class="sheet-col sheet-size-three sheet-statname">
<label>MONTAGES</label>
</div>
<div class="sheet-col sheet-size-three sheet-statname">
<label>SPEED</label>
</div>
<div class="sheet-col sheet-size-three sheet-statname">
<label>CURRENT HP</label>
</div>
<div class="sheet-col sheet-size-three sheet-statname">
<label>TOTAL HP</label>
</div>
</div>
<div class="sheet-row">
<div class="sheet-col sheet-size-six">
<input type="text" name="attr_Display-Name" />
</div>
<div class="sheet-col sheet-size-three">
<input type="number" name="attr_Montage-Count" />
</div>
<div class="sheet-col sheet-size-three">
<input type="number" name="attr_Speed" />
</div>
<div class="sheet-col sheet-size-three">
<input type="number" name="attr_CurrentHP" value="30"/>
</div>
<div class="sheet-col sheet-size-three">
<input type="number" name="attr_TotalHP" value="30"/>
</div>
</div>
<div class="sheet-row">
<div class = "sheet-col sheet-size-five"><!--pad--></div><div class = "sheet-col sheet-helptext"><strong>HP:</strong> HEAL +5 YOUR NUMBER OF MONTAGES AFTER EACH SCENE</div>
</div>
</div>
</div>
<!-- STATS -->
<div class="sheet-row">
<div class="sheet-col sheet-stattable">
<table>
<!-- STAT HEADER -->
<tr>
<th class = "sheet-stattable-header">
<label>STAT</label>
</th>
<th class = "sheet-stattable-header">
<label>TOTALS =</label>
</th>
<th class = "sheet-stattable-header">
<label>TROPES +</label>
</th>
<th class = "sheet-stattable-header">
<label>PERKS +</label>
</th>
<th class = "sheet-stattable-header">
<label>TWEAKS +</label>
</th>
<th class = "sheet-stattable-header">
<label>ITEMS +</label>
</th>
<th class = "sheet-stattable-header">
<label>MONTAGE</label>
</th>
<th class = "sheet-stattable-header">
<label>ROLL!</label>
</th>
</tr>
<!-- ACC -->
<tr>
<td class = "sheet-bordered sheet-stattable-title">
<label>ACC</label>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<input type="number" name="attr_ACC-Total" value="@{ACC-Tropes}+@{ACC-Perks}+@{ACC-Tweaks}+@{ACC-Items}+@{ACC-Montage}" disabled = "true"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_ACC-Tropes" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_ACC-Perks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_ACC-Tweaks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_ACC-Items" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_ACC-Montage" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<button type='roll' value='&{template:stattest} {{statname=ACC}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{ACC-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{ACC-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' name='roll_ACC'></button>
</td>
</tr>
<!-- ATH -->
<tr>
<td class = "sheet-bordered sheet-stattable-title">
<label>ATH</label>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<input type="number" name="attr_ATH-Total" value="@{ATH-Tropes}+@{ATH-Perks}+@{ATH-Tweaks}+@{ATH-Items}+@{ATH-Montage}" disabled = "true"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_ATH-Tropes" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_ATH-Perks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_ATH-Tweaks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_ATH-Items" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_ATH-Montage" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<button type='roll' value='&{template:stattest} {{statname=ATH}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{ATH-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{ATH-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' name='roll_ATH'></button>
</td>
</tr>
<!-- CHA -->
<tr>
<td class = "sheet-bordered sheet-stattable-title">
<label>CHA</label>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<input type="number" name="attr_CHA-Total" value="@{CHA-Tropes}+@{CHA-Perks}+@{CHA-Tweaks}+@{CHA-Items}+@{CHA-Montage}" disabled = "true"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_CHA-Tropes" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_CHA-Perks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_CHA-Tweaks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_CHA-Items" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_CHA-Montage" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<button type='roll' value='&{template:stattest} {{statname=CHA}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{CHA-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{CHA-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' name='roll_CHA'></button>
</td>
</tr>
<!-- DEF -->
<tr>
<td class = "sheet-bordered sheet-stattable-title">
<label>DEF</label>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<input type="number" name="attr_DEF-Total" value="@{DEF-Tropes}+@{DEF-Perks}+@{DEF-Tweaks}+@{DEF-Items}+@{DEF-Montage}" disabled = "true"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_DEF-Tropes" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_DEF-Perks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_DEF-Tweaks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_DEF-Items" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_DEF-Montage" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<button type='roll' value='&{template:stattest} {{statname=DEF}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{DEF-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{DEF-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' name='roll_DEF'></button>
</td>
</tr>
<!-- INT -->
<tr>
<td class = "sheet-bordered sheet-stattable-title">
<label>INT</label>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<input type="number" name="attr_INT-Total" value="@{INT-Tropes}+@{INT-Perks}+@{INT-Tweaks}+@{INT-Items}+@{INT-Montage}" disabled = "true"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_INT-Tropes" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_INT-Perks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_INT-Tweaks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_INT-Items" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_INT-Montage" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<button type='roll' value='&{template:stattest} {{statname=INT}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{INT-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{INT-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' name='roll_INT'></button>
</td>
</tr>
<!-- SPY -->
<tr>
<td class = "sheet-bordered sheet-stattable-title">
<label>SPY</label>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<input type="number" name="attr_SPY-Total" value="@{SPY-Tropes}+@{SPY-Perks}+@{SPY-Tweaks}+@{SPY-Items}+@{SPY-Montage}" disabled = "true"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_SPY-Tropes" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_SPY-Perks" value="0"/>
</td>
<td class = "sheet-bordere sheet-stattable-evencol">
<input type="number" name="attr_SPY-Tweaks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_SPY-Items" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_SPY-Montage" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<button type='roll' value='&{template:stattest} {{statname=SPY}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{SPY-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{SPY-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' name='roll_SPY'></button>
</td>
</tr>
<!-- STR -->
<tr>
<td class = "sheet-bordered sheet-stattable-title">
<label>STR</label>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<input type="number" name="attr_STR-Total" value="@{STR-Tropes}+@{STR-Perks}+@{STR-Tweaks}+@{STR-Items}+@{STR-Montage}" disabled = "true"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_STR-Tropes" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_STR-Perks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_STR-Tweaks" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-oddcol">
<input type="number" name="attr_STR-Items" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-evencol">
<input type="number" name="attr_STR-Montage" value="0"/>
</td>
<td class = "sheet-bordered sheet-stattable-col">
<button type='roll' value='&{template:stattest} {{statname=STR}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{STR-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{STR-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' name='roll_STR'></button>
</td>
</tr>
</table>
</div>
<!-- SCRIPT CHANGES -->
<div class="sheet-col sheet-scriptchanges">
<div class="sheet-row">
<label>SCRIPT CHANGE</label>
</div>
<div class="sheet-row">
1 BOX CHECKED? PICK CONCEPT.
</div>
<div class="sheet-row">
2 BOXES CHECKED? CHANGE IS READY.
</div>
<div class="sheet-row">
USED A 1 OR 20: <input class="sheet-inlineinput" type="checkbox" name = "attr_SChange_UsedA1Or20"/>
</div>
<div class="sheet-row">
SHOWN WEAKNESS: <input class="sheet-inlineinput" type="checkbox" name = "attr_SChange_ShownWeakness"/>
</div>
<div class="sheet-row">
--------
</div>
<div class="sheet-row">
CONCEPTS:
</div>
<div class="sheet-row">
A <strong>CHARACTER</strong> ARRIVES: <input type="radio" name="attr_SChange_Concept" value="character"/>
</div>
<div class="sheet-row">
AN <strong>EMOTION</strong> IS FELT: <input type="radio" name="attr_SChange_Concept" value="emotion"/>
</div>
<div class="sheet-row">
A <strong>MISHAP</strong> OCCURS: <input type="radio" name="attr_SChange_Concept" value="mishap"/>
</div>
<div class="sheet-row">
A <strong>THING</strong> IS AT HAND: <input type="radio" name="attr_SChange_Concept" value="thing"/>
</div>
<div class="sheet-row">
A <strong>TRUTH</strong> IS REVEALED: <input type="radio" name="attr_SChange_Concept" value="truth"/>
</div>
</div>
</div>
<!-- FORTES -->
<div class="sheet-row">
<div class="sheet-col sheet-statname sheet-size-three">
<label>FORTES: </label>
</div>
<div class="sheet-col sheet-size-nine">
<input type="text" name="attr_Forte-List"/>
</div>
</div>
<!-- BLOOPERS -->
<div class="sheet-row">
<div class="sheet-col sheet-statname sheet-size-three">
<label>BLOOPERS: </label>
</div>
<div class="sheet-col sheet-size-nine">
<input type="text" name="attr_Blooper-List"/>
</div>
</div>
<!-- WEAPONS -->
<div class="sheet-row">
<div class="sheet-row sheet-sectionhead">
<label>WEAPONS</label>
</div>
<div class="sheet-header">
<div class="sheet-item sheet-size-five">
<label>NAME</label>
</div>
<div class="sheet-item sheet-size-two">
<label>PRICE</label>
</div>
<div class="sheet-item sheet-size-one">
<label>BONUS</label>
</div>
<div class="sheet-item sheet-size-two">
<label>RANGE</label>
</div>
<div class="sheet-item sheet-size-two">
<label>RELOAD</label>
</div>
<div class="sheet-item sheet-size-five">
<label>SPECIAL</label>
</div>
<div class="sheet-item sheet-size-two">
<label>MELEE</label>
</div>
<div class="sheet-item sheet-size-two">
<label>RANGED</label>
</div>
</div>
<fieldset class="repeating_Weapons">
<div class="sheet-row">
<div class="sheet-item sheet-size-five">
<input type="text" name = "attr_Weapon-Name"/>
</div>
<div class="sheet-item sheet-size-two">
<input type="number" name = "attr_Weapon-Price"/>
</div>
<div class="sheet-item sheet-size-one">
<input type="number" name = "attr_Weapon-Bonus"/>
</div>
<div class="sheet-item sheet-size-two">
<input type="number" name = "attr_Weapon-Range"/>
</div>
<div class="sheet-item sheet-size-two">
<input type="number" name = "attr_Weapon-ReloadVal"/>
</div>
<div class="sheet-item sheet-size-five">
<input type="text" name = "attr_Weapon-Special"/>
</div>
<div class="sheet-item sheet-size-two"> <!-- Standard roll plus strength and weapon bonus -->
<button type='roll' name='roll_MWEP' value='&{template:meleeweptest} {{wepname=@{Weapon-Name}}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1 + ?{Modifier|0} + @{Weapon-Bonus} + @{ACC-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1 +?{Modifier|0} + @{Weapon-Bonus} + @{STR-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}' ></button>
</div>
<div class="sheet-item sheet-size-two"> <!-- Standard roll plus accuracy and weapon bonus. Ranged Weapon Test has crit-fumble set as the the reload number -->
<button type='roll' name='roll_RWEP' value='&{template:rangedweptest} {{wepname=@{Weapon-Name}}} {{epicroll=[[ [[{{?{EPIC DICE|0}, -1}>?{BLOOPER DICE|0}}]] * ([[1+?{EPIC DICE|0}-?{BLOOPER DICE|0}]]d20kh1cf<@{Weapon-ReloadVal}+1 + ?{Modifier|0} + @{Weapon-Bonus} + @{ACC-Total}) ]]}} {{blooperroll=[[ [[{{?{BLOOPER DICE|0}, -1}>[[?{EPIC DICE|0}+1]]}]] * ([[1+?{BLOOPER DICE|0}-?{EPIC DICE|0}]]d20kl1cf<@{Weapon-ReloadVal}+1 +?{Modifier|0} + @{Weapon-Bonus} + @{ACC-Total}) ]]}} {{hasepicdice=[[?{EPIC DICE|0}]]}}'></button>
</div>
</div>
</fieldset>
</div>
<!-- CINEMATIC ACTIONS -->
<div class="sheet-row">
<div class="sheet-row sheet-sectionhead">
<label>CINEMATIC ACTIONS</label>
</div>
<div class="sheet-header">
<div class="sheet-col sheet-item sheet-size-one">
<label>USED?</label>
</div>
<div class="sheet-col sheet-item sheet-size-ten">
<label>DESCRIPTION</label>
</div>
</div>
<fieldset class="repeating_CActions">
<div class="sheet-row">
<div class="sheet-col sheet-item sheet-size-one">
<input type="checkbox" name = "attr_CAction-Used"/>
</div>
<div class="sheet-col sheet-item sheet-size-ten">
<input class = "sheet-inlineinput sheet-alignR sheet-size-seven" type="text" name = "attr_Item-Description" value="ACTION NAME"/>
(Once per
<select class = "sheet-inlineinput" name = "attr_CAction-Limit">
<option value="Scene">day</option>
<option value="Day">scene</option>
</select>
for <input class = "sheet-inlineinputnumber" type="number" name = "attr_CAction-APCost" value = "0"/>AP)
</div>
</div>
<div class="sheet-row">
<textarea class ="sheet-oneline" name = "attr_CAction-Description">ACTION DESCRIPTION</textarea>
</div>
</fieldset>
</div>
<!-- TROPES -->
<div class="sheet-row">
<div class="sheet-row sheet-sectionhead">
<label>TROPES</label>
</div>
<fieldset class="repeating_Tropes">
<div class="sheet-row">
<input type="text" name = "attr_Trope-Name" value = "NAME"/>
</div>
<div class="sheet-row">
<textarea class ="sheet-oneline" name = "attr_Trope-Notes">NOTES</textarea>
</div>
</fieldset>
</div>
<!-- PERKS -->
<div class="sheet-row">
<div class="sheet-row sheet-sectionhead">
<label>PERKS</label>
</div>
<fieldset class="repeating_Tropes">
<div class="sheet-row">
<input type="text" name = "attr_Perk-Name" value = "NAME"/>
</div>
<div class="sheet-row">
<textarea class ="sheet-oneline" name = "attr_Perk-Notes">NOTES</textarea>
</div>
</fieldset>
</div>
<!-- ITEMS -->
<div class="sheet-row">
<div class="sheet-row sheet-sectionhead">
<label>ITEMS</label>
</div>
<div class="sheet-header">
<div class="sheet-item sheet-size-five">
<label>Name</label>
</div>
<div class="sheet-item sheet-size-one">
<label>Price</label>
</div>
<div class="sheet-item sheet-size-nine">
<label>Description</label>
</div>
</div>
<fieldset class="repeating_Items">
<div class="sheet-row">
<div class="sheet-item sheet-size-five">
<input type="text" name = "attr_Item-Name"/>
</div>
<div class="sheet-item sheet-size-one">
<input type="number" name = "attr_Item-Price"/>
</div>
<div class="sheet-item sheet-size-nine">
<input type="text" name = "attr_Item-Description"/>
</div>
</div>
</fieldset>
</div>
</div>