mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 03:40:32 +00:00
1872 lines
95 KiB
HTML
1872 lines
95 KiB
HTML
|
|
<div class='logo'></div>
|
|
|
|
<div class='everything'>
|
|
<div class='sheet-2colrow' style='margin-top: 0.5in;'>
|
|
<div class='sheet-col'>
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel' style='width:100px;'>NAME</td>
|
|
<td class='statBody readonly'><span name='attr_character_name'></span></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel' style='width:100px;'>LEVEL</td>
|
|
<td class='statBody'>
|
|
<div class='statField'><input type='number' name='attr_level' value='1'></div>
|
|
</td>
|
|
<td class='statLabel' style='width:100px;'>XP</td>
|
|
<td class='statBody'>
|
|
<div class='statField'><input type='number' name='attr_exp' value='0'></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class='sheet-col'></div>
|
|
</div>
|
|
|
|
<div class='tabsContainer'>
|
|
|
|
<div id='mainTab' class='tab'>
|
|
<input type='radio' name='tab' id='sheet-mainRadio' class='tabInput' checked />
|
|
<label class='tabLabel' for='sheet-mainRadio'>MAIN</label>
|
|
<div class='tabPanel'>
|
|
<div class='sheet-2colrow'>
|
|
<div class='sheet-col'>
|
|
|
|
<!-- hit points -->
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel' style='width:30%;'>HIT POINTS</td>
|
|
<td class='statBody' style='width:40%;'>
|
|
<div class='statField inline' style='width:50%'><input type='number' name='attr_hp' value='0'></div>
|
|
/<span class='readonly readonly-field' style='width:40%;'name='attr_hpMax'>
|
|
</td>
|
|
<td class='statLabel' style='width:20%;'>Modifier</td>
|
|
<td class='statBody'>
|
|
<div class='statField'><input type='number' name='attr_hpMaxModifier' value='0'></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='width:70%;'>
|
|
<input id='secondWindCheck' type='checkbox' name='attr_secondWind' />
|
|
<label for='secondWindCheck'>Used Second Wind?</label>
|
|
</td>
|
|
<td class='statLabel' style='width:20%;'>TEMP HP</td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_tempHp' value='0'></div></td>
|
|
</tr>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<!-- defenses -->
|
|
<div class='statBox'>
|
|
<div class='statLabel'>
|
|
DEFENSES
|
|
</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<th style='width:20%;'></th>
|
|
<th>AC</th>
|
|
<th>Fortitude</th>
|
|
<th>Reflex</th>
|
|
<th>Will</th>
|
|
</tr>
|
|
<tr class='readonly' title='10 + level + ability mod + origins + gear + misc'>
|
|
<td>Total</td>
|
|
<td class='statBody'><span class='readonly-field' name='attr_AC'></span></td>
|
|
<td class='statBody'><span class='readonly-field' name='attr_fortitude'></span></td>
|
|
<td class='statBody'><span class='readonly-field' name='attr_reflex'></span></td>
|
|
<td class='statBody'><span class='readonly-field' name='attr_will'></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Origins</td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsAC' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsFortitude' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsReflex' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsWill' value='0'></div></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Gear</td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearAC' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearFortitude' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearReflex' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearWill' value='0'></div></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Misc</td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscAC' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscFortitude' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscReflex' value='0'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscWill' value='0'></div></td>
|
|
</tr>
|
|
</table>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td>Armor type: </td>
|
|
<td><input type='radio' name='attr_armorType' value='none'>None</td>
|
|
<td><input type='radio' name='attr_armorType' value='light'>Light</td>
|
|
<td><input type='radio' name='attr_armorType' value='heavy'>Heavy</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Resistance and Immunity -->
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel' style='width:25%;'>RESISTS</td>
|
|
<td class='statBody' style='width:35%;'><div class='statField'><input type='text' name='attr_resists'></div></td>
|
|
<td class='statLabel' style='width:25%;'>WEAK TO</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_vulns'></div></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='sheet-col'>
|
|
|
|
<!-- Ability Scores -->
|
|
<div class='statBox'>
|
|
<div class='statLabel'>
|
|
ABILITY SCORES (+ MODIFIER)
|
|
</div>
|
|
<table>
|
|
<tr>
|
|
<td style='width:15%;'>STR</td>
|
|
<td class='statBody'>
|
|
<div class='statField inline' style='width:50%;'><input type='number' name='attr_str' value='10'></div>
|
|
<span class='readonly'>(<span name='attr_strMod'></span>)</span>
|
|
</td>
|
|
<td class='statBody'><button type='roll' value='/r 1d20 + @{level} + @{strMod}'></button></td>
|
|
<td style='width:15%;'>CON</td>
|
|
<td class='statBody'>
|
|
<div class='statField inline' style='width:50%;'><input type='number' name='attr_con' value='10'></div>
|
|
<span class='readonly'>(<span name='attr_conMod'></span>)</span>
|
|
</td>
|
|
<td class='statBody'><button type='roll' value='/r 1d20 + @{level} + @{conMod}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>DEX</td>
|
|
<td class='statBody'>
|
|
<div class='statField inline' style='width:50%;'><input type='number' name='attr_dex' value='10'></div>
|
|
<span class='readonly'>(<span name='attr_dexMod'></span>)</span>
|
|
</td>
|
|
<td class='statBody'><button type='roll' value='/r 1d20 + @{level} + @{dexMod}'></button></td>
|
|
<td>INT</td>
|
|
<td class='statBody'>
|
|
<div class='statField inline' style='width:50%;'><input type='number' name='attr_int' value='10'></div>
|
|
<span class='readonly'>(<span name='attr_intMod'></span>)</span>
|
|
</td>
|
|
<td class='statBody'><button type='roll' value='/r 1d20 + @{level} + @{intMod}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>WIS</td>
|
|
<td class='statBody'>
|
|
<div class='statField inline' style='width:50%;'><input type='number' name='attr_wis' value='10'></div>
|
|
<span class='readonly'>(<span name='attr_wisMod'></span>)</span>
|
|
</td>
|
|
<td class='statBody'><button type='roll' value='/r 1d20 + @{level} + @{wisMod}'></button></td>
|
|
<td>CHA</td>
|
|
<td class='statBody'>
|
|
<div class='statField inline' style='width:50%;'><input type='number' name='attr_cha' value='10'></div>
|
|
<span class='readonly'>(<span name='attr_chaMod'></span>)</span>
|
|
</td>
|
|
<td class='statBody'><button type='roll' value='/r 1d20 + @{level} + @{chaMod}'></button></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Initiative -->
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel' style='width:40%;'>INITIATIVE</td>
|
|
<td class='statBody readonly' style='width:20%;'><span class='readonly-field' name='attr_initiativeTotal'></span></td>
|
|
<td class='statLabel' style='width:20%;'>Modifier</td>
|
|
<td class='statBody' style='width:20%;'><div class='statField'><input type='number' name='attr_initiativeModifier' value='0'></div></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Movement -->
|
|
<div class='statBox'>
|
|
<div class='statLabel'>MOVEMENT</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='width:20%;'>SPEED</td>
|
|
<td class='statBody' style='width:15%;'><div class='statField'><input type='number' name='attr_speed' value='30'></div></td>
|
|
<td style='width:20%;'>SPECIAL</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_specialMovements'></div></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Alpha uses -->
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel' style='width:40%;'>ALPHA MUTATIONS</td>
|
|
<td class='statBody readonly' style='width:10%;'><span name='attr_numAlpha'></span></td>
|
|
<td class='statLabel' style='width:40%;'>VOCATION FEATS</td>
|
|
<td class='statBody readonly'><span name='attr_numFeats'></span></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>SKILLS</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='width:50%;'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<th></th>
|
|
<th class='readonly' title='Level + Ability Mod + Origin + Gear + Misc' style='width:15%;'>Total</th>
|
|
<th title='Total from origins' style='width:15%;'>Origins</th>
|
|
<th title='Total bonus from gear' style='width:15%;'>Gear</th>
|
|
<th title='Total other bonuses' style='width:15%;'>Misc</th>
|
|
<th></th>
|
|
</tr>
|
|
<tr>
|
|
<td>Acrobatics (Dex)</td>
|
|
<td class='statBody readonly'><span name='attr_acrobatics'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsAcrobatics'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearAcrobatics'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscAcrobatics'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{acrobatics}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Athletics (Str)</td>
|
|
<td class='statBody readonly'><span name='attr_athletics'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsAthletics'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearAthletics'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscAthletics'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{athletics}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Conspiracy (Int)</td>
|
|
<td class='statBody readonly'><span name='attr_conspiracy'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsConspiracy'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearConspiracy'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscConspiracy'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{conspiracy}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Insight (Wis)</td>
|
|
<td class='statBody readonly'><span name='attr_insight'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsInsight'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearInsight'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscInsight'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{insight}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Interaction (Cha)</td>
|
|
<td class='statBody readonly'><span name='attr_interaction'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsInteraction'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearInteraction'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscInteraction'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{interaction})'></button></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td style='width:50%;'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<th></th>
|
|
<th class='readonly' title='Level + Ability Mod + Origin + Gear + Misc' style='width:15%;'>Total</th>
|
|
<th title='Total from Origins' style='width:15%;'>Origins</th>
|
|
<th title='Total bonus from gear' style='width:15%;'>Gear</th>
|
|
<th title='Total other bonuses' style='width:15%;'>Misc</th>
|
|
</tr>
|
|
<tr>
|
|
<td>Mechanics (Int)</td>
|
|
<td class='statBody readonly'><span name='attr_mechanics'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsMechanics'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearMechanics'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscMechanics'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{mechanics}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Nature (Wis)</td>
|
|
<td class='statBody readonly'><span name='attr_nature'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsNature'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearNature'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscNature'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{nature}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Perception (Wis)</td>
|
|
<td class='statBody readonly'><span name='attr_perception'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsPerception'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearPerception'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscPerception'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{perception}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Science (Int)</td>
|
|
<td class='statBody readonly'><span name='attr_science'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsScience'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearScience'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscScience'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{science}'></button></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Stealth (Dex)</td>
|
|
<td class='statBody readonly'><span name='attr_stealth'></span></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_originsStealth'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_gearStealth'></div></td>
|
|
<td class='statBody'><div class='statField'><input type='number' name='attr_miscStealth'></div></td>
|
|
<td><button type='roll' value='/r 1d20 + @{stealth}'></button></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Character advancement -->
|
|
<div class='statBox'>
|
|
<div class='statLabel'>CHARACTER ADVANCEMENT</div>
|
|
<table class='character-advancement-table'>
|
|
<tr>
|
|
<td>XP</td>
|
|
<td>Level</td>
|
|
<td>Benefit choice</td>
|
|
<td>Alpha Mutations</td>
|
|
<td>Vocation Feats</td>
|
|
</tr>
|
|
<table>
|
|
|
|
<table class='character-advancement-table'>
|
|
<tr class='statBody'>
|
|
<td>0</td>
|
|
<td>1</td>
|
|
<td>Origin Traits, Origin novice powers</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel2' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel2' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>500</td>
|
|
<td>2</td>
|
|
<td>
|
|
<div class='statField'>
|
|
<select name='attr_crit1' style='width:auto;'>
|
|
<option value='1'>Critical Hit Benefit: Primary origin</option>
|
|
<option value='2'>Critical Hit Benefit: Secondary origin</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel3' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel3' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>1000</td>
|
|
<td>3</td>
|
|
<td>
|
|
<div class='statField'>
|
|
<select name='attr_util1' style='width:auto;'>
|
|
<option value='1'>Utility Power: Primary origin</option>
|
|
<option value='2'>Utility Power: Secondary origin</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel4' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel4' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>2000</td>
|
|
<td>4</td>
|
|
<td>-</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel5' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel5' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>3000</td>
|
|
<td>5</td>
|
|
<td>
|
|
<div class='statField'>
|
|
<select name='attr_expert1' style='width:auto;'>
|
|
<option value='1'>Expert Power: Primary origin</option>
|
|
<option value='2'>Expert Power: Secondary origin</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel6' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel6' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>4000</td>
|
|
<td>6</td>
|
|
<td>
|
|
<div class='statField'>
|
|
<select name='attr_crit2' style='width:auto;'>
|
|
<option value='1'>Critical Hit Benefit: Primary origin</option>
|
|
<option value='2'>Critical Hit Benefit: Secondary origin</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>2</td>
|
|
<td>1</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel7' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel7' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>5000</td>
|
|
<td>7</td>
|
|
<td>
|
|
<div class='statField'>
|
|
<select name='attr_util2' style='width:auto;'>
|
|
<option value='1'>Utility Power: Primary origin</option>
|
|
<option value='2'>Utility Power: Secondary origin</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>2</td>
|
|
<td>2</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel8' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel8' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>6500</td>
|
|
<td>8</td>
|
|
<td>-</td>
|
|
<td>3</td>
|
|
<td>2</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel9' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel9' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>8500</td>
|
|
<td>9</td>
|
|
<td>
|
|
<div class='statField'>
|
|
<select name='attr_expert2' style='width:auto;'>
|
|
<option value='1'>Expert Power: Primary origin</option>
|
|
<option value='2'>Expert Power: Secondary origin</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>3</td>
|
|
<td>2</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel10' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showLevel10' value='no'>
|
|
<table class='character-advancement-table flag-fade'>
|
|
<tr class='statBody'>
|
|
<td>10000</td>
|
|
<td>10</td>
|
|
<td>
|
|
<div class='statField'>
|
|
<select name='attr_uberFeature' style='width:auto;'>
|
|
<option value='1'>Uber Feature: Use primary expert power 2x per encounter.</option>
|
|
<option value='2'>Uber Feature: Use secondary expert power 2x per encounter. </option>
|
|
<option value='3'>Uber Feature: Omega Charge success once per encounter.</option>
|
|
<option value='4'>Uber Feature: Keep one readied Alpha Mutation.</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>3</td>
|
|
<td>3</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id='originTab' class='tab'>
|
|
<input type='radio' name='tab' id='sheet-originRadio' class='tabInput' />
|
|
<label class='tabLabel' for='sheet-originRadio'>ORIGINS</label>
|
|
<div class='tabPanel'>
|
|
<div class='sheet-2colrow'>
|
|
|
|
<!-- Origin 1 -->
|
|
<div class='sheet-col'>
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>PRIMARY ORIGIN</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin1'></div></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>MUTANT TYPE</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td>Ability</td>
|
|
<td class='statBody'>
|
|
<div class='statField'>
|
|
<select name='attr_origin1Ability'>
|
|
<option>Strength</option>
|
|
<option>Constitution</option>
|
|
<option>Dexterity</option>
|
|
<option>Intelligence</option>
|
|
<option>Wisdom</option>
|
|
<option>Charisma</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>Alpha</td>
|
|
<td class='statBody'>
|
|
<div class='statField'>
|
|
<select name='attr_origin1Overcharge'>
|
|
<option>All (Human)</option>
|
|
<option>Bio</option>
|
|
<option>Dark</option>
|
|
<option>Psi</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>TRAITS</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin1Traits' rows='3'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin1Crit' value='yes'>
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin1Crit' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<div class='statLabel'>CRITICAL HIT BENEFIT</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_origin1Crit'></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Novice power -->
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>NOVICE POWER</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin1Novice'></div></td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<input id='origin1_novice_used_checkbox' type='checkbox' name='attr_origin1NoviceUsed' />
|
|
<label for='origin1_novice_used_checkbox'>Used?</label>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin1NoviceFreq'>
|
|
<option>At-Will</option>
|
|
<option>Encounter</option>
|
|
<option>Daily</option>
|
|
</select>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin1NoviceAction'>
|
|
<option>Standard Action</option>
|
|
<option>Move Action</option>
|
|
<option>Minor Action</option>
|
|
<option>Free Action</option>
|
|
<option>Immediate Reaction</option>
|
|
<option>Immediate Interrupt</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin1NoviceDesc' rows='4'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Utility power -->
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin1Util' value='yes'>
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin1Util' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>UTILITY POWER</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin1Util'></div></td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<input id='origin1_utility_used_checkbox' type='checkbox' name='attr_origin1UtilUsed' />
|
|
<label for='origin1_utility_used_checkbox'>Used?</label>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin1UtilFreq'>
|
|
<option>At-Will</option>
|
|
<option>Encounter</option>
|
|
<option>Daily</option>
|
|
</select>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin1UtilAction'>
|
|
<option>Standard Action</option>
|
|
<option>Move Action</option>
|
|
<option>Minor Action</option>
|
|
<option>Free Action</option>
|
|
<option>Immediate Reaction</option>
|
|
<option>Immediate Interrupt</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin1UtilDesc' rows='4'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Expert power -->
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin1Expert' value='yes'>
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin1Expert' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>EXPERT POWER</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin1Expert'></div></td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<input id='origin1_expert_used_checkbox' type='checkbox' name='attr_origin1ExpertUsed' />
|
|
<label for='origin1_expert_used_checkbox'>Used?</label>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin1ExpertFreq'>
|
|
<option>At-Will</option>
|
|
<option>Encounter</option>
|
|
<option>Daily</option>
|
|
</select>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin1ExpertAction'>
|
|
<option>Standard Action</option>
|
|
<option>Move Action</option>
|
|
<option>Minor Action</option>
|
|
<option>Free Action</option>
|
|
<option>Immediate Reaction</option>
|
|
<option>Immediate Interrupt</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin1ExpertDesc' rows='4'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- Origin 2 -->
|
|
<div class='sheet-col'>
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>SECONDARY ORIGIN</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin2'></div></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>MUTANT TYPE</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td>Ability</td>
|
|
<td class='statBody'>
|
|
<div class='statField'>
|
|
<select name='attr_origin2Ability'>
|
|
<option>Strength</option>
|
|
<option>Constitution</option>
|
|
<option>Dexterity</option>
|
|
<option>Intelligence</option>
|
|
<option>Wisdom</option>
|
|
<option>Charisma</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
<td>Alpha</td>
|
|
<td class='statBody'>
|
|
<div class='statField'>
|
|
<select name='attr_origin2Overcharge'>
|
|
<option>All (Human)</option>
|
|
<option>Bio</option>
|
|
<option>Dark</option>
|
|
<option>Psi</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>TRAITS</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin2Traits' rows='3'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin2Crit' value='yes'>
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin2Crit' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<div class='statLabel'>CRITICAL HIT BENEFIT</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_origin2Crit'></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Novice power -->
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>NOVICE POWER</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin2Novice'></div></td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<input id='origin2_novice_used_checkbox' type='checkbox' name='attr_origin2NoviceUsed' />
|
|
<label for='origin2_novice_used_checkbox'>Used?</label>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin2NoviceFreq'>
|
|
<option>At-Will</option>
|
|
<option>Encounter</option>
|
|
<option>Daily</option>
|
|
</select>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin2NoviceAction'>
|
|
<option>Standard Action</option>
|
|
<option>Move Action</option>
|
|
<option>Minor Action</option>
|
|
<option>Free Action</option>
|
|
<option>Immediate Reaction</option>
|
|
<option>Immediate Interrupt</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin2NoviceDesc' rows='4'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Utility power -->
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin2Util' value='yes'>
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin2Util' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>UTILITY POWER</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin2Util'></div></td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<input id='origin2_utility_used_checkbox' type='checkbox' name='attr_origin2UtilUsed' />
|
|
<label for='origin2_utility_used_checkbox'>Used?</label>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin2UtilFreq'>
|
|
<option>At-Will</option>
|
|
<option>Encounter</option>
|
|
<option>Daily</option>
|
|
</select>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin2UtilAction'>
|
|
<option>Standard Action</option>
|
|
<option>Move Action</option>
|
|
<option>Minor Action</option>
|
|
<option>Free Action</option>
|
|
<option>Immediate Reaction</option>
|
|
<option>Immediate Interrupt</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin2UtilDesc' rows='4'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Expert power -->
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin2Expert' value='yes'>
|
|
<input class='hidden-flag' type='radio' name='attr_showOrigin2Expert' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td class='statLabel'>EXPERT POWER</td>
|
|
<td class='statBody'><div class='statField'><input type='text' name='attr_origin2Expert'></div></td>
|
|
</tr>
|
|
</table>
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<input id='origin2_expert_used_checkbox' type='checkbox' name='attr_origin2ExpertUsed' />
|
|
<label for='origin2_expert_used_checkbox'>Used?</label>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin2ExpertFreq'>
|
|
<option>At-Will</option>
|
|
<option>Encounter</option>
|
|
<option>Daily</option>
|
|
</select>
|
|
</td>
|
|
<td class='statField'>
|
|
<select name='attr_origin2ExpertAction'>
|
|
<option>Standard Action</option>
|
|
<option>Move Action</option>
|
|
<option>Minor Action</option>
|
|
<option>Free Action</option>
|
|
<option>Immediate Reaction</option>
|
|
<option>Immediate Interrupt</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_origin2ExpertDesc' rows='4'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id='featsTab' class='tab'>
|
|
<input type='radio' name='tab' id='sheet-featsRadio' class='tabInput' />
|
|
<label class='tabLabel' for='sheet-featsRadio'>BACKGROUND</label>
|
|
<div class='tabPanel'>
|
|
|
|
<div class='sheet-2colrow'>
|
|
|
|
<!-- Vocations -->
|
|
<div class='sheet-col'>
|
|
<input type='radio' class='hidden-flag' name='attr_showFeat1' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showFeat1' value='no'>
|
|
<div class='statBox flag-fade'>
|
|
<table class='border-bottom-thick' style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td style='width:40%;'>VOCATION 1</td>
|
|
<td class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_vocation1'></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>Feat:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_vocation1Feat'></div>
|
|
</div>
|
|
|
|
<div>Benefit:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_vocation1FeatDesc' rows='5'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showFeat2' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showFeat2' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<table class='border-bottom-thick' style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td style='width:40%;'>VOCATION 2</td>
|
|
<td class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_vocation2'></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>Feat:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_vocation2Feat'></div>
|
|
</div>
|
|
|
|
<div>Benefit:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_vocation2FeatDesc' rows='5'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showFeat3' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showFeat3' value='no'>
|
|
<div class='statBox flag-hide'>
|
|
<table class='border-bottom-thick' style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td style='width:40%;'>VOCATION 3</td>
|
|
<td class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_vocation3'></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>Feat:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_vocation3Feat'></div>
|
|
</div>
|
|
|
|
<div>Benefit:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_vocation3FeatDesc' rows='5'></textarea></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Cryptic alliance -->
|
|
<div class='sheet-col'>
|
|
<div class='statBox'>
|
|
<table style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td style='width:40%;'>CRYPTIC ALLIANCE</td>
|
|
<td class='statBody'>
|
|
<div class='statField'><input type='text' name='attr_crypticAlliance'></div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>
|
|
<input type='checkbox' id='crypticAlliance_revealed_checkbox' name='attr_crypticAllianceRevealed'>
|
|
<label for='crypticAlliance_revealed_checkbox'>Revealed? </label>
|
|
</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_crypticAllianceEffect' rows='5'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>BIO/BACKGROUND INFO</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_character_bio' rows='20'></textarea></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div id='lootTab' class='tab'>
|
|
<input type='radio' name='tab' id='sheet-lootRadio' class='tabInput' />
|
|
<label class='tabLabel' for='sheet-lootRadio'>GEAR</label>
|
|
<div class='tabPanel'>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='vertical-align: top; width:70%;'>
|
|
|
|
<!-- Omega Tech -->
|
|
<div class='statBox cardContainer'>
|
|
<div class='statLabel'>OMEGA TECH</div>
|
|
<div style='padding:1em 0.5em;'>
|
|
<fieldset class='repeating_omegaTech'>
|
|
<div class='statBox card'>
|
|
<table style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td>
|
|
<div class='statField'><input type='text' style='background:none;' name='attr_omegaTechName' placeholder='Omega Tech name'></div>
|
|
</td>
|
|
<td style='width: 70px;'>
|
|
<div class='statField'>
|
|
<select name='attr_omegaTechOrigin'>
|
|
<option>Area 52</option>
|
|
<option>Ishtar</option>
|
|
<option>XI</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statLabel'>
|
|
|
|
</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td>Type:</td>
|
|
<td class='statBody'>
|
|
<div class='statField'>
|
|
<select name='attr_omegaTechType'>
|
|
<option>Armor: Heavy</option>
|
|
<option>Armor: Light</option>
|
|
<option>Arms</option>
|
|
<option>Consumable</option>
|
|
<option>Feet</option>
|
|
<option>Hands</option>
|
|
<option>Head</option>
|
|
<option>Held</option>
|
|
<option>Neck</option>
|
|
<option>Ring</option>
|
|
<option>Vehicle</option>
|
|
<option>Waist</option>
|
|
<option>Weapon: 1-hand Melee</option>
|
|
<option>Weapon: 2-hand Melee</option>
|
|
<option>Weapon: 1-hand Range</option>
|
|
<option>Weapon: 2-hand Range</option>
|
|
<option>Other</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>Property:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_omegaTechProperty' rows='3'></textarea>
|
|
</div>
|
|
</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='width:80px;'>Power:</td>
|
|
<td>
|
|
<input type='checkbox' id='omegaTechPowerUsedCheckbox' name='attr_omegaTechPowerIsUsed'>
|
|
<label for='omegaTechPowerUsedCheckbox'>Used?</label>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_omegaTechPower' rows='5'></textarea>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<label for='omegaTechSalvagedCheckbox' style='width: 80px;'>Salvage:</label>
|
|
<input type='checkbox' id='omegaTechSalvagedCheckbox' name='attr_omegaTechIsSalvaged'>
|
|
</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_omegaTechSalvage' rows='3'></textarea></div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</td>
|
|
<td style='vertical-align:top;'>
|
|
<div class='statBox'>
|
|
<div class='statLabel'>Equipment</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_equipment' rows='16'></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>Vehicles</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_vehicles' rows='8'></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div id='lootTab' class='tab'>
|
|
<input type='radio' name='tab' id='sheet-alphaRadio' class='tabInput' />
|
|
<label class='tabLabel' for='sheet-alphaRadio'>ALPHA MUTATIONS</label>
|
|
<div class='tabPanel cardContainer'>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>ACTIVE ALPHA MUTATIONS</div>
|
|
<div style='padding:1em 0.5em;'>
|
|
<div class='statBox card'>
|
|
<table style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td>
|
|
<div class='statField'><input type='text' style='background:none;' name='attr_activeAlpha1' placeholder='Alpha Mutation name'></div>
|
|
</td>
|
|
<td style='width: 70px;'>
|
|
<div class='statField'>
|
|
<select name='attr_activeAlpha1Type'>
|
|
<option>Bio</option>
|
|
<option>Dark</option>
|
|
<option>Psi</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>Benefit:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_activeAlpha1Benefit' rows='3'></textarea>
|
|
</div>
|
|
</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='width:80px;'>Power:</td>
|
|
<td>
|
|
<input type='checkbox' name='attr_activeAlpha1IsUsed'>
|
|
<label>Used?</label>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_activeAlpha1Power' rows='5'></textarea>
|
|
</div>
|
|
</div>
|
|
<div>Overcharge:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_activeAlpha1Overcharge' rows='3'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showAlpha2' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showAlpha2' value='no'>
|
|
<div class='statBox card flag-hide'>
|
|
<table style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td>
|
|
<div class='statField'><input type='text' style='background:none;' name='attr_activeAlpha2' placeholder='Alpha Mutation name'></div>
|
|
</td>
|
|
<td style='width: 70px;'>
|
|
<div class='statField'>
|
|
<select name='attr_activeAlpha2Type'>
|
|
<option>Bio</option>
|
|
<option>Dark</option>
|
|
<option>Psi</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>Benefit:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_activeAlpha2Benefit' rows='3'></textarea>
|
|
</div>
|
|
</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='width:80px;'>Power:</td>
|
|
<td>
|
|
<input type='checkbox' name='attr_activeAlpha2IsUsed'>
|
|
<label>Used?</label>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_activeAlpha2Power' rows='5'></textarea>
|
|
</div>
|
|
</div>
|
|
<div>Overcharge:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_activeAlpha2Overcharge' rows='3'></textarea></div>
|
|
</div>
|
|
</div>
|
|
|
|
<input type='radio' class='hidden-flag' name='attr_showAlpha3' value='yes'>
|
|
<input type='radio' class='hidden-flag' name='attr_showAlpha3' value='no'>
|
|
<div class='statBox card flag-hide'>
|
|
<table style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td>
|
|
<div class='statField'><input type='text' style='background:none;' name='attr_activeAlpha3' placeholder='Alpha Mutation name'></div>
|
|
</td>
|
|
<td style='width: 70px;'>
|
|
<div class='statField'>
|
|
<select name='attr_activeAlpha3Type'>
|
|
<option>Bio</option>
|
|
<option>Dark</option>
|
|
<option>Psi</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div>Benefit:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_activeAlpha3Benefit' rows='3'></textarea>
|
|
</div>
|
|
</div>
|
|
<table style='width:100%;'>
|
|
<tr>
|
|
<td style='width:80px;'>Power:</td>
|
|
<td>
|
|
<input type='checkbox' name='attr_activeAlpha3IsUsed'>
|
|
<label>Used?</label>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_activeAlpha3Power' rows='5'></textarea>
|
|
</div>
|
|
</div>
|
|
<div>Overcharge:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_activeAlpha3Overcharge' rows='3'></textarea></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class='statBox'>
|
|
<div class='statLabel'>ALPHA MUTATIONS DECK</div>
|
|
<!-- Alpha mutation deck -->
|
|
<div style='padding:1em 0.5em;'>
|
|
<fieldset class='repeating_alphaMutationsDeck'>
|
|
<div class='statBox card'>
|
|
<table style='width:100%;'>
|
|
<tr class='statLabel'>
|
|
<td>
|
|
<div class='statField'><input type='text' style='background:none;' name='attr_alphaMutationName' placeholder='Alpha Mutation name'></div>
|
|
</td>
|
|
<td style='width: 70px;'>
|
|
<div class='statField'>
|
|
<select name='attr_alphaMutationType'>
|
|
<option>Bio</option>
|
|
<option>Dark</option>
|
|
<option>Psi</option>
|
|
</select>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<div>Benefit:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_alphaMutationBenefit' rows='3'></textarea>
|
|
</div>
|
|
</div>
|
|
<div>Power:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_alphaMutationPower' rows='5'></textarea>
|
|
</div>
|
|
</div>
|
|
<div>Overcharge:</div>
|
|
<div class='statBody'>
|
|
<div class='statField'><textarea name='attr_alphaMutationOvercharge' rows='3'></textarea></div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div id='miscTab' class='tab'>
|
|
<input type='radio' name='tab' id='sheet-miscRadio' class='tabInput' />
|
|
<label class='tabLabel' for='sheet-miscRadio'>MISC</label>
|
|
<div class='tabPanel'>
|
|
<div class='statBox'>
|
|
<div class='statLabel'>NOTES</div>
|
|
<div class='statBody'>
|
|
<div class='statField'>
|
|
<textarea name='attr_notes' rows='20'></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<script type="text/worker">
|
|
/**
|
|
* An asynchronous semaphore.
|
|
*/
|
|
var Asem = function(initCount, cb) {
|
|
this.count = initCount;
|
|
this.cb = cb;
|
|
this.hasFired = false;
|
|
};
|
|
_.extend(Asem.prototype, {
|
|
signal: function() {
|
|
this.count--;
|
|
if(this.count <= 0 && !this.hasFired) {
|
|
this.hasFired = true;
|
|
this.cb();
|
|
}
|
|
},
|
|
|
|
wait: function() {
|
|
this.count++;
|
|
}
|
|
});
|
|
|
|
|
|
/**
|
|
* Gets the specified attributes and parses them as an integer or 0.
|
|
*/
|
|
function parseAttrs(attrs, cb) {
|
|
getAttrs(attrs, function(values) {
|
|
_.each(attrs, function(attr) {
|
|
if(_.isUndefined(values[attr]))
|
|
values[attr] = 0;
|
|
else if(!isNaN(values[attr]))
|
|
values[attr] = parseInt(values[attr]);
|
|
});
|
|
cb(values);
|
|
});
|
|
}
|
|
|
|
// Ability score updates
|
|
function updateStrMod() {
|
|
parseAttrs(['str'], function(values) {
|
|
var strMod = Math.floor((values.str - 10)/2);
|
|
|
|
setAttrs({
|
|
strMod: strMod
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateConMod() {
|
|
parseAttrs(['con'], function(values) {
|
|
var conMod = Math.floor((values.con - 10)/2);
|
|
|
|
setAttrs({
|
|
conMod: conMod
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateDexMod() {
|
|
parseAttrs(['dex'], function(values) {
|
|
var dexMod = Math.floor((values.dex - 10)/2);
|
|
|
|
setAttrs({
|
|
dexMod: dexMod
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateIntMod() {
|
|
parseAttrs(['int'], function(values) {
|
|
var intMod = Math.floor((values.int - 10)/2);
|
|
|
|
setAttrs({
|
|
intMod: intMod
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateWisMod() {
|
|
parseAttrs(['wis'], function(values) {
|
|
var wisMod = Math.floor((values.wis - 10)/2);
|
|
|
|
setAttrs({
|
|
wisMod: wisMod
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateChaMod() {
|
|
parseAttrs(['cha'], function(values) {
|
|
var chaMod = Math.floor((values.cha - 10)/2);
|
|
|
|
setAttrs({
|
|
chaMod: chaMod
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateAllAbilityMods() {
|
|
updateStrMod();
|
|
updateConMod();
|
|
updateDexMod();
|
|
updateIntMod();
|
|
updateWisMod();
|
|
updateChaMod();
|
|
}
|
|
|
|
on('change:str', function() {
|
|
updateStrMod();
|
|
});
|
|
on('change:con', function() {
|
|
updateConMod();
|
|
});
|
|
on('change:dex', function() {
|
|
updateDexMod();
|
|
});
|
|
on('change:int', function() {
|
|
updateIntMod();
|
|
});
|
|
on('change:wis', function() {
|
|
updateWisMod();
|
|
});
|
|
on('change:cha', function() {
|
|
updateChaMod();
|
|
});
|
|
|
|
// Hit points
|
|
|
|
function updateHpMax() {
|
|
parseAttrs(['level', 'con', 'hpMaxModifier'], function(values) {
|
|
var hpMax = 12 + values.con + values.level*5 + values.hpMaxModifier;
|
|
|
|
setAttrs({
|
|
hpMax: hpMax
|
|
});
|
|
});
|
|
}
|
|
|
|
on('change:level change:con change:hpMaxModifier', function() {
|
|
updateHpMax();
|
|
});
|
|
|
|
// Defenses
|
|
|
|
function updateAC() {
|
|
parseAttrs(['level', 'armorType', 'dexMod', 'intMod', 'originsAC', 'gearAC', 'miscAC'], function(values) {
|
|
var totalAC = 10 + values.level + values.originsAC + values.gearAC + values.miscAC;
|
|
if(values.armorType !== 'heavy')
|
|
totalAC += Math.max(values.dexMod, values.intMod);
|
|
setAttrs({
|
|
AC: totalAC
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateFortitude() {
|
|
parseAttrs(['level', 'strMod', 'conMod', 'originsFortitude', 'gearFortitude', 'miscFortitude'], function(values) {
|
|
var totalFort = 10 + values.level + Math.max(values.strMod, values.conMod) +
|
|
values.originsFortitude + values.gearFortitude + values.miscFortitude;
|
|
setAttrs({
|
|
fortitude: totalFort
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateReflex() {
|
|
parseAttrs(['level', 'dexMod', 'intMod', 'originsReflex', 'gearReflex', 'miscReflex'], function(values) {
|
|
var totalReflex = 10 + values.level + Math.max(values.dexMod, values.intMod) +
|
|
values.originsReflex + values.gearReflex + values.miscReflex;
|
|
setAttrs({
|
|
reflex: totalReflex
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateWill() {
|
|
parseAttrs(['level', 'wisMod', 'chaMod', 'originsWill', 'gearWill', 'miscWill'], function(values) {
|
|
var totalWill = 10 + values.level + Math.max(values.wisMod, values.chaMod) +
|
|
values.originsWill + values.gearWill + values.miscWill;
|
|
setAttrs({
|
|
will: totalWill
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateAllDefenses() {
|
|
updateAC();
|
|
updateFortitude();
|
|
updateReflex();
|
|
updateWill();
|
|
}
|
|
|
|
on('change:level change:armorType change:dexMod change:intMod change:originsAC change:gearAC change:miscAC', function() {
|
|
updateAC();
|
|
});
|
|
on('change:level change:strMod change:conMod change:originsFortitude change:gearFortitude change:miscFortitude', function() {
|
|
updateFortitude();
|
|
});
|
|
on('change:level change:dexMod change:intMod change:originsReflex change:gearReflex change:miscReflex', function() {
|
|
updateReflex();
|
|
});
|
|
on('change:level change:wisMod change:chaMod change:originsWill change:gearWill change:miscWill', function() {
|
|
updateWill();
|
|
});
|
|
|
|
// Initiative
|
|
|
|
function updateInitiative() {
|
|
parseAttrs(['level', 'dexMod', 'initiativeModifier'], function(values) {
|
|
var initiativeTotal = values.level + values.dexMod + values.initiativeModifier;
|
|
|
|
setAttrs({
|
|
initiativeTotal: initiativeTotal
|
|
});
|
|
});
|
|
}
|
|
|
|
on('change:level change:dexMod change:initiativeModifier', function() {
|
|
updateInitiative();
|
|
});
|
|
|
|
// character advancement ,# Alpha mutations, and vocations
|
|
|
|
function updateCharacterAdvancement() {
|
|
parseAttrs(['level'], function(values) {
|
|
for(var i=2; i<=10; i++) {
|
|
var attrName = 'showLevel' + i;
|
|
var attrs = {};
|
|
attrs[attrName] = 'no';
|
|
if(values.level >= i)
|
|
attrs[attrName] = 'yes';
|
|
setAttrs(attrs);
|
|
}
|
|
});
|
|
}
|
|
|
|
function updateNumAlphaMutations() {
|
|
parseAttrs(['level'], function(values) {
|
|
var numAlpha = 1;
|
|
var showAlpha2 = 'no';
|
|
var showAlpha3 = 'no';
|
|
|
|
if(values.level >= 4) {
|
|
numAlpha = 2;
|
|
showAlpha2 = 'yes';
|
|
}
|
|
if(values.level >= 8) {
|
|
numAlpha = 3;
|
|
showAlpha3 = 'yes'
|
|
}
|
|
|
|
setAttrs({
|
|
numAlpha: numAlpha,
|
|
showAlpha2: showAlpha2,
|
|
showAlpha3: showAlpha3
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateVocations() {
|
|
parseAttrs(['level'], function(values) {
|
|
var numFeats = 0;
|
|
var showFeat1 = 'no';
|
|
var showFeat2 = 'no';
|
|
var showFeat3 = 'no';
|
|
|
|
if(values.level >= 4) {
|
|
numFeats = 1;
|
|
showFeat1 = 'yes';
|
|
}
|
|
if(values.level >= 7) {
|
|
numFeats = 2;
|
|
showFeat2 = 'yes';
|
|
}
|
|
if(values.level >= 10) {
|
|
numFeats = 3;
|
|
showFeat3 = 'yes';
|
|
}
|
|
|
|
setAttrs({
|
|
numFeats: numFeats,
|
|
showFeat1: showFeat1,
|
|
showFeat2: showFeat2,
|
|
showFeat3: showFeat3
|
|
});
|
|
});
|
|
}
|
|
|
|
on('change:level', function() {
|
|
updateCharacterAdvancement();
|
|
updateNumAlphaMutations();
|
|
updateVocations();
|
|
});
|
|
|
|
on('change:crit1', function() {
|
|
parseAttrs(['crit1'], function(values) {
|
|
var crit2 = 3 - values.crit1;
|
|
setAttrs({
|
|
crit2: crit2
|
|
});
|
|
});
|
|
});
|
|
on('change:crit2', function() {
|
|
parseAttrs(['crit2'], function(values) {
|
|
var crit1 = 3 - values.crit2;
|
|
setAttrs({
|
|
crit1: crit1
|
|
});
|
|
});
|
|
});
|
|
on('change:util1', function() {
|
|
parseAttrs(['util1'], function(values) {
|
|
var util2 = 3 - values.util1;
|
|
setAttrs({
|
|
util2: util2
|
|
});
|
|
});
|
|
});
|
|
on('change:util2', function() {
|
|
parseAttrs(['util2'], function(values) {
|
|
var util1 = 3 - values.util2;
|
|
setAttrs({
|
|
util1: util1
|
|
});
|
|
});
|
|
});
|
|
on('change:expert1', function() {
|
|
parseAttrs(['expert1'], function(values) {
|
|
var expert2 = 3 - values.expert1;
|
|
setAttrs({
|
|
expert2: expert2
|
|
});
|
|
});
|
|
});
|
|
on('change:expert2', function() {
|
|
parseAttrs(['expert2'], function(values) {
|
|
var expert1 = 3 - values.expert2;
|
|
setAttrs({
|
|
expert1: expert1
|
|
});
|
|
});
|
|
});
|
|
|
|
// Skills
|
|
|
|
function updateAcrobatics() {
|
|
parseAttrs(['level', 'dexMod', 'originsAcrobatics', 'gearAcrobatics', 'miscAcrobatics'], function(values) {
|
|
var acrobatics = values.level + values.dexMod + values.originsAcrobatics + values.gearAcrobatics + values.miscAcrobatics;
|
|
setAttrs({
|
|
acrobatics: acrobatics
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateAthletics() {
|
|
parseAttrs(['level', 'strMod', 'originsAthletics', 'gearAthletics', 'miscAthletics'], function(values) {
|
|
var athletics = values.level + values.strMod + values.originsAthletics + values.gearAthletics + values.miscAthletics;
|
|
setAttrs({
|
|
athletics: athletics
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateConspiracy() {
|
|
parseAttrs(['level', 'intMod', 'originsConspiracy', 'gearConspiracy', 'miscConspiracy'], function(values) {
|
|
var conspiracy = values.level + values.intMod + values.originsConspiracy + values.gearConspiracy + values.miscConspiracy;
|
|
setAttrs({
|
|
conspiracy: conspiracy
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateInsight() {
|
|
parseAttrs(['level', 'wisMod', 'originsInsight', 'gearInsight', 'miscInsight'], function(values) {
|
|
var insight = values.level + values.wisMod + values.originsInsight + values.gearInsight + values.miscInsight;
|
|
setAttrs({
|
|
insight: insight
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateInteraction() {
|
|
parseAttrs(['level', 'chaMod', 'originsInteraction', 'gearInteraction', 'miscInteraction'], function(values) {
|
|
var interaction = values.level + values.chaMod + values.originsInteraction + values.gearInteraction + values.miscInteraction;
|
|
setAttrs({
|
|
interaction: interaction
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateMechanics() {
|
|
parseAttrs(['level', 'intMod', 'originsMechanics', 'gearMechanics', 'miscMechanics'], function(values) {
|
|
var mechanics = values.level + values.intMod + values.originsMechanics + values.gearMechanics + values.miscMechanics;
|
|
setAttrs({
|
|
mechanics: mechanics
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateNature() {
|
|
parseAttrs(['level', 'wisMod', 'originsNature', 'gearNature', 'miscNature'], function(values) {
|
|
var nature = values.level + values.wisMod + values.originsNature + values.gearNature + values.miscNature;
|
|
setAttrs({
|
|
nature: nature
|
|
});
|
|
});
|
|
}
|
|
|
|
function updatePerception() {
|
|
parseAttrs(['level', 'wisMod', 'originsPerception', 'gearPerception', 'miscPerception'], function(values) {
|
|
var perception = values.level + values.wisMod + values.originsPerception + values.gearPerception + values.miscPerception;
|
|
setAttrs({
|
|
perception: perception
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateScience() {
|
|
parseAttrs(['level', 'intMod', 'originsScience', 'gearScience', 'miscScience'], function(values) {
|
|
var science = values.level + values.intMod + values.originsScience + values.gearScience + values.miscScience;
|
|
setAttrs({
|
|
science: science
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateStealth() {
|
|
parseAttrs(['level', 'dexMod', 'originsStealth', 'gearStealth', 'miscStealth'], function(values) {
|
|
var stealth = values.level + values.dexMod + values.originsStealth + values.gearStealth + values.miscStealth;
|
|
setAttrs({
|
|
stealth: stealth
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateAllSkills() {
|
|
updateAcrobatics();
|
|
updateAthletics();
|
|
updateConspiracy();
|
|
updateInsight();
|
|
updateInteraction();
|
|
updateMechanics();
|
|
updateNature();
|
|
updatePerception();
|
|
updateScience();
|
|
updateStealth();
|
|
}
|
|
|
|
on('change:level change:dexMod change:originsAcrobatics change:gearAcrobatics change:miscAcrobatics', function() {
|
|
updateAcrobatics();
|
|
});
|
|
on('change:level change:strMod change:originsAthletics change:gearAthletics change:miscAthletics', function() {
|
|
updateAthletics();
|
|
});
|
|
on('change:level change:intMod change:originsConspiracy change:gearConspiracy change:miscConspiracy', function() {
|
|
updateConspiracy();
|
|
});
|
|
on('change:level change:wisMod change:originsInsight change:gearInsight change:miscInsight', function() {
|
|
updateInsight();
|
|
});
|
|
on('change:level change:chaMod change:originsInteraction change:gearInteraction change:miscInteraction', function() {
|
|
updateInteraction();
|
|
});
|
|
on('change:level change:intMod change:originsMechanics change:gearMechanics change:miscMechanics', function() {
|
|
updateMechanics();
|
|
});
|
|
on('change:level change:wisMod change:originsNature change:gearNature change:miscNature', function() {
|
|
updateNature();
|
|
});
|
|
on('change:level change:wisMod change:originsPerception change:gearPerception change:miscPerception', function() {
|
|
updatePerception();
|
|
});
|
|
on('change:level change:intMod change:originsScience change:gearScience change:miscScience', function() {
|
|
updateScience();
|
|
});
|
|
on('change:level change:dexMod change:originsStealth change:gearStealth change:miscStealth', function() {
|
|
updateStealth();
|
|
});
|
|
|
|
// Origins
|
|
|
|
function updateOrigin1() {
|
|
parseAttrs(['level', 'crit1', 'util1', 'expert1'], function(values) {
|
|
var showCrit = 'no';
|
|
var showUtil = 'no';
|
|
var showExpert = 'no';
|
|
|
|
if((values.level >= 2 && values.crit1 === 1) || values.level >= 6)
|
|
showCrit = 'yes';
|
|
if((values.level >= 3 && values.util1 === 1) || values.level >= 7)
|
|
showUtil = 'yes';
|
|
if((values.level >= 5 && values.expert1 == 1) || values.level >= 9)
|
|
showExpert = 'yes';
|
|
|
|
setAttrs({
|
|
showOrigin1Crit: showCrit,
|
|
showOrigin1Util: showUtil,
|
|
showOrigin1Expert: showExpert
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateOrigin2() {
|
|
parseAttrs(['level', 'crit1', 'util1', 'expert1'], function(values) {
|
|
var showCrit = 'no';
|
|
var showUtil = 'no';
|
|
var showExpert = 'no';
|
|
|
|
if((values.level >= 2 && values.crit1 === 2) || values.level >= 6)
|
|
showCrit = 'yes';
|
|
if((values.level >= 3 && values.util1 === 2) || values.level >= 7)
|
|
showUtil = 'yes';
|
|
if((values.level >= 5 && values.expert1 == 2) || values.level >= 9)
|
|
showExpert = 'yes';
|
|
|
|
setAttrs({
|
|
showOrigin2Crit: showCrit,
|
|
showOrigin2Util: showUtil,
|
|
showOrigin2Expert: showExpert
|
|
});
|
|
});
|
|
}
|
|
|
|
function updateAllOrigins() {
|
|
updateOrigin1();
|
|
updateOrigin2();
|
|
}
|
|
|
|
on('change:level change:crit1 change:crit2 change:util1 change:util2 change:expert1 change:expert2', function() {
|
|
updateAllOrigins();
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|