Initial commit of Elemental character sheet (New Sheet) (#4968)
* Initial commit of Elemental character sheet * Removed Table layout in top left corner of sheet. Began adjusting the equipment lists for better space usage. Added logo to images. * Updated Logo and renamed. * - Made some layout adjustments. - Added more fields for Weapon and Armor information. - Added Bonuses/Impairments with injuries that calc current health * Updated translation information * Updated image * Redesign of the character sheet to support tabs * update screenshot for sheet
This commit is contained in:
committed by
Cassie Levett
parent
91f2ee63aa
commit
92548739bf
@@ -0,0 +1,350 @@
|
||||
.sheet-container {
|
||||
position:relative;
|
||||
width: 800px;
|
||||
background-color: black;
|
||||
color: green;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
border: 4px double gold;
|
||||
border-radius:15px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.sheet-header {
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 4px double gold;
|
||||
}
|
||||
|
||||
.sheet-tabs {
|
||||
margin-top: 10px;
|
||||
position: relative;
|
||||
width: 800px; }
|
||||
.sheet-tabs::after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: block; }
|
||||
.sheet-tabs .sheet-tab {
|
||||
width: 800px; }
|
||||
.sheet-tabs .sheet-tab:nth-of-type(2) > input[type="radio"], .sheet-tabs .sheet-tab:nth-of-type(2) > .sheet-tab-label {
|
||||
margin-left: 20%; }
|
||||
.sheet-tabs .sheet-tab:nth-of-type(3) > input[type="radio"], .sheet-tabs .sheet-tab:nth-of-type(3) > .sheet-tab-label {
|
||||
margin-left: 40%; }
|
||||
.sheet-tabs .sheet-tab:nth-of-type(4) > input[type="radio"], .sheet-tabs .sheet-tab:nth-of-type(4) > .sheet-tab-label {
|
||||
margin-left: 60%; }
|
||||
.sheet-tabs .sheet-tab:nth-of-type(5) > input[type="radio"], .sheet-tabs .sheet-tab:nth-of-type(5) > .sheet-tab-label {
|
||||
margin-left: 80%; }
|
||||
.sheet-tabs .sheet-tab > input[type="radio"] {
|
||||
height: 30px;
|
||||
margin: 0;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 20%;
|
||||
z-index: 1; }
|
||||
|
||||
.sheet-tabs .sheet-tab > input[type="radio"]:hover ~ .sheet-tab-label {
|
||||
background: #111111;
|
||||
color: white;
|
||||
border-bottom-color: gold;
|
||||
}
|
||||
|
||||
.sheet-tabs .sheet-tab > .sheet-tab-label {
|
||||
align-items: center;
|
||||
background: #555555;
|
||||
border-radius: 6px 6px 0 0;
|
||||
border: 2px solid gold;
|
||||
color: white;
|
||||
display: flex;
|
||||
font-size: 11px;
|
||||
font-variant: small-caps;
|
||||
font-weight: bold;
|
||||
height: 30px;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
text-transform: uppercase;
|
||||
top: 0;
|
||||
width: 20%;
|
||||
border-left-color: gold;
|
||||
border-top-color: gold;
|
||||
border-right-color: gold;
|
||||
border-bottom-color: gold;
|
||||
}
|
||||
|
||||
.sheet-tabs .sheet-tab > input[type="radio"]:checked ~ .sheet-tab-label {
|
||||
background: black;
|
||||
border-color: gold;
|
||||
border-bottom-color: black;
|
||||
color: green;
|
||||
}
|
||||
|
||||
.sheet-tabs .sheet-tab > input[type="radio"]:checked {
|
||||
cursor: auto; }
|
||||
.sheet-tabs .sheet-tab > input[type="radio"]:checked ~ .sheet-tab-content {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sheet-tabs .sheet-tab .sheet-tab-content {
|
||||
display: none;
|
||||
min-height: 300px;
|
||||
padding-top: 32px;
|
||||
width: 100%;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.sheet-content {
|
||||
padding: 5px;
|
||||
border: 2px solid gold;
|
||||
border-radius: 0 10px 10px 10px;
|
||||
min-height:300px;
|
||||
}
|
||||
|
||||
.sheet-label {
|
||||
float: left;
|
||||
width: 50px;
|
||||
color: white;
|
||||
font-weight:bold;
|
||||
font-size: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.sheet-input {
|
||||
float: left;
|
||||
width: calc(100% - 75px);
|
||||
}
|
||||
|
||||
.sheet-heading {
|
||||
font-size: 1.5em;
|
||||
font-weight:bold;
|
||||
border:0px;
|
||||
border-radius:0px;
|
||||
font-variant: small-caps;
|
||||
}
|
||||
|
||||
.sheet-smallblock {
|
||||
margin: 5px;
|
||||
float: left;
|
||||
}
|
||||
.sheet-block {
|
||||
background: #333333;
|
||||
border-radius:15px;
|
||||
border: 1px solid gold;
|
||||
padding: 5px;
|
||||
color: lightgrey;
|
||||
min-height: 50px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.sheet-block input {
|
||||
font-size: 12px;
|
||||
line-height:15px;
|
||||
height: 15px;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
|
||||
.sheet-block select {
|
||||
font-size: 12px;
|
||||
line-height:15px;
|
||||
height: 15px;
|
||||
margin-bottom:5px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.sheet-block option:disabled {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Hide actual radio */
|
||||
.sheet-block input[type="radio"] {
|
||||
opacity: 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
position: relative;
|
||||
top: 5px;
|
||||
left: 6px;
|
||||
margin: -10px;
|
||||
cursor: pointer;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* Fake radio */
|
||||
.sheet-block input[type="radio"] + span::before {
|
||||
margin-right: 4px;
|
||||
border: solid 1px #a8a8a8;
|
||||
line-height: 14px;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
box-shadow: 0 0 2px #ccc;
|
||||
background: #f6f6f6;
|
||||
background: radial-gradient(black, black);
|
||||
content: "•";
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
font-size: 24px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
/* Remove dot from all radios _after_ selected one */
|
||||
.sheet-block input[type="radio"]:checked ~ input[type="radio"] + span::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.sheet-xp {
|
||||
width: 250px;
|
||||
}
|
||||
table.sheet-xp th{
|
||||
text-align: center;
|
||||
font-weight:bold;
|
||||
border:1px solid gold;
|
||||
border-radius:15px;
|
||||
}
|
||||
table.sheet-xp td{
|
||||
text-align: center;
|
||||
border:1px solid gold;
|
||||
border-radius:15px;
|
||||
padding:5px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.sheet-attrname {
|
||||
font-weight:bold;
|
||||
font-size: 16px;
|
||||
width:145px;
|
||||
background:transparent;
|
||||
border:0px;
|
||||
color:White;
|
||||
}
|
||||
|
||||
.sheet-skillblock {
|
||||
margin-left:20px;
|
||||
}
|
||||
|
||||
.sheet-top {
|
||||
border-bottom: 2px double gold;
|
||||
display: inline-block;
|
||||
width:100%;
|
||||
padding-bottom: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.sheet-blocklabel {
|
||||
float: left;
|
||||
font-weight:bold;
|
||||
background:transparent;
|
||||
border:0px;
|
||||
color:White;
|
||||
height: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
|
||||
.sheet-rolltemplate-basic div.sheet-template-container {
|
||||
background: black;
|
||||
color: white;
|
||||
border: 2px solid gold !important;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-basic .sheet-template-header {
|
||||
color: green;
|
||||
padding: 2px;
|
||||
border-bottom: 1px solid gold;
|
||||
line-height: 1.6em;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-basic div {
|
||||
padding: 5px;
|
||||
border-bottom: 1px solid gold;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-basic .inlinerollresult {
|
||||
display: inline-block;
|
||||
min-width: 1.5em;
|
||||
text-align: center;
|
||||
border: 1px solid gold;
|
||||
border-radius: 5px;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-basic .inlinerollresult.fullcrit {
|
||||
border: 1px solid gold;
|
||||
background: green;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-basic .inlinerollresult.fullfail {
|
||||
border: 1px solid gold;
|
||||
background: red;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-basic .inlinerollresult.importantroll {
|
||||
border: 1px solid gold;
|
||||
background: blue;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-stat div.sheet-template-container {
|
||||
background: black;
|
||||
color: white;
|
||||
border: 2px solid gold !important;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-stat .sheet-template-header {
|
||||
color: green;
|
||||
padding: 2px;
|
||||
border-bottom: 1px solid gold;
|
||||
line-height: 1.6em;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
font-variant: small-caps;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-stat div {
|
||||
padding: 5px;
|
||||
border-bottom: 1px solid gold;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-stat .inlinerollresult {
|
||||
display: inline-block;
|
||||
min-width: 1.5em;
|
||||
text-align: center;
|
||||
border: 1px solid gold;
|
||||
border-radius: 5px;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-stat .inlinerollresult.fullfail {
|
||||
border: 1px solid gold;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-stat .inlinerollresult.fullcrit {
|
||||
border: 1px solid gold;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-stat .inlinerollresult.importantroll {
|
||||
border: 1px solid gold;
|
||||
background: #333333;
|
||||
}
|
||||
|
||||
.sheet-rollbutton {
|
||||
background: gold;
|
||||
color: black;
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.sheet-derstat {
|
||||
width: 35px;
|
||||
background: transparent;
|
||||
color: white;
|
||||
border: 0;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -0,0 +1,763 @@
|
||||
<div class='sheet-container'>
|
||||
<div class='sheet-header'>
|
||||
<div class='sheet-2colrow'>
|
||||
<div class='sheet-col'>
|
||||
<div class="sheet-block">
|
||||
<div class="row">
|
||||
<label class='sheet-label' data-i18n="name-u">Name:</label>
|
||||
<input type="text" class='sheet-input' name="attr_character_name" placeholder="Character Name" />
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class='sheet-label' data-i18n="title-u">Title:</label>
|
||||
<input type="text" class='sheet-input' name="attr_character_title" placeholder="Character Title" />
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class='sheet-label' data-i18n="species-u">Species:</label>
|
||||
<input type="text" class='sheet-input' name="attr_character_race" placeholder="Race/Species" />
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
<div class='sheet-col'>
|
||||
<img style="padding-top:15px;" src="https://github.com/SPConlin/roll20-character-sheets/blob/elemental/Elemental/images/logo.png?raw=true" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sheet-tabs">
|
||||
<div class="sheet-tab sheet-tab-core">
|
||||
<input type="radio" name="attr_tab" value="core" checked="checked">
|
||||
<span class="sheet-tab-label">Core</span>
|
||||
<div class="sheet-tab-content">
|
||||
<div class="sheet-content">
|
||||
<div class='sheet-2colrow'>
|
||||
<div class='sheet-col'>
|
||||
<div class="sheet-heading">Experience Points</div>
|
||||
<div class="sheet-block">
|
||||
<div class="sheet-top">
|
||||
<span class="sheet-blocklabel" style="width: 82px;" data-i18n="total-u">Total</span>
|
||||
<span class="sheet-blocklabel" style="width: 84px;" data-i18n="spent-u">Spent</span>
|
||||
<span class="sheet-blocklabel" style="width: 82px;" data-i18n="sacrifice-u">Sacrificed</span>
|
||||
<span class="sheet-blocklabel" style="width: 80px;" data-i18n="reserve-u">Reserve</span>
|
||||
</div>
|
||||
<input type="number" class="sheet-number" style="width: 80px;" name="attr_xp_total" placeholder="0" />
|
||||
<input type="number" class="sheet-derstat" style="width: 80px;" name="attr_xp_spent" value="0" readonly />
|
||||
<input type="number" class="sheet-number" style="width: 80px;" name="attr_xp_sacrificed" placeholder="0" />
|
||||
<input type="number" class="sheet-derstat" style="width: 80px;" name="attr_xp_reserve" value="0" readonly />
|
||||
</div>
|
||||
<br />
|
||||
<div class="sheet-heading" data-i18n="attrskill-u">Attributes & Skills</div>
|
||||
<div class="sheet-block">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_agi" value="&{template:basic} {{type= Attribute}} {{name= Agility}} {{roll= [[1d6+@{agi}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<input type="text" style="width:275px;" class="sheet-attrname" data-i18n="agi-u" value="Agility" readonly />
|
||||
<input type="number" class="sheet-number" name="attr_agi" value="0" />
|
||||
<input type="hidden" name="attr_agi_xp_used" value="0" />
|
||||
<input type="hidden" name="attr_agiskill_xp_used" value="0" />
|
||||
<div class="sheet-skillblock">
|
||||
<fieldset class="repeating_agiskills">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_agi_skill" value="&{template:basic} {{type= Skill}} {{name= @{agi_skill} @{agi_skill_spec} }} {{roll= [[1d6 + @{agi} + @{agi_skill_rating}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<select style="width:125px;" name="attr_agi_skill">
|
||||
<option value="" data-i18n="flaws" disabled>Skills</option>
|
||||
<option value="Assassination" data-i18n="assassination">Assassination</option>
|
||||
<option value="Athletics" data-i18n="athletics">Athletics</option>
|
||||
<option value="Cover" data-i18n="cover">Cover</option>
|
||||
<option value="Driving" data-i18n="driving">Driving</option>
|
||||
<option value="Grappling" data-i18n="grappling">Grappling</option>
|
||||
<option value="Marksmanship" data-i18n="marksmanship">Marksmanship</option>
|
||||
<option value="Missle Deflection" data-i18n="missle_deflection">Missle Deflection</option>
|
||||
<option value="Multistrike" data-i18n="multistrike">Multistrike</option>
|
||||
<option value="Piloting" data-i18n="piloting">Piloting</option>
|
||||
<option value="Riding" data-i18n="riding">Riding</option>
|
||||
<option value="Sailing" data-i18n="sailing">Sailing</option>
|
||||
<option value="Sleight-of-hand" data-i18n="sleight-of-hand">Sleight-of-Hand</option>
|
||||
<option value="Stealth" data-i18n="stealth">Stealth</option>
|
||||
<option value="Sworn Enemy" data-i18n="sworn_enemy">Sworn Enemy*</option>
|
||||
<option value="Team Tactics" data-i18n="team_tactics">Team Tactics</option>
|
||||
<option value="Unarmed Strike" data-i18n="unarmed_strike">Unarmed Strike</option>
|
||||
<option value="Weapon Mastery" data-i18n="weapon_mastery">Weapon Mastery*</option>
|
||||
<option value="" data-i18n="flaws" disabled>Flaws</option>
|
||||
<option value='Clumsiness' data-i18n='clumsiness'>Clumsiness</option>
|
||||
<option value='Handicap' data-i18n='handicap'>Handicap</option>
|
||||
</select>
|
||||
<input type="text" style="width: 125px;" name="attr_agi_skill_spec" value="" data-i18n-placeholder="skillspec-u" placeholder="Specifics" />
|
||||
<input type="number" class="sheet-attrval" name="attr_agi_skill_rating" value="0" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="sheet-block">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_tough" value="&{template:basic} {{type= Attribute}} {{name= Toughness}} {{roll= [[1d6+@{tough}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<input type="text" style="width:275px;" class="sheet-attrname" data-i18n="tough-u" value="Toughness" readonly />
|
||||
<input type="number" class="sheet-number" name="attr_tough" value="0" />
|
||||
<input type="hidden" name="attr_tough_xp_used" value="0" />
|
||||
<input type="hidden" name="attr_toughskill_xp_used" value="0" />
|
||||
<div class="sheet-skillblock">
|
||||
<fieldset class="repeating_toughskills">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_tough_skill" value="&{template:basic} {{type= Skill}} {{name= @{tough_skill} @{tough_skill_spec} }} {{roll= [[1d6 + @{tough} + @{tough_skill_rating}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<select style="width:125px;" name="attr_tough_skill">
|
||||
<option value="" data-i18n="skills" disabled>Skills</option>
|
||||
<option value='Aquatic' data-i18n='aquatic'>Aquatic</option>
|
||||
<option value='Armored Combat' data-i18n='armored combat'>Armored Combat</option>
|
||||
<option value='Charge' data-i18n='charge'>Charge</option>
|
||||
<option value='Endurance' data-i18n='endurance'>Endurance</option>
|
||||
<option value='Bighty Blow' data-i18n='mighty blow'>Mighty Blow</option>
|
||||
<option value='Resistance' data-i18n='resistance'>Resistance*</option>
|
||||
<option value='Second Wind' data-i18n='second wind'>Second Wind</option>
|
||||
<option value='Strength' data-i18n='strength'>Strength</option>
|
||||
<option value='Unlife' data-i18n='unlife'>Unlife</option>
|
||||
<option value="" data-i18n="flaws" disabled>Flaws</option>
|
||||
<option value='Breathless' data-i18n='breathless'>Breathless</option>
|
||||
<option value='Frailty' data-i18n='frailty'>Frailty</option>
|
||||
<option value='Sunlight sensitivity' data-i18n='sunlight sensitivity'>Sunlight Sensitivity</option>
|
||||
<option value='Vulnerability' data-i18n='vulnerability'>Vulnerability</option>
|
||||
<option value='Weakness' data-i18n='weakness'>Weakness</option>
|
||||
</select>
|
||||
<input type="text" style="width: 125px;" name="attr_tough_skill_spec" value="" data-i18n-placeholder="skillspec-u" placeholder="Specifics" />
|
||||
<input type="number" class="sheet-attrval" name="attr_tough_skill_rating" value="0" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="sheet-block">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_aware" value="&{template:basic} {{type= Attribute}} {{name= Awareness}} {{roll= [[1d6+@{aware}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<input type="text" style="width:275px;" class="sheet-attrname" data-i18n="aware-u" value="Awareness" readonly />
|
||||
<input type="number" class="sheet-number" name="attr_aware" value="0" />
|
||||
<input type="hidden" name="attr_aware_xp_used" value="0" />
|
||||
<input type="hidden" name="attr_awareskill_xp_used" value="0" />
|
||||
<div class="sheet-skillblock">
|
||||
<fieldset class="repeating_awareskills">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_aware_skill" value="&{template:basic} {{type= Skill}} {{name= @{aware_skill} @{aware_skill_spec} }} {{roll= [[1d6 + @{aware} + @{aware_skill_rating}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<select style="width:125px;" name="attr_aware_skill">
|
||||
<option value="" data-i18n="Skills" disabled>Skills</option>
|
||||
<option value='Appraisal' data-i18n='appraisal'>Appraisal</option>
|
||||
<option value='Arcane Lore' data-i18n='arcane lore'>Arcane Lore</option>
|
||||
<option value='Background' data-i18n='background'>Background*</option>
|
||||
<option value='Computers' data-i18n='computers'>Computers</option>
|
||||
<option value='Criminology' data-i18n='criminology'>Criminology</option>
|
||||
<option value='Fixing' data-i18n='fixing'>Fixing</option>
|
||||
<option value='Heavy Weapon' data-i18n='heavy_weapon'>Heavy Weapon*</option>
|
||||
<option value='Languages' data-i18n='languages'>Languages*</option>
|
||||
<option value='Locks & Traps' data-i18n='locks_traps'>Locks & Traps</option>
|
||||
<option value='Medicine' data-i18n='medicine'>Medicine</option>
|
||||
<option value='Memory' data-i18n='memory'>Memory</option>
|
||||
<option value='Nightvision' data-i18n='nightvision'>Nightvision</option>
|
||||
<option value='Observation' data-i18n='observation'>Observation</option>
|
||||
<option value='Power or Spell' data-i18n='power_or_spell'>Power or Spell*</option>
|
||||
<option value='Psychology' data-i18n='psychology'>Psychology</option>
|
||||
<option value='Research' data-i18n='research'>Research</option>
|
||||
<option value='Senses' data-i18n='senses'>Senses</option>
|
||||
<option value='Sixth Sense' data-i18n='sixth sense'>Sixth Sense</option>
|
||||
<option value='Survival' data-i18n='survival'>Survival*</option>
|
||||
<option value='Surgery' data-i18n='surgery'>Surgery</option>
|
||||
<option value='Surveillance' data-i18n='surveillance'>Surveillance</option>
|
||||
<option value='Trivia' data-i18n='trivia'>Trivia</option>
|
||||
<option value='Underworld' data-i18n='underworld'>Underworld</option>
|
||||
<option value="" data-i18n="flaws" disabled>Flaws</option>
|
||||
<option value='Absent-mindedness' data-i18n='absent-mindedness'>Absent-Mindedness</option>
|
||||
<option value='Blindness' data-i18n='blindness'>Blindness</option>
|
||||
<option value='Deafness' data-i18n='deafness'>Deafness</option>
|
||||
</select>
|
||||
<input type="text" style="width: 125px;" name="attr_aware_skill_spec" value="" data-i18n-placeholder="skillspec-u" placeholder="Specifics" />
|
||||
<input type="number" class="sheet-attrval" name="attr_aware_skill_rating" value="0" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="sheet-block">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_will" value="&{template:basic} {{type= Attribute}} {{name= Will}} {{roll= [[1d6+@{will}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<input type="text" style="width:275px;" class="sheet-attrname" data-i18n="will-u" value="Will" readonly />
|
||||
<input type="number" class="sheet-number" name="attr_will" value="0" />
|
||||
<input type="hidden" name="attr_will_xp_used" value="0" />
|
||||
<input type="hidden" name="attr_willskill_xp_used" value="0" />
|
||||
<div class="sheet-skillblock">
|
||||
<fieldset class="repeating_willskills">
|
||||
<button type="roll" class="sheet-rollbutton" name="roll_will_skill" value="&{template:basic} {{type= Skill}} {{name= @{will_skill} @{will_skill_spec} }} {{roll= [[1d6 + @{will} + @{will_skill_rating}]]}} {{explode= [[1d6]]}}"></button>
|
||||
<select style="width:125px;" name="attr_will_skill">
|
||||
<option value="" data-i18n="skills" disabled>Skills</option>
|
||||
<option value='Animal Handling' data-i18n='animal_handling'>Animal Handling*</option>
|
||||
<option value='Art' data-i18n='art'>Art*</option>
|
||||
<option value='Bargaining' data-i18n='bargaining'>Bargaining</option>
|
||||
<option value='Battle Rage' data-i18n='battle_rage'>Battle Rage</option>
|
||||
<option value='Command' data-i18n='command'>Command</option>
|
||||
<option value='Focus' data-i18n='focus'>Focus</option>
|
||||
<option value='Followers' data-i18n='followers'>Followers</option>
|
||||
<option value='Impersonation' data-i18n='impersonation'>Impersonation</option>
|
||||
<option value='Intimidation/Fear' data-i18n='intimidation_fear'>Intimidation/Fear</option>
|
||||
<option value='Luck' data-i18n='luck'>Luck</option>
|
||||
<option value='Oratory' data-i18n='oratory'>Oratory</option>
|
||||
<option value='Persuasion' data-i18n='persuasion'>Persuasion</option>
|
||||
<option value='Politics' data-i18n='politics'>Politics</option>
|
||||
<option value='Reputation' data-i18n='reputation'>Reputation*</option>
|
||||
<option value='Street Smarts' data-i18n='street_smarts'>Street Smarts</option>
|
||||
<option value='Trickery' data-i18n='trickery'>Trickery</option>
|
||||
<option value="" data-i18n="flaws" disabled>Flaws</option>
|
||||
<option value='Addiction' data-i18n='addiction'>Addiction*</option>
|
||||
<option value='Cowardice' data-i18n='cowardice'>Cowardice</option>
|
||||
<option value='Code of Honor' data-i18n='code_of_honor'>Code of Honor*</option>
|
||||
<option value='Flashbacks' data-i18n='flashbacks'>Flashbacks</option>
|
||||
<option value='Greed' data-i18n='greed'>Greed*</option>
|
||||
<option value='Outcast' data-i18n='outcast'>Outcast*</option>
|
||||
<option value='Phobia' data-i18n='phobia'>Phobia*</option>
|
||||
<option value='Unluck' data-i18n='unluck'>Unluck</option>
|
||||
<option value='Unmistakable Feature' data-i18n='unmistakable_feature'>Unmistakable Feature*</option>
|
||||
</select>
|
||||
<input type="text" style="width: 125px;" name="attr_will_skill_spec" value="" data-i18n-placeholder="skillspec-u" placeholder="Specifics" />
|
||||
<input type="number" class="sheet-attrval" name="attr_will_skill_rating" value="0" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='sheet-col'>
|
||||
<div class="sheet-heading" data-i18n='derstat'>Derived Statistics</div>
|
||||
<div class="sheet-block sheet-smallblock">
|
||||
<div class="sheet-top">
|
||||
<button type="roll" class="sheet-rollbutton" style="width:65px" name="roll_health" value="&{template:stat} {{name= Health}} {{check= [[2d6]]}}" data-i18n="health-u">Health</button>
|
||||
</div>
|
||||
<input type="text" class="sheet-derstat" style="width:40px" name="attr_curhealth" value="0" readonly />/<input type="text" class="sheet-derstat" style="width:35px" name="attr_health" value="0" readonly />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock">
|
||||
<div class="sheet-top">
|
||||
<button type="roll" class="sheet-rollbutton" style="width:65px" name="roll_move" value="&{template:stat} {{name= Move}} {{check= [[2d6]]}}" data-i18n="move-u">Move</button>
|
||||
</div>
|
||||
<input type="text" class="sheet-derstat" style="width:40px" name="attr_curmove" value="0" readonly />/<input type="text" class="sheet-derstat" style="width: 35px;" name="attr_move" value="0" readonly />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock">
|
||||
<div class="sheet-top">
|
||||
<button type="roll" class="sheet-rollbutton" style="width:65px" name="roll_init" value="&{template:stat} {{name= Initiative}} {{check= [[2d6]]}}" data-i18n="init-u">Init</button>
|
||||
</div>
|
||||
<input type="text" class="sheet-derstat" style="width:40px" name="attr_curinit" value="0" readonly />/<input type="text" class="sheet-derstat" style="width: 35px;" name="attr_initiative" value="0" readonly />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock">
|
||||
<div class="sheet-top">
|
||||
<button type="roll" class="sheet-rollbutton" style="width:65px" name="roll_spirit" value="&{template:stat} {{name= Spirit}} {{check= [[2d6]]}}" data-i18n="spirit-u">Spirit</button>
|
||||
</div>
|
||||
<input type="text" class="sheet-derstat" style="width:40px" name="attr_curspirit" value="0" readonly />/<input type="text" class="sheet-derstat" style="width: 35px;" name="attr_spirit" value="0" readonly />
|
||||
</div>
|
||||
<br/>
|
||||
<div class="sheet-heading" data-i18n='bonus'>Bonuses & Penalties</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:55px">
|
||||
<div class="sheet-top" data-i18n='atk'>
|
||||
Attack
|
||||
</div>
|
||||
<input type="text" class="sheet-number" style="width:50px" name="attr_atk" value="0" />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:55px">
|
||||
<div class="sheet-top" data-i18n='defense'>
|
||||
Defense
|
||||
</div>
|
||||
<input type="text" class="sheet-number" style="width:50px" name="attr_def" value="0" />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:55px">
|
||||
<div class="sheet-top" data-i18n='damage'>
|
||||
Damage
|
||||
</div>
|
||||
<input type="number" class="sheet-number" style="width:50px" name="attr_dam" value="0" />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:110px;">
|
||||
<div class="sheet-top" data-i18n='impair'>
|
||||
Impairment Level
|
||||
</div>
|
||||
<input type="radio" name="attr_impair" value="0" readonly checked="true" /><span style="margin-right: 5px; border-right:2px solid gold;" ></span>
|
||||
<input type="radio" name="attr_impair" value="1" readonly /><span></span>
|
||||
<input type="radio" name="attr_impair" value="2" readonly /><span></span>
|
||||
<input type="radio" name="attr_impair" value="3" readonly /><span></span>
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:55px">
|
||||
<div class="sheet-top" data-i18n='injury'>
|
||||
Injuries
|
||||
</div>
|
||||
<input type="number" class="sheet-number" style="width:50px" name="attr_injury" value="0" />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:55px">
|
||||
<div class="sheet-top" data-i18n='move-u'>
|
||||
Move
|
||||
</div>
|
||||
<input type="number" class="sheet-number" style="width:50px" name="attr_move_mod" value="0" />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:55px">
|
||||
<div class="sheet-top" data-i18n='init-u'>
|
||||
Init
|
||||
</div>
|
||||
<input type="number" class="sheet-number" style="width:50px" name="attr_init_mod" value="0" />
|
||||
</div>
|
||||
<div class="sheet-block sheet-smallblock" style="width:55px">
|
||||
<div class="sheet-top" data-i18n='spirit-u'>
|
||||
Spirit
|
||||
</div>
|
||||
<input type="number" class="sheet-number" style="width:50px" name="attr_spirit_mod" value="0" />
|
||||
</div>
|
||||
<br/>
|
||||
<div class="sheet-heading" data-i18n='notes-u'>Notes</div>
|
||||
<div class="sheet-block">
|
||||
<textarea name="attr_notes" style="width:95%; height:200px;"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sheet-tab sheet-tab-equipment">
|
||||
<input type="radio" name="attr_tab" value="equipment">
|
||||
<span class="sheet-tab-label">Equipment</span>
|
||||
<div class="sheet-tab-content">
|
||||
<div class="sheet-content">
|
||||
<div class="sheet-heading">Weapons</div>
|
||||
<div class="sheet-block">
|
||||
<div class="sheet-top">
|
||||
<span class="sheet-blocklabel" style="width: 155px;" data-i18n="name-u">Name</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="ammo-u">Ammo</span>
|
||||
<span class="sheet-blocklabel" style="width: 50px;" data-i18n="rel-u">Rel</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="rng-u">Range</span>
|
||||
<span class="sheet-blocklabel" style="width: 80px;" data-i18n="dam-u">DAM</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="aoe-u">AOE</span>
|
||||
<span class="sheet-blocklabel" style="width: 50px;" data-i18n="wt-u">Wt</span>
|
||||
<span class="sheet-blocklabel" style="width: 100px;" data-i18n="notes-u">Notes</span>
|
||||
</div>
|
||||
<fieldset class="repeating_weapons">
|
||||
<input type="text" style="width:150px" name="attr_weaponname" />
|
||||
<input type="text" style="width:50px" name="attr_weaponammo" />
|
||||
<input type="text" style="width:50px" name="attr_weaponrel" />
|
||||
<input type="text" style="width:50px" name="attr_weaponrng" />
|
||||
<input type="text" style="width:75px" name="attr_weapondmg" />
|
||||
<input type="text" style="width:50px" name="attr_weaponaoe" />
|
||||
<input type="text" style="width:50px" name="attr_weaponwt" />
|
||||
<input type="text" style="width:270px" name="attr_weaponnote" data-i18n-placeholder="notes-u" placeholder="Notes" />
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="sheet-2colrow">
|
||||
<div class="sheet-col">
|
||||
<div class="sheet-heading">Armor</div>
|
||||
<div class="sheet-block">
|
||||
<div class="sheet-top">
|
||||
<span class="sheet-blocklabel" style="width: 250px;" data-i18n="name-u">Name</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="arm-u">ARM</span>
|
||||
<span class="sheet-blocklabel" style="width: 20px;" data-i18n="wt-u">Wt</span>
|
||||
</div>
|
||||
<fieldset class="repeating_armor">
|
||||
<input type="text" style="width:250px" name="attr_armorname" />
|
||||
<input type="text" style="width:50px" name="attr_armorsoak" />
|
||||
<input type="text" style="width:50px" name="attr_armorwt" />
|
||||
<br />
|
||||
<input type="text" style="margin-left:20px; width:335px" name="attr_armornote" data-i18n-placeholder="notes-u" placeholder="Notes" />
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="sheet-heading">Mounts & Vehicles</div>
|
||||
<div class="sheet-block">
|
||||
<div class="sheet-top">
|
||||
<span class="sheet-blocklabel" style="width: 140px;" data-i18n="name-u">Name</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="crew-u">Crew</span>
|
||||
<span class="sheet-blocklabel" style="width: 30px;" data-i18n="agiabbr-u">AGI</span>
|
||||
<span class="sheet-blocklabel" style="width: 62px;" data-i18n="move-u">Move</span>
|
||||
<span class="sheet-blocklabel" style="width: 37px;" data-i18n="arm-u">ARM</span>
|
||||
<span class="sheet-blocklabel" style="width: 20px;" data-i18n="health-u">Health</span>
|
||||
</div>
|
||||
<fieldset class="repeating_armor">
|
||||
<input type="text" style="width:135px" name="attr_mntname" />
|
||||
<input type="text" style="width:50px" name="attr_mntcrew" />
|
||||
<input type="text" style="width:30px" name="attr_mntagi" />
|
||||
<input type="text" style="width:60px" name="attr_mntmove" />
|
||||
<input type="text" style="width:30px" name="attr_mntarm" />
|
||||
<input type="text" style="width:35px" name="attr_mnthealth" />
|
||||
<br />
|
||||
<input type="text" style="margin-left:20px; width:335px" name="attr_mntnote" data-i18n-placeholder="notes-u" placeholder="Notes" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sheet-col">
|
||||
<div class="sheet-heading">Equipment</div>
|
||||
<div class="sheet-block">
|
||||
<div class="sheet-top">
|
||||
<span class="sheet-blocklabel" style="width: 180px;" data-i18n="name-u">Name</span>
|
||||
<span class="sheet-blocklabel" style="width: 130px;" data-i18n="loc-u">Location</span>
|
||||
<span class="sheet-blocklabel" style="width: 20px;" data-i18n="wt-u">Wt</span>
|
||||
</div>
|
||||
<fieldset class="repeating_equipment">
|
||||
<input type="text" style="width:175px" name="attr_equipname" />
|
||||
<input type="text" style="width:125px" name="attr_equiploc" />
|
||||
<input type="text" style="width:50px" name="attr_equipwt" />
|
||||
<br />
|
||||
<input type="text" style="margin-left:20px; width:335px" name="attr_equipnote" data-i18n-placeholder="notes-u" placeholder="Notes" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sheet-tab sheet-tab-features">
|
||||
<input type="radio" name="attr_tab" value="features">
|
||||
<span class="sheet-tab-label">Spells & Powers</span>
|
||||
<div class="sheet-tab-content">
|
||||
<div class="sheet-content">
|
||||
<div class="sheet-heading">Spells & Psionics</div>
|
||||
<div class="sheet-block">
|
||||
<div class="sheet-top">
|
||||
<span class="sheet-blocklabel" style="width: 155px;" data-i18n="name-u">Name</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="dif-u">DIF</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="cast-u">Casting Time</span>
|
||||
<span class="sheet-blocklabel" style="width: 55px;" data-i18n="rng-u">Range</span>
|
||||
<span class="sheet-blocklabel" style="width: 80px;" data-i18n="dur-u">Duration</span>
|
||||
<span class="sheet-blocklabel" style="width: 350px;" data-i18n="notes-u">Notes</span>
|
||||
</div>
|
||||
<fieldset class="repeating_spells">
|
||||
<input type="text" style="width:150px" name="attr_spellname" />
|
||||
<input type="text" style="width:50px" name="attr_spelldif" />
|
||||
<input type="text" style="width:50px" name="attr_casttime" />
|
||||
<input type="text" style="width:50px" name="attr_spellrng" />
|
||||
<input type="text" style="width:75px" name="attr_spellduration" />
|
||||
<input type="text" style="width:375px" name="attr_spellnote" data-i18n-placeholder="notes-u" placeholder="Notes" />
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="sheet-heading">Powers</div>
|
||||
<div class="sheet-block">
|
||||
<div class="sheet-top">
|
||||
<span class="sheet-blocklabel" style="width: 155px;" data-i18n="name-u">Name</span>
|
||||
<span class="sheet-blocklabel" style="width: 130px;" data-i18n="rng-u">Range</span>
|
||||
<span class="sheet-blocklabel" style="width: 200px;" data-i18n="meffect-u">Description</span>
|
||||
</div>
|
||||
<fieldset class="repeating_spells">
|
||||
<input type="text" style="width:150px" name="attr_powername" />
|
||||
<input type="text" style="width:125px" name="attr_powerrng" />
|
||||
<input type="text" style="width:475px" name="attr_majoreffect" />
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sheet-tab sheet-tab-features" style="display:none">
|
||||
<input type="radio" name="attr_tab" value="">
|
||||
<span class="sheet-tab-label"></span>
|
||||
<div class="sheet-tab-content">
|
||||
<div class="sheet-content">
|
||||
Settings
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sheet-tab sheet-tab-features" style="display:none">
|
||||
<input type="radio" name="attr_tab" value="advanced">
|
||||
<span class="sheet-tab-label">Advanced Settings</span>
|
||||
<div class="sheet-tab-content">
|
||||
<div class="sheet-content">
|
||||
Settings
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<rolltemplate class="sheet-rolltemplate-basic">
|
||||
<div class="sheet-template-container">
|
||||
<div class="sheet-template-header" data-i18n="sc-u">{{type}} Check</div>
|
||||
<div class="sheet-template-row">{{name}}: {{roll}}
|
||||
{{#rollWasCrit() roll}}
|
||||
<span> + </span>{{explode}}
|
||||
{{#rollWasCrit() explode}}
|
||||
<span data-i18n="crit-u">Critical!</span>
|
||||
{{/rollWasCrit() explode}}
|
||||
{{/rollWasCrit() roll}}
|
||||
</div>
|
||||
</div>
|
||||
</rolltemplate>
|
||||
|
||||
<rolltemplate class="sheet-rolltemplate-stat">
|
||||
<div class="sheet-template-container">
|
||||
<div class="sheet-template-header" data-i18n="statc-u">Stat Check</div>
|
||||
<div class="sheet-template-row">
|
||||
{{#rollTotal() check 12}}
|
||||
Fumble {{name}}: {{check}}
|
||||
{{/rollTotal() check 12}}
|
||||
{{#rollTotal() check 2}}
|
||||
Crit {{name}}: {{roll}}
|
||||
{{/rollTotal() check 2}}
|
||||
{{#rollBetween() check 3 11}}
|
||||
{{name}}: {{check}}
|
||||
{{/rollBetween() check 3 11}}
|
||||
</div>
|
||||
</div>
|
||||
</rolltemplate>
|
||||
|
||||
<script type="text/worker">
|
||||
|
||||
on("change:agi", function() {
|
||||
getAttrs(["agi","xp_total","xp_sacrificed","move_mod","tough_xp_used","aware_xp_used","will_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
agi = parseInt(values.agi,10)||0;
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
move_mod = parseInt(values.move_mod,10)||0;
|
||||
tough_xp_used = parseInt(values.tough_xp_used,10)||0;
|
||||
aware_xp_used = parseInt(values.aware_xp_used,10)||0;
|
||||
will_xp_used = parseInt(values.will_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
agi_xp_used = calc_XPUsed(agi);
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
move: 9 + agi_xp_used,
|
||||
curmove: 9 + agi_xp_used + move_mod,
|
||||
agi_xp_used: agi_xp_used,
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:tough", function() {
|
||||
getAttrs(["tough","xp_total","xp_sacrificed","injury","agi_xp_used","aware_xp_used","will_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
tough = parseInt(values.tough,10)||0;
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
injuries = parseInt(values.injury,10)||0;
|
||||
agi_xp_used = parseInt(values.agi_xp_used,10)||0;
|
||||
aware_xp_used = parseInt(values.aware_xp_used,10)||0;
|
||||
will_xp_used = parseInt(values.will_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
tough_xp_used = calc_XPUsed(tough);
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
health: 9 + tough_xp_used,
|
||||
curhealth: 9 + tough_xp_used - injuries,
|
||||
tough_xp_used: tough_xp_used,
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:aware", function() {
|
||||
getAttrs(["aware","xp_total","xp_sacrificed","init_mod","tough_xp_used","agi_xp_used","will_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
aware = parseInt(values.aware,10)||0;
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
init_mod = parseInt(values.init_mod,10)||0;
|
||||
agi_xp_used = parseInt(values.agi_xp_used,10)||0;
|
||||
tough_xp_used = parseInt(values.tough_xp_used,10)||0;
|
||||
will_xp_used = parseInt(values.will_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
aware_xp_used = calc_XPUsed(aware);
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
initiative: 9 + aware_xp_used,
|
||||
curinit: 9 + aware_xp_used + init_mod,
|
||||
aware_xp_used: aware_xp_used,
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:will", function() {
|
||||
getAttrs(["will","xp_total","xp_sacrificed","spirit_mod","tough_xp_used","aware_xp_used","agi_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
will = parseInt(values.will,10)||0;
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
spirit_mod = parseInt(values.spirit_mod,10)||0;
|
||||
agi_xp_used = parseInt(values.agi_xp_used,10)||0;
|
||||
tough_xp_used = parseInt(values.tough_xp_used,10)||0;
|
||||
aware_xp_used = parseInt(values.aware_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
will_xp_used = calc_XPUsed(will);
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
spirit: 9 + will_xp_used,
|
||||
curspirit: 9 + will_xp_used + spirit_mod,
|
||||
will_xp_used: will_xp_used,
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:xp_total", function() {
|
||||
getAttrs(["xp_total","xp_spent","xp_sacrificed"], function(values) {
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_spent = parseInt(values.xp_spent,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
setAttrs({
|
||||
xp_reserve: xp_total - xp_spent - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:xp_sacrificed", function() {
|
||||
getAttrs(["xp_total","xp_spent","xp_sacrificed"], function(values) {
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_spent = parseInt(values.xp_spent,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
setAttrs({
|
||||
xp_reserve: xp_total - xp_spent - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:injury", function() {
|
||||
getAttrs(["health","injury"], function(values) {
|
||||
health = parseInt(values.health,10)||0;
|
||||
injuries = parseInt(values.injury,10)||0;
|
||||
setAttrs({
|
||||
curhealth: health - injuries
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:move_mod", function() {
|
||||
getAttrs(["move","move_mod"], function(values) {
|
||||
move = parseInt(values.move,10)||0;
|
||||
move_mod = parseInt(values.move_mod,10)||0;
|
||||
setAttrs({
|
||||
curmove: move + move_mod
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:init_mod", function() {
|
||||
getAttrs(["initiative","init_mod"], function(values) {
|
||||
init = parseInt(values.initiative,10)||0;
|
||||
init_mod = parseInt(values.init_mod,10)||0;
|
||||
setAttrs({
|
||||
curinit: init + init_mod
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on("change:spirit_mod", function() {
|
||||
getAttrs(["spirit","spirit_mod"], function(values) {
|
||||
spirit = parseInt(values.spirit,10)||0;
|
||||
spirit_mod = parseInt(values.spirit_mod,10)||0;
|
||||
setAttrs({
|
||||
curspirit: spirit + spirit_mod
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on('change:repeating_agiskills remove:repeating_agiskills', () => {
|
||||
repeatingXPSum("agiskill_xp_used","agiskills","agi_skill_rating", function() {
|
||||
getAttrs(["xp_total","xp_sacrificed","agi_xp_used","tough_xp_used","aware_xp_used","will_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
agi_xp_used = parseInt(values.agi_xp_used,10)||0;
|
||||
tough_xp_used = parseInt(values.tough_xp_used,10)||0;
|
||||
aware_xp_used = parseInt(values.aware_xp_used,10)||0;
|
||||
will_xp_used = parseInt(values.will_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on('change:repeating_toughskills remove:repeating_toughskills', () => {
|
||||
repeatingXPSum("toughskill_xp_used","toughskills","tough_skill_rating", function() {
|
||||
getAttrs(["xp_total","xp_sacrificed","agi_xp_used","tough_xp_used","aware_xp_used","will_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
agi_xp_used = parseInt(values.agi_xp_used,10)||0;
|
||||
tough_xp_used = parseInt(values.tough_xp_used,10)||0;
|
||||
aware_xp_used = parseInt(values.aware_xp_used,10)||0;
|
||||
will_xp_used = parseInt(values.will_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on('change:repeating_awareskills remove:repeating_awareskills', () => {
|
||||
repeatingXPSum("awareskill_xp_used","awareskills","aware_skill_rating", function() {
|
||||
getAttrs(["xp_total","xp_sacrificed","agi_xp_used","tough_xp_used","aware_xp_used","will_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
agi_xp_used = parseInt(values.agi_xp_used,10)||0;
|
||||
tough_xp_used = parseInt(values.tough_xp_used,10)||0;
|
||||
aware_xp_used = parseInt(values.aware_xp_used,10)||0;
|
||||
will_xp_used = parseInt(values.will_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
on('change:repeating_willskills remove:repeating_willskills', () => {
|
||||
repeatingXPSum("willskill_xp_used","willskills","will_skill_rating", function() {
|
||||
getAttrs(["xp_total","xp_sacrificed","agi_xp_used","tough_xp_used","aware_xp_used","will_xp_used","agiskill_xp_used","toughskill_xp_used","awareskill_xp_used","willskill_xp_used"], function(values) {
|
||||
xp_total = parseInt(values.xp_total,10)||0;
|
||||
xp_sacrificed = parseInt(values.xp_sacrificed,10)||0;
|
||||
agi_xp_used = parseInt(values.agi_xp_used,10)||0;
|
||||
tough_xp_used = parseInt(values.tough_xp_used,10)||0;
|
||||
aware_xp_used = parseInt(values.aware_xp_used,10)||0;
|
||||
will_xp_used = parseInt(values.will_xp_used,10)||0;
|
||||
agiskill_xp_used = parseInt(values.agiskill_xp_used,10)||0;
|
||||
toughskill_xp_used = parseInt(values.toughskill_xp_used,10)||0;
|
||||
awareskill_xp_used = parseInt(values.awareskill_xp_used,10)||0;
|
||||
willskill_xp_used = parseInt(values.willskill_xp_used,10)||0;
|
||||
xpUsed = agi_xp_used + tough_xp_used + aware_xp_used + will_xp_used + agiskill_xp_used + toughskill_xp_used + awareskill_xp_used + willskill_xp_used;
|
||||
setAttrs({
|
||||
xp_spent: xpUsed,
|
||||
xp_reserve: xp_total - xpUsed - xp_sacrificed
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function calc_XPUsed(grade) {
|
||||
total = 0;
|
||||
if (grade >= 0) {
|
||||
for (i = 1; i <= grade; i++) {total += i; }
|
||||
} else {
|
||||
total = grade;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
|
||||
/* ===== PARAMETERS ==========
|
||||
destination = the name of the attribute that stores the total quantity
|
||||
section = name of repeating fieldset, without the repeating_
|
||||
fields = the name of the attribute field to be summed
|
||||
can be a single attribute: 'weight'
|
||||
or an array of attributes: ['weight','number','equipped']
|
||||
multiplier (optional) = a multiplier to to entire fieldset total. For instance, if summing coins of weight 0.02, might want to multiply the final total by 0.02.
|
||||
*/
|
||||
const repeatingXPSum = (destination, section, fields, callback, multiplier = 1) => {
|
||||
if (!Array.isArray(fields)) fields = [fields];
|
||||
getSectionIDs(`repeating_${section}`, idArray => {
|
||||
const attrArray = idArray.reduce( (m,id) => [...m, ...(fields.map(field => `repeating_${section}_${id}_${field}`))],[]);
|
||||
getAttrs(attrArray, v => {
|
||||
console.log("===== values of v: "+ JSON.stringify(v) +" =====");
|
||||
// getValue: if not a number, returns 1 if it is 'on' (checkbox), otherwise returns 0..
|
||||
const getValue = (section, id,field) => parseFloat(v[`repeating_${section}_${id}_${field}`], 10) || (v[`repeating_${section}_${id}_${field}`] === 'on' ? 1 : 0);
|
||||
const sumTotal = idArray.reduce((total, id) => total + fields.reduce((subtotal,field) => subtotal * calc_XPUsed(getValue(section, id,field)),1),0);
|
||||
setAttrs({[destination]: sumTotal * multiplier}, callback);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
</script>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 114 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"html": "elemental.html",
|
||||
"css": "elemental.css",
|
||||
"authors": "Shawn P. Conlin",
|
||||
"preview": "elemental.png",
|
||||
"roll20userid": "2315022",
|
||||
"instructions": "A character sheet for use with Elemental from Gildor Games. The sheet is designed to be generic since the RPG is not genre specific."
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"name-u": "Name",
|
||||
"title-u": "Title:",
|
||||
"species-u": "Species:",
|
||||
"total-u": "Total",
|
||||
"spent-u": "Spent",
|
||||
"sacrifice-u": "Sacrificed",
|
||||
"reserve-u": "Reserve",
|
||||
"attrskill-u": "Attributes & Skills",
|
||||
"agi-u": "",
|
||||
"flaws": "Flaws",
|
||||
"assassination": "Assassination",
|
||||
"athletics": "Athletics",
|
||||
"cover": "Cover",
|
||||
"driving": "Driving",
|
||||
"grappling": "Grappling",
|
||||
"marksmanship": "Marksmanship",
|
||||
"missle_deflection": "Missle Deflection",
|
||||
"multistrike": "Multistrike",
|
||||
"piloting": "Piloting",
|
||||
"riding": "Riding",
|
||||
"sailing": "Sailing",
|
||||
"sleight-of-hand": "Sleight-of-Hand",
|
||||
"stealth": "Stealth",
|
||||
"sworn_enemy": "Sworn Enemy*",
|
||||
"team_tactics": "Team Tactics",
|
||||
"unarmed_strike": "Unarmed Strike",
|
||||
"weapon_mastery": "Weapon Mastery*",
|
||||
"clumsiness": "Clumsiness",
|
||||
"handicap": "Handicap",
|
||||
"skillspec-u": "Specifics",
|
||||
"tough-u": "",
|
||||
"skills": "Skills",
|
||||
"aquatic": "Aquatic",
|
||||
"armored combat": "Armored Combat",
|
||||
"charge": "Charge",
|
||||
"endurance": "Endurance",
|
||||
"mighty blow": "Mighty Blow",
|
||||
"resistance": "Resistance*",
|
||||
"second wind": "Second Wind",
|
||||
"strength": "Strength",
|
||||
"unlife": "Unlife",
|
||||
"breathless": "Breathless",
|
||||
"frailty": "Frailty",
|
||||
"sunlight sensitivity": "Sunlight Sensitivity",
|
||||
"vulnerability": "Vulnerability",
|
||||
"weakness": "Weakness",
|
||||
"aware-u": "",
|
||||
"Skills": "Skills",
|
||||
"appraisal": "Appraisal",
|
||||
"arcane lore": "Arcane Lore",
|
||||
"background": "Background*",
|
||||
"computers": "Computers",
|
||||
"criminology": "Criminology",
|
||||
"fixing": "Fixing",
|
||||
"heavy_weapon": "Heavy Weapon*",
|
||||
"languages": "Languages*",
|
||||
"locks_traps": "Locks & Traps",
|
||||
"medicine": "Medicine",
|
||||
"memory": "Memory",
|
||||
"nightvision": "Nightvision",
|
||||
"observation": "Observation",
|
||||
"power_or_spell": "Power or Spell*",
|
||||
"psychology": "Psychology",
|
||||
"research": "Research",
|
||||
"senses": "Senses",
|
||||
"sixth sense": "Sixth Sense",
|
||||
"survival": "Survival*",
|
||||
"surgery": "Surgery",
|
||||
"surveillance": "Surveillance",
|
||||
"trivia": "Trivia",
|
||||
"underworld": "Underworld",
|
||||
"absent-mindedness": "Absent-Mindedness",
|
||||
"blindness": "Blindness",
|
||||
"deafness": "Deafness",
|
||||
"will-u": "",
|
||||
"animal_handling": "Animal Handling*",
|
||||
"art": "Art*",
|
||||
"bargaining": "Bargaining",
|
||||
"battle_rage": "Battle Rage",
|
||||
"command": "Command",
|
||||
"focus": "Focus",
|
||||
"followers": "Followers",
|
||||
"impersonation": "Impersonation",
|
||||
"intimidation_fear": "Intimidation/Fear",
|
||||
"luck": "Luck",
|
||||
"oratory": "Oratory",
|
||||
"persuasion": "Persuasion",
|
||||
"politics": "Politics",
|
||||
"reputation": "Reputation*",
|
||||
"street_smarts": "Street Smarts",
|
||||
"trickery": "Trickery",
|
||||
"addiction": "Addiction*",
|
||||
"cowardice": "Cowardice",
|
||||
"code_of_honor": "Code of Honor*",
|
||||
"flashbacks": "Flashbacks",
|
||||
"greed": "Greed*",
|
||||
"outcast": "Outcast*",
|
||||
"phobia": "Phobia*",
|
||||
"unluck": "Unluck",
|
||||
"unmistakable_feature": "Unmistakable Feature*",
|
||||
"derstat": "Derived Statistics",
|
||||
"health-u": "Health",
|
||||
"move-u": "Move",
|
||||
"init-u": "Init",
|
||||
"spirit-u": "Spirit",
|
||||
"bonus": "Bonuses & Penalties",
|
||||
"arm-u": "ARM",
|
||||
"injury": "Injuries",
|
||||
"impair": "Impairment Level",
|
||||
"atk": "Attack",
|
||||
"defense": "Defense",
|
||||
"damage": "Damage",
|
||||
"ammo-u": "Ammo",
|
||||
"rel-u": "Rel",
|
||||
"rng-u": "Range",
|
||||
"dam-u": "DAM",
|
||||
"aoe-u": "AOE",
|
||||
"wt-u": "Wt",
|
||||
"notes-u": "Notes",
|
||||
"crew-u": "Crew",
|
||||
"agiabbr-u": "AGI",
|
||||
"loc-u": "Location",
|
||||
"dif-u": "DIF",
|
||||
"cast-u": "Casting Time",
|
||||
"dur-u": "Duration",
|
||||
"meffect-u": "Description",
|
||||
"sc-u": " Skill Check",
|
||||
"statc-u": "Stat Check"
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"name-u": "Name",
|
||||
"title-u": "Title:",
|
||||
"species-u": "Species:",
|
||||
"total-u": "Total",
|
||||
"spent-u": "Spent",
|
||||
"sacrifice-u": "Sacrificed",
|
||||
"reserve-u": "Reserve",
|
||||
"attrskill-u": "Attributes & Skills",
|
||||
"agi-u": "",
|
||||
"flaws": "Flaws",
|
||||
"assassination": "Assassination",
|
||||
"athletics": "Athletics",
|
||||
"cover": "Cover",
|
||||
"driving": "Driving",
|
||||
"grappling": "Grappling",
|
||||
"marksmanship": "Marksmanship",
|
||||
"missle_deflection": "Missle Deflection",
|
||||
"multistrike": "Multistrike",
|
||||
"piloting": "Piloting",
|
||||
"riding": "Riding",
|
||||
"sailing": "Sailing",
|
||||
"sleight-of-hand": "Sleight-of-Hand",
|
||||
"stealth": "Stealth",
|
||||
"sworn_enemy": "Sworn Enemy*",
|
||||
"team_tactics": "Team Tactics",
|
||||
"unarmed_strike": "Unarmed Strike",
|
||||
"weapon_mastery": "Weapon Mastery*",
|
||||
"clumsiness": "Clumsiness",
|
||||
"handicap": "Handicap",
|
||||
"skillspec-u": "Specifics",
|
||||
"tough-u": "",
|
||||
"skills": "Skills",
|
||||
"aquatic": "Aquatic",
|
||||
"armored combat": "Armored Combat",
|
||||
"charge": "Charge",
|
||||
"endurance": "Endurance",
|
||||
"mighty blow": "Mighty Blow",
|
||||
"resistance": "Resistance*",
|
||||
"second wind": "Second Wind",
|
||||
"strength": "Strength",
|
||||
"unlife": "Unlife",
|
||||
"breathless": "Breathless",
|
||||
"frailty": "Frailty",
|
||||
"sunlight sensitivity": "Sunlight Sensitivity",
|
||||
"vulnerability": "Vulnerability",
|
||||
"weakness": "Weakness",
|
||||
"aware-u": "",
|
||||
"Skills": "Skills",
|
||||
"appraisal": "Appraisal",
|
||||
"arcane lore": "Arcane Lore",
|
||||
"background": "Background*",
|
||||
"computers": "Computers",
|
||||
"criminology": "Criminology",
|
||||
"fixing": "Fixing",
|
||||
"heavy_weapon": "Heavy Weapon*",
|
||||
"languages": "Languages*",
|
||||
"locks_traps": "Locks & Traps",
|
||||
"medicine": "Medicine",
|
||||
"memory": "Memory",
|
||||
"nightvision": "Nightvision",
|
||||
"observation": "Observation",
|
||||
"power_or_spell": "Power or Spell*",
|
||||
"psychology": "Psychology",
|
||||
"research": "Research",
|
||||
"senses": "Senses",
|
||||
"sixth sense": "Sixth Sense",
|
||||
"survival": "Survival*",
|
||||
"surgery": "Surgery",
|
||||
"surveillance": "Surveillance",
|
||||
"trivia": "Trivia",
|
||||
"underworld": "Underworld",
|
||||
"absent-mindedness": "Absent-Mindedness",
|
||||
"blindness": "Blindness",
|
||||
"deafness": "Deafness",
|
||||
"will-u": "",
|
||||
"animal_handling": "Animal Handling*",
|
||||
"art": "Art*",
|
||||
"bargaining": "Bargaining",
|
||||
"battle_rage": "Battle Rage",
|
||||
"command": "Command",
|
||||
"focus": "Focus",
|
||||
"followers": "Followers",
|
||||
"impersonation": "Impersonation",
|
||||
"intimidation_fear": "Intimidation/Fear",
|
||||
"luck": "Luck",
|
||||
"oratory": "Oratory",
|
||||
"persuasion": "Persuasion",
|
||||
"politics": "Politics",
|
||||
"reputation": "Reputation*",
|
||||
"street_smarts": "Street Smarts",
|
||||
"trickery": "Trickery",
|
||||
"addiction": "Addiction*",
|
||||
"cowardice": "Cowardice",
|
||||
"code_of_honor": "Code of Honor*",
|
||||
"flashbacks": "Flashbacks",
|
||||
"greed": "Greed*",
|
||||
"outcast": "Outcast*",
|
||||
"phobia": "Phobia*",
|
||||
"unluck": "Unluck",
|
||||
"unmistakable_feature": "Unmistakable Feature*",
|
||||
"derstat": "Derived Statistics",
|
||||
"health-u": "Health",
|
||||
"move-u": "Move",
|
||||
"init-u": "Init",
|
||||
"spirit-u": "Spirit",
|
||||
"bonus": "Bonuses & Penalties",
|
||||
"arm-u": "ARM",
|
||||
"injury": "Injuries",
|
||||
"impair": "Impairment Level",
|
||||
"atk": "Attack",
|
||||
"defense": "Defense",
|
||||
"damage": "Damage",
|
||||
"ammo-u": "Ammo",
|
||||
"rel-u": "Rel",
|
||||
"rng-u": "Range",
|
||||
"dam-u": "DAM",
|
||||
"aoe-u": "AOE",
|
||||
"wt-u": "Wt",
|
||||
"notes-u": "Notes",
|
||||
"crew-u": "Crew",
|
||||
"agiabbr-u": "AGI",
|
||||
"loc-u": "Location",
|
||||
"dif-u": "DIF",
|
||||
"cast-u": "Casting Time",
|
||||
"dur-u": "Duration",
|
||||
"meffect-u": "Description",
|
||||
"sc-u": " Skill Check",
|
||||
"statc-u": "Stat Check"
|
||||
}
|
||||
Reference in New Issue
Block a user