Files
roll20-character-sheets/HeroSystem6e/HeroSystem6e.html

6181 lines
217 KiB
HTML

<!-- configuration toggles -->
<input type="checkbox" class="configuration edit-mode" name="attr_edit_mode" value="1"/>
<input type="checkbox" class="configuration play-mode" name="attr_play_mode" value="1" checked="checked"/>
<input type="checkbox" class="configuration fixed-page-width" name="attr_fixed_page_width" value="1"/>
<input type="checkbox" class="configuration collapsing-sections" name="attr_collapsing_sections" value="1"/>
<input type="checkbox" class="configuration combat-preview" name="attr_combat_preview" value="1"/>
<input type="checkbox" class="configuration alternate-header" name="attr_alternate_header" value="1"/>
<input type="checkbox" class="configuration zoom1" name="attr_zoom1" value="1"/>
<input type="checkbox" class="configuration zoom2" name="attr_zoom2" value="1"/>
<input type="checkbox" class="configuration alternate-header" name="attr_alternate_header" value="1"/>
<input type="checkbox" class="configuration remaining-charges" name="attr_remaining_charges" value="1"/>
<div class="tabbed-content">
<!-- ----------------------- -->
<!-- ------- HEADER -------- -->
<!-- ----------------------- -->
<div class="header">
<div class="banner alternate1">
<div class="identity">
<div class="nameline justify">
<div>Character Name:</div>
<span>
<input type="text" class="edit-show" name="attr_character_name" value=""/>
<span class="field edit-hide" name="attr_character_name" disabled="true">&nbsp;</span>
</span>
</div>
<div class="nameline justify">
<div>Alternate Identities:</div>
<span>
<input type="text" class="edit-show" name="attr_alternate_ids" value=""/>
<span class="field edit-hide" name="attr_alternate_ids" disabled="true">&nbsp;</span>
</span>
</div>
<div class="nameline justify">
<div>Player Name:</div>
<span>
<input type="text" class="edit-show" name="attr_player_name"/>
<span class="field edit-hide" name="attr_player_name" disabled="true">&nbsp;</span>
</span>
</div>
</div>
</div>
<div class="banner alternate2">
<div>
<div class="stat-wrap">
<div>
<div class="stat">
<div>STUN</div>
<div>
<span class="field edit-show" name="attr_STUN_max" disabled="true">20</span>
<input type="text" class="edit-hide" name="attr_STUN" value="20" />
</div>
</div>
<div class="stat">
<div>BODY</div>
<div>
<span class="field edit-show" name="attr_BODY_max" disabled="true">20</span>
<input type="text" class="edit-hide" name="attr_BODY" value="20" />
</div>
</div>
<div class="stat">
<div>END</div>
<div>
<span class="field edit-show" name="attr_END_max" disabled="true">20</span>
<input type="text" class="edit-hide" name="attr_END" value="20" />
</div>
</div>
<div class="stat-buttons">
<div>
<input type="checkbox" class="flash tooltip" name="attr_pay_end_button" value="1" />
<span class="stat-button flash">Pay END</span>
<span class="tooltiptext">Expend endurance for all active powers</span>
</div>
<div>
<input type="checkbox" class="flash tooltip" name="attr_recover_button" value="1" />
<span class="stat-button flash">Recover</span>
<span class="tooltiptext">Increase END and STUN by the character's REC value</span>
</div>
</div>
</div>
<div class="phases">
<div>
<div class="in1">
<div>Phases</div>
</div>
<div class="line">
<input type="checkbox" class="fast" name="attr_fast" value="1"/>
<input type="checkbox" class="in2" name="attr_segment1" value="1" />
<span class="in2">1</span>
<input type="checkbox" class="in2" name="attr_segment2" value="1" />
<span class="in2">2</span>
<input type="checkbox" class="in2" name="attr_segment3" value="1" />
<span class="in2">3</span>
<input type="checkbox" class="in2" name="attr_segment4" value="1" />
<span class="in2">4</span>
<input type="checkbox" class="in2" name="attr_segment5" value="1" />
<span class="in2">5</span>
<input type="checkbox" class="in2" name="attr_segment6" value="1" />
<span class="in2">6</span>
<input type="checkbox" class="in2" name="attr_segment7" value="1" />
<span class="in2">7</span>
<input type="checkbox" class="in2" name="attr_segment8" value="1" />
<span class="in2">8</span>
<input type="checkbox" class="in2" name="attr_segment9" value="1" />
<span class="in2">9</span>
<input type="checkbox" class="in2" name="attr_segment10" value="1" />
<span class="in2">10</span>
<input type="checkbox" class="in2" name="attr_segment11" value="1" />
<span class="in2">11</span>
<input type="checkbox" class="in2" name="attr_segment12" value="1" />
<span class="in2">12</span>
</div>
</div>
</div>
</div>
<div class="stat-cvs">
<div class="line">
<div class="in3">OCV</div>
<div class="in4 button">
<span name="attr_OCV"></span>
<button type="roll" class="edit-hide tooltip" name="roll_Attack_Roll" value="@{ocv_formula}"></button>
<span class="tooltiptext">Attack&nbsp;Roll</span>
</div>
<input type="hidden" name="attr_ocv_formula" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Attack Roll}} {{attack=[[3d6]]}} {{ocv=@{OCV}}}" />
</div>
<div class="line">
<div class="in3">DCV</div>
<div class="in4">
<span class="field" name="attr_DCV"></span>
</div>
</div>
<div class="line">
<div class="in3">OMCV</div>
<div class="in4 button">
<span name="attr_OMCV"></span>
<button type="roll" class="edit-hide tooltip" name="roll_Mental_Attack_Roll" value="@{omcv_formula}"></button>
<span class="tooltiptext">Mental Attack&nbsp;Roll</span>
</div>
<input type="hidden" name="attr_omcv_formula" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Mental Attack Roll}} {{attack=[[3d6]]}} {{ocv=@{OMCV}}}" />
</div>
<div class="line">
<div class="in3">DMCV</div>
<div class="in4">
<span class="field" name="attr_DMCV"></span>
</div>
</div>
</div>
</div>
</div>
<div class="logo">
<div class="alternate2">
<div class="line">
<input type="text" class="edit-show" name="attr_character_name" value=""/>
<span class="field edit-hide" name="attr_character_name" disabled="true">&nbsp;</span>
</div>
</div>
<img src="http://www.herogames.com/forums/public/style_images/1_hero_logo.png">
</div>
</div>
<!-- ----------------------- -->
<!-- ----- TAB BUTTONS ----- -->
<!-- ----------------------- -->
<input type="radio" class="tab-button core" name="attr_tab" value="core" checked="checked"/><span>Core</span>
<input type="radio" class="tab-button combat" name="attr_tab" value="combat"/><span>Combat</span>
<input type="radio" class="tab-button powers" name="attr_tab" value="powers"/><span>Powers</span>
<input type="radio" class="tab-button skills" name="attr_tab" value="skills"/><span>Skills</span>
<input type="radio" class="tab-button background" name="attr_tab" value="background"/><span>Background</span>
<input type="radio" class="tab-button options" name="attr_tab" value="options"/><span>y</span>
<input type="checkbox" class="tab-button edit-toggle" name="attr_edit_toggle" value="1"/><span>edit</span>
<input type="radio" class="tab-button hidden" name="attr_tab" value="hidden"/><span>Hidden</span>
<span class="version"><div>character sheet version </div><div>1.1 (7/12/2018)</div></span>
<!-- ----------------------- -->
<!-- ---- TABBED CONTENT --- -->
<!-- ----------------------- -->
<div class="page core">
<div class="column-33">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_1" checked="checked"/>
<span class="section-title">CHARACTERISTICS</span>
<div class="subsection">
<div>
<div class="line heads">
<div class="ch1">Val</div>
<div class="ch2">Char</div>
<div class="ch3 edit-show">Base</div>
<div class="ch3 edit-hide">&nbsp;</div>
<div class="ch4 indent">Roll</div>
</div>
</div>
<div>
<div class="line">
<input type="hidden" name="attr_STR" />
<span class="ch1 field" name="attr_STR"></span>
<div class="ch2">STR</div>
<input type="number" class="ch3 edit-show" name="attr_str_base" step="1" value="10" />
<div class="ch3 edit-hide">&nbsp;</div>
<div class="ch4 button">
<span name="attr_str_roll_show">&nbsp;</span>
<input type="hidden" name="attr_str_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_STR_Roll" value="@{str_roll_formula}"></button>
<span class="tooltiptext">STR Roll</span>
</div>
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_DEX" disabled="true">&nbsp;</span>
<div class="ch2">DEX</div>
<input type="number" class="ch3 edit-show" name="attr_dex_base" step="1" value="10" />
<div class="ch3 edit-hide">&nbsp;</div>
<div class="ch4 button">
<span name="attr_dex_roll_show">&nbsp;</span>
<input type="hidden" name="attr_dex_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_DEX_Roll" value="@{dex_roll_formula}"></button>
<span class="tooltiptext">DEX Roll</span>
</div>
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_CON" disabled="true">&nbsp;</span>
<div class="ch2">CON</div>
<input type="number" class="ch3 edit-show" name="attr_con_base" step="1" value="10" />
<div class="ch3 edit-hide">&nbsp;</div>
<div class="ch4 button">
<span name="attr_con_roll_show">&nbsp;</span>
<input type="hidden" name="attr_con_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_CON_Roll" value="@{con_roll_formula}"></button>
<span class="tooltiptext">CON Roll</span>
</div>
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_INT" disabled="true">&nbsp;</span>
<div class="ch2">INT</div>
<input type="number" class="ch3 edit-show" name="attr_int_base" step="1" value="10" />
<div class="ch3 edit-hide">&nbsp;</div>
<div class="button ch4">
<span name="attr_int_roll_show">&nbsp;</span>
<input type="hidden" name="attr_int_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_INT_Roll" value="@{int_roll_formula}"></button>
<span class="tooltiptext">INT Roll</span>
</div>
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_EGO" disabled="true">&nbsp;</span>
<div class="ch2">EGO</div>
<input type="number" class="ch3 edit-show" name="attr_ego_base" step="1" value="10" />
<div class="ch3 edit-hide">&nbsp;</div>
<div class="ch4 button">
<span name="attr_ego_roll_show">&nbsp;</span>
<input type="hidden" name="attr_ego_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_EGO_Roll" value="@{ego_roll_formula}"></button>
<span class="tooltiptext">EGO Roll</span>
</div>
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_PRE">&nbsp;</span>
<div class="ch2">PRE</div>
<input type="number" class="ch3 edit-show" name="attr_pre_base" step="1" value="10" />
<div class="ch3 edit-hide">&nbsp;</div>
<div class="ch4 button">
<span name="attr_pre_roll_show">&nbsp;</span>
<input type="hidden" name="attr_pre_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_PRE_Roll" value="@{pre_roll_formula}"></button>
<span class="tooltiptext">PRE Roll</span>
</div>
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_ocv_show">&nbsp;</span>
<div class="ch2">OCV</div>
<input type="number" class="ch3 edit-show" name="attr_ocv_base" step="1" value="3" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_dcv_show">&nbsp;</span>
<div class="ch2">DCV</div>
<input type="number" class="ch3 edit-show" name="attr_dcv_base" step="1" value="3" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_omcv_show">&nbsp;</span>
<div class="ch2">OMCV</div>
<input type="number" class="ch3 edit-show" name="attr_omcv_base" step="1" value="3" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_dmcv_show">&nbsp;</span>
<div class="ch2">DMCV</div>
<input type="number" class="ch3 edit-show" name="attr_dmcv_base" step="1" value="3" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_SPD">&nbsp;</span>
<div class="ch2">SPD</div>
<input type="number" class="ch3 edit-show" name="attr_spd_base" step="1" value="2" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_PD">&nbsp;</span>
<div class="ch2">PD</div>
<input type="number" class="ch3 edit-show" name="attr_pd_base" step="1" value="2" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_ED">&nbsp;</span>
<div class="ch2">ED</div>
<input type="number" class="ch3 edit-show" name="attr_ed_base" step="1" value="2" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_REC">&nbsp;</span>
<div class="ch2">REC</div>
<input type="number" class="ch3 edit-show" name="attr_rec_base" step="1" value="4" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_END_max">&nbsp;</span>
<div class="ch2">END</div>
<input type="number" class="ch3 edit-show" name="attr_end_base" step="1" value="20" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_BODY_max">&nbsp;</span>
<div class="ch2">BODY</div>
<input type="number" class="ch3 edit-show" name="attr_body_base" step="1" value="10" />
</div>
</div>
<div>
<div class="line">
<span class="ch1 field" name="attr_STUN_max">&nbsp;</span>
<div class="ch2">STUN</div>
<input type="number" class="ch3 edit-show" name="attr_stun_base" step="1" value="20" />
</div>
</div>
</div><!-- end subsection -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_2" checked="checked"/>
<span class="section-title">VITAL INFORMATION</span>
<div class="subsection">
<div class="vs1 line justify">
<div>HTH damage<span>(STR/5)d6</span></div>
<span class="field" name="attr_hth" value=""></span>
</div>
<div class="vs2">
<div class="line justify">
<div>Lift</div>
<span class="vs2 field" name="attr_lift" value=""></span>
</div>
<div class="line justify">
<div>STR END Cost</div>
<span>
<div class="button">
<input type="checkbox" class="tooltip flash edit-hide" name="attr_button_strength_pay_end" value="1" />
<span class="field flash" name="attr_str_end" value=""></span>
<span class="tooltiptext">Expend</span>
</div>
</span>
</div>
</div>
<div class="vs1 line justify">
<div>Reduced END on STR</div>
<span>
<select class="edit-show" name="attr_str_reduced_end_text">
<option>Normal</option>
<option>&frac12; END</option>
<option>0 END</option>
</select>
<span class="field edit-hide" name="attr_str_reduced_end_text"></span>
<input type="hidden" name="attr_str_reduced_end" />
</span>
</div>
<div class="vs1 line justify">
<div class="vs1">Presence Attack<span>(PRE/5)d6</span></div>
<span class="vs2 field" name="attr_pre_attack" value=""></span>
</div>
</div><!-- end subsection -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_3" checked="checked"/>
<span class="section-title">MOVEMENT</span>
<div class="subsection">
<div class="line heads">
<div class="mv1">Type</div>
<div class="mv2">Combat</div>
<div class="mv3">Noncombat</div>
</div>
<div class="line">
<div class="mv1">Run (12m)</div>
<input type="text" class="mv2 edit-show" name="attr_run_combat" value="12m" />
<span class="mv2 field edit-hide" name="attr_run_combat" disabled="true"></span>
<input type="text" class="mv3 edit-show" name="attr_run_noncombat" value="24m" />
<span class="mv3 field edit-hide" name="attr_run_noncombat" disabled="true"></span>
</div>
<div class="line">
<div class="mv1">Swim (4m)</div>
<input type="text" class="mv2 edit-show" name="attr_swim_Combat" value="4m" />
<span class="mv2 field edit-hide" name="attr_swim_combat" disabled="true"></span>
<input type="text" class="mv3 edit-show" name="attr_swim_Noncombat" value="8m" />
<span class="mv3 field edit-hide" name="attr_swim_noncombat" disabled="true"></span>
</div>
<div class="line">
<div class="mv1">H. Leap (4m)</div>
<input type="text" class="mv2 edit-show" name="attr_hleap_combat" value="4m" />
<span class="mv2 field edit-hide" name="attr_hleap_combat" disabled="true"></span>
<input type="text" class="mv3 edit-show" name="attr_hleap_noncombat" value="8m" />
<span class="mv3 field edit-hide" name="attr_hleap_noncombat" disabled="true"></span>
</div>
<div class="line">
<div class="mv1">V. Leap (2m)</div>
<input type="text" class="mv2 edit-show" name="attr_vleap_combat" value="2m" />
<span class="mv2 field edit-hide" name="attr_vleap_combat" disabled="true"></span>
<input type="text" class="mv3 edit-show" name="attr_vleap_noncombat" value="4m" />
<span class="mv3 field edit-hide" name="attr_vleap_noncombat" disabled="true"></span>
</div>
<fieldset class="repeating_moves">
<div class="line">
<input type="text" class="mv1 edit-show" name="attr_spec_move_name" value="" />
<span class="mv1 field edit-hide" name="attr_spec_move_name" disabled="true"></span>
<input type="text" class="mv2 edit-show" name="attr_spec_move_combat" value="" />
<span class="mv2 field edit-hide" name="attr_spec_move_combat" disabled="true"></span>
<input type="text" class="mv3 edit-show" name="attr_spec_move_noncombat" value="" />
<span class="mv3 field edit-hide" name="attr_spec_move_noncombat" disabled="true"></span>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
</div><!-- end column-33 -->
<div class="column-66 alternate1">
<div class="sectionless"><!-- info section -->
<div class="stat-wrap">
<div>
<div class="stat">
<div>STUN</div>
<div>
<span class="field edit-show" name="attr_STUN_max" disabled="true">20</span>
<input type="text" class="edit-hide" name="attr_STUN" value="20" />
</div>
</div>
<div class="stat">
<div>BODY</div>
<div>
<span class="field edit-show" name="attr_BODY_max" disabled="true">20</span>
<input type="text" class="edit-hide" name="attr_BODY" value="20" />
</div>
</div>
<div class="stat">
<div>END</div>
<div>
<span class="field edit-show" name="attr_END_max" disabled="true">20</span>
<input type="text" class="edit-hide" name="attr_END" value="20" />
</div>
</div>
<div class="stat-buttons">
<div>
<input type="checkbox" class="flash tooltip" name="attr_pay_end_button" value="1" />
<span class="stat-button flash">Pay END</span>
<span class="tooltiptext">Expend endurance for all active powers</span>
</div>
<div>
<input type="checkbox" class="flash tooltip" name="attr_recover_button" value="1" />
<span class="stat-button flash">Recover</span>
<span class="tooltiptext">Increase END and STUN by the character's REC value</span>
</div>
</div>
</div>
<div class="phases">
<div>
<div class="in1">
<div>Phases</div>
</div>
<div class="line">
<input type="checkbox" class="fast" name="attr_fast" value="1"/>
<input type="checkbox" class="in2" name="attr_segment1" value="1" />
<span class="in2">1</span>
<input type="checkbox" class="in2" name="attr_segment2" value="1" />
<span class="in2">2</span>
<input type="checkbox" class="in2" name="attr_segment3" value="1" />
<span class="in2">3</span>
<input type="checkbox" class="in2" name="attr_segment4" value="1" />
<span class="in2">4</span>
<input type="checkbox" class="in2" name="attr_segment5" value="1" />
<span class="in2">5</span>
<input type="checkbox" class="in2" name="attr_segment6" value="1" />
<span class="in2">6</span>
<input type="checkbox" class="in2" name="attr_segment7" value="1" />
<span class="in2">7</span>
<input type="checkbox" class="in2" name="attr_segment8" value="1" />
<span class="in2">8</span>
<input type="checkbox" class="in2" name="attr_segment9" value="1" />
<span class="in2">9</span>
<input type="checkbox" class="in2" name="attr_segment10" value="1" />
<span class="in2">10</span>
<input type="checkbox" class="in2" name="attr_segment11" value="1" />
<span class="in2">11</span>
<input type="checkbox" class="in2" name="attr_segment12" value="1" />
<span class="in2">12</span>
</div>
</div>
</div>
</div>
<div class="stat-cvs">
<div class="line">
<div class="in3">OCV</div>
<div class="in4 button">
<span name="attr_OCV"></span>
<button type="roll" class="edit-hide tooltip" name="roll_Attack_Roll" value="@{ocv_formula}"></button>
<span class="tooltiptext">Attack&nbsp;Roll</span>
</div>
<input type="hidden" name="attr_ocv_formula" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Attack Roll}} {{attack=[[3d6]]}} {{ocv=@{OCV}}}" />
</div>
<div class="line">
<div class="in3">DCV</div>
<div class="in4">
<span class="field" name="attr_DCV"></span>
</div>
</div>
<div class="line">
<div class="in3">OMCV</div>
<div class="in4 button">
<span name="attr_OMCV"></span>
<button type="roll" class="edit-hide tooltip" name="roll_Mental_Attack_Roll" value="@{omcv_formula}"></button>
<span class="tooltiptext">Mental Attack&nbsp;Roll</span>
</div>
<input type="hidden" name="attr_omcv_formula" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Mental Attack Roll}} {{attack=[[3d6]]}} {{ocv=@{OMCV}}}" />
</div>
<div class="line">
<div class="in3">DMCV</div>
<div class="in4">
<span class="field" name="attr_DMCV"></span>
</div>
</div>
</div>
</div><!-- end sectionless --><!-- info section -->
</div>
<div class="column-66">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_4" checked="checked"/>
<span class="section-title">HIT LOCATION CHART</span>
<div class="subsection">
<div class="line heads">
<div class="hl1">3d6</div>
<div class="hl2"></div>
<div class="hl3">Stun</div>
<div class="hl3">N</div>
<div class="hl3">Body</div>
<div class="hl3">To</div>
<div class="hl4"></div>
<div class="hl5"></div>
<div class="hl6"></div>
<div class="hl4"></div>
<div class="hl5"></div>
<div class="hl6"></div>
</div>
<div class="line heads">
<div class="hl1">Roll</div>
<div class="hl2">Location</div>
<div class="hl3">X</div>
<div class="hl3">Stun</div>
<div class="hl3">X</div>
<div class="hl3">Hit</div>
<div class="hl4">PD</div>
<div class="hl5">/</div>
<div class="hl6">rPD</div>
<div class="hl4">ED</div>
<div class="hl5">/</div>
<div class="hl6">rED</div>
</div>
<div class="line">
<div class="hl1">3-5</div>
<div class="hl2">Head</div>
<div class="hl3">x5</div>
<div class="hl3">x2</div>
<div class="hl3">x2</div>
<div class="hl3">-8</div>
<span class="hl4 field" name="attr_pd_head"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_head"></span>
<span class="hl4 field" name="attr_ed_head"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_head"></span>
</div>
<div class="line">
<div class="hl1">6</div>
<div class="hl2">Hands</div>
<div class="hl3">x1</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">-6</div>
<span class="hl4 field" name="attr_pd_hands"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_hands"></span>
<span class="hl4 field" name="attr_ed_hands"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_hands"></span>
</div>
<div class="line">
<div class="hl1">7-8</div>
<div class="hl2">Arms</div>
<div class="hl3">x2</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">-5</div>
<span class="hl4 field" name="attr_pd_arms"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_arms"></span>
<span class="hl4 field" name="attr_ed_arms"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_arms"></span>
</div>
<div class="line">
<div class="hl1">9</div>
<div class="hl2">Shoulders</div>
<div class="hl3">x3</div>
<div class="hl3">x1</div>
<div class="hl3">x1</div>
<div class="hl3">-5</div>
<span class="hl4 field" name="attr_pd_shoulders"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_shoulders"></span>
<span class="hl4 field" name="attr_ed_shoulders"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_shoulders"></span>
</div>
<div class="line">
<div class="hl1">10-11</div>
<div class="hl2">Chest</div>
<div class="hl3">x3</div>
<div class="hl3">x1</div>
<div class="hl3">x1</div>
<div class="hl3">-3</div>
<span class="hl4 field" name="attr_pd_chest"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_chest"></span>
<span class="hl4 field" name="attr_ed_chest"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_chest"></span>
</div>
<div class="line">
<div class="hl1">12</div>
<div class="hl2">Stomach</div>
<div class="hl3">x4</div>
<div class="hl3">x1&frac12;</div>
<div class="hl3">x1</div>
<div class="hl3">-7</div>
<span class="hl4 field" name="attr_pd_stomach"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_stomach"></span>
<span class="hl4 field" name="attr_ed_stomach"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_stomach"></span>
</div>
<div class="line">
<div class="hl1">13</div>
<div class="hl2">Vitals</div>
<div class="hl3">x4</div>
<div class="hl3">x1&frac12;</div>
<div class="hl3">x2</div>
<div class="hl3">-8</div>
<span class="hl4 field" name="attr_pd_vitals"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_vitals"></span>
<span class="hl4 field" name="attr_ed_vitals"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_vitals"></span>
</div>
<div class="line">
<div class="hl1">14</div>
<div class="hl2">Thighs</div>
<div class="hl3">x2</div>
<div class="hl3">x1</div>
<div class="hl3">x1</div>
<div class="hl3">-4</div>
<span class="hl4 field" name="attr_pd_thighs"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_thighs"></span>
<span class="hl4 field" name="attr_ed_thighs"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_thighs"></span>
</div>
<div class="line">
<div class="hl1">15-16</div>
<div class="hl2">Legs</div>
<div class="hl3">x2</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">-6</div>
<span class="hl4 field" name="attr_pd_legs"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_legs"></span>
<span class="hl4 field" name="attr_ed_legs"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_legs"></span>
</div>
<div class="line">
<div class="hl1">17-18</div>
<div class="hl2">Feet</div>
<div class="hl3">x1</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">x&frac12;</div>
<div class="hl3">-8</div>
<span class="hl4 field" name="attr_pd_feet"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_rpd_feet"></span>
<span class="hl4 field" name="attr_ed_feet"></span>
<div class="hl5">/</div>
<span class="hl6 field" name="attr_red_feet"></span>
</div>
<div class="line heads">
<div>Armor Notes</div>
</div>
<fieldset class="repeating_armornotes">
<div class="line">
<input type="text" class="hl7 edit-show" name="attr_armor_note" value="" />
<span class="hl7 field edit-hide" name="attr_armor_note" disabled="true"></span>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
<!-- this column is nested within another column -->
<div class="column-60">
<div class="section status">
<input type="checkbox" class="section-title" value="attr_section_5" checked="checked"/>
<span class="section-title">CHARGES / RESERVES</span>
<div class="subsection">
<div class="line heads">
<div class="rs1 edit-hide">Name</div>
<div class="rs1 edit-show">Name</div>
<div class="rs2 edit-show">Refill</div>
<div class="rs2">Current</div>
<div class="rs2">Max</div>
</div>
<fieldset class="repeating_reserves">
<div class="line">
<input type="text" class="rs1 edit-show" name="attr_reserve_name" value="" />
<span class="rs1 field edit-hide" name="attr_reserve_name" disabled="true"></span>
<input type="number" class="rs2 edit-show" name="attr_reserve_refill_qty" step="1" value="" />
<div class="rs2 button">
<input type="number" class="edit-show" name="attr_reserve_end" step="1" value="" />
<input type="checkbox" class="tooltip flash edit-hide" name="attr_reserve_use" value="1" />
<span class="field flash edit-hide" name="attr_reserve_end" disabled="true"></span>
<span class="tooltiptext">Use</span>
</div>
<div class="rs2 button">
<input type="number" class="edit-show" name="attr_reserve_end_max" step="1" value="" />
<input type="checkbox" class="tooltip flash edit-hide" name="attr_button_reserve_refill" value="1" />
<span class="field flash edit-hide" name="attr_reserve_end_max" disabled="true"></span>
<span class="tooltiptext">Reload</span>
</div>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_6" checked="checked"/>
<span class="section-title">SENSES</span>
<div class="subsection">
<div class="es0 line edit-show heads">
<div class="es1 edit-show indent">&nbsp;</div>
<div class="es2">Inc.</div>
<div class="es2">Roll</div>
</div>
<div class="es0 line">
<div class="es1 edit-hide">Perception Roll<span>(9+INT/5)</span></div>
<div class="es1 edit-show">Perception Roll<span>(9+INT/5)</span></div>
<input type="number" class="es2 edit-show" name="attr_perception_increase" step="1" value="" />
<div class="es2 button">
<span name="attr_perception">&nbsp;</span>
<input type="hidden" name="attr_perception_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_Perception_Roll" value="@{perception_roll_formula}"></button>
<span class="tooltiptext">Roll Perception</span>
</div>
</div>
<div class="line heads">
<div class="es1 edit-hide indent">Enhanced Senses</div>
<div class="es1 edit-show indent">Enhanced Senses</div>
<div class="es2 edit-show">Inc.</div>
<div class="es2">Roll</div>
</div>
<fieldset class="repeating_senses">
<div class="line">
<input type="text" class="es1 edit-show" name="attr_sense_name" value="" />
<span class="es1 field edit-hide" name="attr_sense_name" disabled="true"></span>
<input type="number" class="es2 edit-show" name="attr_sense_increase" step="1" value="" />
<div class="es2 button">
<span name="attr_sense_roll_show">&nbsp;</span>
<input type="hidden" name="attr_sense_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_Sense_Roll" value="@{sense_roll_formula}"></button>
<span class="tooltiptext">Use Sense</span>
</div>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
</div><!-- end column-33 -->
<!-- this column is nested within another column -->
<div class="column-40">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_7" checked="checked"/>
<span class="section-title">DEFENSES</span>
<div class="subsection">
<div class="line heads">
<div class="def1">Type</div>
<div class="def2">Amount</div>
</div>
<div class="line">
<div class="def1">Normal PD</div>
<span class="def2 field" name="attr_PD" disabled="true"></span>
</div>
<div class="line">
<div class="def1">Resistant PD</div>
<span class="def2 field" name="attr_rpd" disabled="true"></span>
</div>
<div class="line">
<div class="def1">Normal ED</div>
<span class="def2 field" name="attr_ED" disabled="true"></span>
</div>
<div class="line">
<div class="def1">Resistant ED</div>
<span class="def2 field" name="attr_red" disabled="true"></span>
</div>
<div class="line">
<div class="def1">Mental Defense</div>
<span class="def2 field" name="attr_mdef" disabled="true"></span>
</div>
<div class="line">
<div class="def1">Power Defense</div>
<span class="def2 field" name="attr_pdef" value="@{PDEF}" disabled="true"></span>
</div>
<div class="line">
<div class="def1">Flash Defense</div>
<span class="def2 field" name="attr_fdef" disabled="true"></span>
</div>
</div><!-- end subsection -->
</div><!-- end section -->
</div><!-- end column-33 -->
</div><!-- end column-66 -->
</div><!-- end page core -->
<div class="page combat">
<div class="column-100 combat-preview">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_25" checked="checked"/>
<span class="section-title">COMBAT PREVIEW</span>
<div class="subsection">
<div class="line heads">
<div class="cp1"></div>
<div class="cp2">Start</div>
<div class="cp2">CSL</div>
<div class="cp2">Power</div>
<div class="cp2">Mnvr</div>
<div class="cp2">Cmod</div>
<div class="cp2">Range</div>
<div class="cp2">Rmod</div>
<div class="cp2">Other</div>
<div class="cp2">PSL</div>
<div class="cp2">Half</div>
<div class="cp3">Final</div>
<div class="cp4">Damage</div>
</div>
<div class="line">
<div class="cp1">OCV</div>
<span class="cp2 field" name="attr_preview_start_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_csl_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_power_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_maneuver_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_target_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_range_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_psl_rmod" disabled="true"></span>
<span class="cp2 field" name="attr_preview_other_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_psl_ocv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_half_ocv" disabled="true"></span>
<span class="cp3 field heads" name="attr_preview_final_ocv" disabled="true"></span>
<span class="cp4 field" name="attr_preview_damage" disabled="true"></span>
</div>
<div class="line">
<div class="cp1">DCV</div>
<span class="cp2 field" name="attr_preview_start_dcv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_csl_dcv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_power_dcv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_maneuver_dcv" disabled="true"></span>
<div class="cp2"></div>
<div class="cp2"></div>
<div class="cp2"></div>
<span class="cp2 field" name="attr_preview_other_dcv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_psl_dcv" disabled="true"></span>
<span class="cp2 field" name="attr_preview_half_dcv" disabled="true"></span>
<span class="cp3 field heads" name="attr_preview_final_dcv" disabled="true"></span>
</div>
</div><!-- end subsection -->
</div><!-- end section -->
</div><!-- end column-100 -->
<div class="column-60">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_8" checked="checked"/>
<span class="section-title">ATTACKS &amp; MANEUVERS</span>
<div class="subsection">
<div class="line heads">
<div class="am0"></div>
<div class="am1">Maneuver</div>
<div class="am2">Phs</div>
<div class="am2">OCV</div>
<div class="am2">DCV</div>
<div class="am3">Dmg</div>
<div class="am4">Effects</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver1" value="1" checked="checked" /></div>
<div class="am1">None</div>
<div class="am2"></div>
<div class="am2">+0</div>
<div class="am2">+0</div>
<div class="am3"></div>
<div class="am4"></div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver2" value="1" /></div>
<div class="am1">Block</div>
<div class="am2">&#189;</div>
<div class="am2">+0</div>
<div class="am2">+0</div>
<div class="am3"></div>
<div class="am4">Block, Abort</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver3" value="1" /></div>
<div class="am1">Brace</div>
<div class="am2">+0</div>
<div class="am2">+0</div>
<div class="am2">&#189;</div>
<div class="am3"></div>
<div class="am4">+2 RMod</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver4" value="1" /></div>
<div class="am1">Disarm</div>
<div class="am2">&#189;</div>
<div class="am2">-2</div>
<div class="am2">+0</div>
<div class="am3"></div>
<div class="am4">Disarm, STR v. STR</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver5" value="1" /></div>
<div class="am1">Dodge</div>
<div class="am2">&#189;</div>
<div class="am2"></div>
<div class="am2">+3</div>
<div class="am3"></div>
<div class="am4">Abort, vs. all attacks</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver6" value="1" /></div>
<div class="am1">Grab</div>
<div class="am2">&#189;</div>
<div class="am2">-1</div>
<div class="am2">-2</div>
<div class="am3"></div>
<div class="am4">Grab 2 limbs</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver7" value="1" ></div>
<div class="am1">Grab By</div>
<div class="am2">&#189; &#8224;</div>
<div class="am2">-3</div>
<div class="am2">-4</div>
<div class="am3"></div>
<div class="am4">Move & Grab; +v/10 to STR</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver8" value="1" /></div>
<div class="am1">Haymaker</div>
<div class="am2">&#189;*</div>
<div class="am2">+0</div>
<div class="am2">-5</div>
<div class="am3">+4DC</div>
<div class="am4">+4 DCs to attack</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver9" value="1" /></div>
<div class="am1">Move By</div>
<div class="am2">&#189; &#8224;</div>
<div class="am2">-2</div>
<div class="am2">-2</div>
<div class="am3">var</div>
<div class="am4">STR/2 + v/10; you take &#8531;</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver10" value="1" /></div>
<div class="am1">Move Through</div>
<div class="am2">&#189; &#8224;</div>
<div class="am2">-v/10</div>
<div class="am2">-3</div>
<div class="am3">+v/6</div>
<div class="am4">STR + v/6; you take &#189; or full</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver11" value="1" /></div>
<div class="am1">Multiple Attack</div>
<div class="am2">1</div>
<div class="am2">var</div>
<div class="am2">&#189;</div>
<div class="am3"></div>
<div class="am4">Attack multiple times</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver12" value="1" /></div>
<div class="am1">Set</div>
<div class="am2">1</div>
<div class="am2">+1</div>
<div class="am2">+0</div>
<div class="am3"></div>
<div class="am4">Ranged attacks only</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver13" value="1" /></div>
<div class="am1">Shove</div>
<div class="am2">&#189;</div>
<div class="am2">-1</div>
<div class="am2">-1</div>
<div class="am3"></div>
<div class="am4">Push 1m per 5 STR</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver14" value="1" /></div>
<div class="am1">Strike</div>
<div class="am2">&#189;</div>
<div class="am2">+0</div>
<div class="am2">+0</div>
<div class="am3"></div>
<div class="am4">STR or Weapon</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver15" value="1" /></div>
<div class="am1">Throw</div>
<div class="am2">&#189;</div>
<div class="am2">+0</div>
<div class="am2">+0</div>
<div class="am3"></div>
<div class="am4">Throw w/ STR dmg</div>
</div>
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver16" value="1" /></div>
<div class="am1">Trip</div>
<div class="am2">&#189;</div>
<div class="am2">-1</div>
<div class="am2">-2</div>
<div class="am3"></div>
<div class="am4">Knock target prone</div>
</div>
<fieldset class="repeating_maneuvers">
<div class="line">
<div class="am0"><input type="checkbox" name="attr_radio_maneuver_custom" value="1" /></div>
<input type="text" class="am1 edit-show" name="attr_maneuver_name" value="" />
<span class="am1 field edit-hide" name="attr_maneuver_name" disabled="true"></span>
<select class="am2 edit-show" name="attr_maneuver_phase" value="">
<option></option>
<option>0</option>
<option>&frac12;</option>
<option>1</option>
</select>
<span class="am2 edit-show field hidearrow1" name="attr_maneuver_phase" disabled="true"></span>
<span class="am2 field edit-hide" name="attr_maneuver_phase" disabled="true"></span>
<select class="am2 edit-show" name="attr_maneuver_ocv_text" value="">
<option></option>
<option>-3</option>
<option>-2</option>
<option>-1</option>
<option>+0</option>
<option>+1</option>
<option>+2</option>
<option>-v/10</option>
</select>
<span class="am2 edit-show field hidearrow2" name="attr_maneuver_ocv_text" disabled="true"></span>
<span class="am2 field edit-hide" name="attr_maneuver_ocv_text" disabled="true"></span>
<select class="am2 edit-show" name="attr_maneuver_dcv_text" value="">
<option></option>
<option>-5</option>
<option>-4</option>
<option>-3</option>
<option>-2</option>
<option>-1</option>
<option>+0</option>
<option>+1</option>
<option>+2</option>
<option>+3</option>
<option>+4</option>
<option>+5</option>
<option>&frac12;</option>
</select>
<span class="am2 edit-show field hidearrow3" name="attr_maneuver_dcv_text" disabled="true"></span>
<span class="am2 field edit-hide" name="attr_maneuver_dcv_text" disabled="true"></span>
<select class="am2 edit-show" name="attr_maneuver_dc_text" value="">
<option></option>
<option>+1DC</option>
<option>+2DC</option>
<option>+3DC</option>
<option>+4DC</option>
<option>+v/6</option>
<option>+v/10</option>
</select>
<span class="am2 edit-show field hidearrow4" name="attr_maneuver_dc_text" disabled="true"></span>
<span class="am3 field edit-hide" name="attr_maneuver_dc_text" disabled="true"></span>
<input type="text" class="am4 edit-show" name="attr_maneuver_effect" value="" />
<span class="am4 field edit-hide" name="attr_maneuver_effect" disabled="true"></span>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_9" checked="checked"/>
<span class="section-title">COMBAT SKILL LEVELS</span>
<div class="subsection">
<div class="line heads">
<div class="cs0"></div>
<div class="cs1 indent">Type</div>
<div class="cs2">OCV</div>
<div class="cs3">DCV</div>
<div class="cs4">OMCV</div>
<div class="cs5">DMCV</div>
<div class="cs6">&frac12;DC</div>
</div>
<fieldset class="repeating_combatskills">
<div class="line">
<div class="cs0"><input type="checkbox" name="attr_csl_checkbox" value="1" /></div>
<input type="text" class="cs1 edit-show" name="attr_csl_name" value="" />
<span class="cs1 field edit-hide" name="attr_csl_name" disabled="true"></span>
<div class="cs2"><input type="checkbox" name="attr_radio_csl_ocv" value="1" /></div>
<div class="cs3"><input type="checkbox" name="attr_radio_csl_dcv" value="1" /></div>
<div class="cs4"><input type="checkbox" name="attr_radio_csl_omcv" value="1" /></div>
<div class="cs5"><input type="checkbox" name="attr_radio_csl_dmcv" value="1" /></div>
<div class="cs6"><input type="checkbox" name="attr_radio_csl_dc" value="1" /></div>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
</div><!-- end column-60 -->
<div class="column-40">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_24" checked="checked"/>
<span class="section-title">OTHER MODIFIERS</span>
<div class="subsection">
<div class="line heads">
<div class="om1">OCV</div>
<div class="om2">&frac12;OCV</div>
<div class="om1">DCV</div>
<div class="om2">&frac12;DCV</div>
<div class="om3">Velocity</div>
<div class="om4"></div>
</div>
<div class="line">
<input type="number" class="om1" name="attr_other_ocv" step="1" />
<div class="om2"><input type="checkbox" name="attr_half_ocv" value="1"/></div>
<input type="number" class="om1" name="attr_other_dcv" step="1" />
<div class="om2"><input type="checkbox" name="attr_half_dcv" value="1"/></div>
<input type="number" class="om3" name="attr_velocity" step="1" />
<div class="om4">m</div>
</div>
</div><!-- end subsection -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_10" checked="checked"/>
<span class="section-title">COMBAT MODIFIERS</span>
<div class="subsection">
<div class="line">
<div class="cm1"></div>
<div class="cm2"><input type="radio" name="attr_radio_range" value="1" checked="checked" /></div>
<div class="cm2"><input type="radio" name="attr_radio_range" value="2" /></div>
<div class="cm2"><input type="radio" name="attr_radio_range" value="3" /></div>
<div class="cm2"><input type="radio" name="attr_radio_range" value="4" /></div>
<div class="cm3"><input type="radio" name="attr_radio_range" value="5" /></div>
<div class="cm3"><input type="radio" name="attr_radio_range" value="6" /></div>
</div>
<div class="line">
<div class="cm1">Range (m)</div>
<div class="cm2 small">0-8</div>
<div class="cm2 small">9-16</div>
<div class="cm2 small">17-32</div>
<div class="cm2 small">33-64</div>
<div class="cm3 small">65-125</div>
<div class="cm3 small">126-250</div>
</div>
<div class="line">
<div class="cm1">OCV mod</div>
<div class="cm2">-0</div>
<div class="cm2">-2</div>
<div class="cm2">-4</div>
<div class="cm2">-6</div>
<div class="cm3">-8</div>
<div class="cm3">-10</div>
</div>
<div class="line heads cm0">
<div class="cm4"></div>
<div class="cm5"></div>
<div class="cm6"></div>
<div class="cm7">Hit</div>
</div>
<div class="line heads underline">
<div class="cm4"></div>
<div class="cm5">Shot Targetting</div>
<div class="cm6">OCV</div>
<div class="cm7">Location</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="-1" /></div>
<div class="cm5">No Hit Location</div>
<div class="cm6">-0</div>
<div class="cm7">
<div>--</div>
</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="1" checked="checked" /></div>
<div class="cm5">Normal</div>
<div class="cm6">-0</div>
<div class="cm7 button">
<div>3d6</div>
<button type="roll" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Hit Location (normal)}} {{hitlocation=[[3d6]]}}">3d6</button>
</div>
</div>
<div class="line focus">
<div class="cm4"><input type="radio" name="attr_radio_target" value="2" /></div>
<div class="cm5">Focus</div>
<div class="cm6">-4</div>
<div class="cm7">Focus</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="3" /></div>
<div class="cm5">Head Shot (Head to Shoulders)</div>
<div class="cm6">-4</div>
<div class="cm7 button">
<div>1d6+3</div>
<button type="roll" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Hit Location (Head Shot)}} {{hitlocation=[[1d6+3]]}}">3d6</button>
</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="4" /></div>
<div class="cm5">High Shot (Head to Vitals)</div>
<div class="cm6">-2</div>
<div class="cm7 button">
<div>2d6+1</div>
<button type="roll" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Hit Location (High Shot)}} {{hitlocation=[[2d6+1]]}}">3d6</button>
</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="5" /></div>
<div class="cm5">Body Shot (Hands to Legs)</div>
<div class="cm6">-1</div>
<div class="cm7 button">
<div>2d6+4</div>
<button type="roll" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Hit Location (Body Shot)}} {{hitlocation=[[2d6+4]]}}">3d6</button>
</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="6" /></div>
<div class="cm5">Low Shot (Shoulder to Feet)</div>
<div class="cm6">-2</div>
<div class="cm7 button">
<div>2d6+7*</div>
<button type="roll" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Hit Location (Low Shot)}} {{hitlocation=[[2d6+7]]}}">3d6</button>
</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="7" /></div>
<div class="cm5">Leg Shot (Vitals to Feet)</div>
<div class="cm6">-4</div>
<div class="cm7 button">
<div>1d6+12</div>
<button type="roll" value="&{template:hero6template} {{charname=@{character_name}}} {{action=Hit Location (Leg Shot)}} {{hitlocation=[[1d6+12]]}}">3d6</button>
</div>
</div>
<div class="line">
<div class="cm8">* Treat a 19 as the Feet Location</div>
</div>
<div class="line heads cm-wrap">
<div class="cm4">&nbsp;</div>
<div class="cm9">Targetting</div>
<div class="cm6">OCV</div>
<div class="cm-gap">&nbsp;</div>
<div class="cm4">&nbsp;</div>
<div class="cm9">Targetting</div>
<div class="cm6">OCV</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="8" /></div>
<div class="cm9">Head</div>
<div class="cm6">-8</div>
<div class="cm-gap">&nbsp;</div>
<div class="cm4"><input type="radio" name="attr_radio_target" value="12" /></div>
<div class="cm9">Stomach</div>
<div class="cm6">-7</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="9" /></div>
<div class="cm9">Hands</div>
<div class="cm6">-6</div>
<div class="cm-gap">&nbsp;</div>
<div class="cm4"><input type="radio" name="attr_radio_target" value="13" /></div>
<div class="cm9">Vitals</div>
<div class="cm6">-8</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="10" /></div>
<div class="cm9">Shoulders</div>
<div class="cm6">-5</div>
<div class="cm-gap">&nbsp;</div>
<div class="cm4"><input type="radio" name="attr_radio_target" value="14" /></div>
<div class="cm9">Thighs</div>
<div class="cm6">-4</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="17" /></div>
<div class="cm9">Arms</div>
<div class="cm6">-5</div>
<div class="cm-gap">&nbsp;</div>
<div class="cm4"><input type="radio" name="attr_radio_target" value="15" /></div>
<div class="cm9">Legs</div>
<div class="cm6">-6</div>
</div>
<div class="line">
<div class="cm4"><input type="radio" name="attr_radio_target" value="11" /></div>
<div class="cm9">Chest</div>
<div class="cm6">-3</div>
<div class="cm-gap">&nbsp;</div>
<div class="cm4"><input type="radio" name="attr_radio_target" value="16" /></div>
<div class="cm9">Feet</div>
<div class="cm6">-8</div>
</div>
</div><!-- end subsection -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_11" checked="checked"/>
<span class="section-title">PENALTY SKILL LEVELS</span>
<div class="subsection">
<div class="line heads">
<div class="ps0"></div>
<div class="ps1 indent">Type</div>
<div class="ps2">RMOD</div>
<div class="ps2">OCV</div>
<div class="ps2">DCV</div>
</div>
<fieldset class="repeating_penaltyskills">
<div class="line">
<div class="ps0"><input type="checkbox" name="attr_psl_checkbox" value="1" /></div>
<input type="text" class="ps1 edit-show" name="attr_psl_name" value="" />
<span class="ps1 field edit-hide" name="attr_psl_name" disabled="true"></span>
<div class="ps2"><input type="checkbox" name="attr_radio_psl_rmod" value="1" /></div>
<div class="ps2"><input type="checkbox" name="attr_radio_psl_ocv" value="1" /></div>
<div class="ps2"><input type="checkbox" name="attr_radio_psl_dcv" value="1" /></div>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
</div><!-- end column-40 -->
</div><!-- end page combat -->
<div class="page skills">
<div class="column-50">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_12" checked="checked"/>
<span class="section-title">SKILLS</span>
<div class="subsection">
<div class="line heads">
<div class="sk1 indent edit-hide">Name</div>
<div class="sk1 indent edit-show">Name</div>
<div class="sk2 edit-show">Char</div>
<div class="sk3 edit-show">Inc.</div>
<div class="sk5 indent">Roll</div>
</div>
<fieldset class="repeating_skills">
<div class="line">
<span class="sk1 field edit-hide" name="attr_skill_name" disabled="true"></span>
<input type="text" class="sk1 edit-show" name="attr_skill_name" value="" />
<select class="sk2 edit-show" name="attr_skill_char">
<optgroup label="Characteristic">
<option value="none"></option>
<option value="STR">STR</option>
<option value="DEX">DEX</option>
<option value="CON">CON</option>
<option value="INT">INT</option>
<option value="EGO">EGO</option>
<option value="PRE">PRE</option>
</optgroup>
<optgroup label="Non-Characteristic">
<option value="8-">8-</option>
<option value="10-">10-</option>
<option value="11-">11-</option>
</optgroup>
</select>
<input type="checkbox" class="sk3" name="attr_skill_has_increase" value="1" />
<input type="number" class="sk3" name="attr_skill_increase" step="1" value="" />
<input type="checkbox" class="sk4" name="attr_skill_has_roll" value="1" />
<div class="sk4 button">
<span name="attr_skill_roll_show">&nbsp;</span>
<input type="hidden" name="attr_skill_roll_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_Skill_Roll" value="@{skill_roll_formula}"></button>
<span class="tooltiptext">Use Skill</span>
</div>
</div>
</fieldset>
</div><!-- end sub-section -->
</div><!-- end section -->
</div><!-- end column-50 -->
<div class="column-50">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_13" checked="checked"/>
<span class="section-title">PERKS &amp; TALENTS</span>
<div class="subsection">
<div class="line heads">
<div class="pk1 indent">Name</div>
</div>
<fieldset class="repeating_perks">
<div class="line">
<input type="text" class="pk1 edit-show" name="attr_perk_name" value="" />
<span class="pk1 field edit-hide" name="attr_perk_name" disabled="true"></span>
</div>
</fieldset>
</div><!-- end sub-section -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_14" checked="checked"/>
<span class="section-title">SKILL LEVELS</span>
<div class="subsection">
<div class="line heads">
<div class="sl0"></div>
<div class="sl1 indent">Type</div>
</div>
<fieldset class="repeating_skilllevels">
<div class="line">
<div class="sl0"><input type="checkbox" name="attr_radio_skill_level" value="1" /></div>
<input type="text" class="sl1 edit-show" name="attr_skill_level" value="" />
<span class="sl1 field edit-hide" name="attr_skill_level" disabled="true"></span>
</div>
</fieldset>
</div><!-- end subsection -->
</div><!-- end section -->
</div><!-- end column-50 -->
</div><!-- end page skills -->
<div class="page powers">
<div class="column-100">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_15" checked="checked"/>
<span class="section-title">POWERS &amp; EQUIPMENT</span>
<div class="subsection">
<div class="line heads">
<div class="pow0">On</div>
<div class="pow1">Cost</div>
<div class="pow2 indent">Name</div>
<div class="pow3 indent">Description</div>
<div class="pow4">END</div>
</div>
<fieldset class="repeating_powers">
<input type="checkbox" class="pow-expand" name="attr_power_expand" value="1"/><span>y</span>
<div class="pow-container">
<!-- expansion toggle -->
<div class="pow0"><input type="checkbox" name="attr_power_active" value="1" /></div>
<span class="pow1 field" name="attr_power_real_cost" disabled="true"></span>
<div class="pow2 button">
<input type="text" class="edit-show" name="attr_power_name" value="" />
<span class="field edit-hide" name="attr_power_name" disabled="true"></span>
<input type="hidden" name="attr_use_power_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_Use_Power" value="@{use_power_formula}"></button>
<span class="tooltiptext">Use Power</span>
</div>
<div class="pow3 button">
<textarea class="edit-show" name="attr_power"></textarea>
<span class="field edit-hide" name="attr_power" disabled="true"></span>
<input type="hidden" name="attr_use_power2_formula" value="" />
<button type="roll" class="edit-hide tooltip" name="roll_Use_Power2" value="@{use_power2_formula}"></button>
<span class="tooltiptext">Use Power</span>
</div>
<div class="pow4 button">
<input type="checkbox" class="flash tooltip edit-hide" name="attr_button_power_pay_end" value="1" />
<span class="pow4 flash field remaining-charges" name="attr_power_remaining_charges" disabled="true"></span>
<span class="pow4 flash field end-cost" name="attr_power_end_cost" disabled="true"></span>
<span class="tooltiptext">Expend</span>
<input type="hidden" name="attr_power_end_ap_cost" value="0" />
<input type="hidden" name="attr_power_end_str_cost" value="0" />
</div>
</div>
<div class="pow-detail">
<div class="pd-section-head">
<div>&nbsp;</div>
<div>Points</div>
<div>&nbsp;</div>
</div>
<div class="pd-section">
<div class="pd-row heads">
<div class="pd1">Base</div>
<div class="math">&nbsp;</div>
<div class="pd2">Adv.</div>
<div class="math">&nbsp;</div>
<div class="pd3">Active</div>
<div class="math">&nbsp;</div>
<div class="pd4">Lim.</div>
<div class="math">&nbsp;</div>
<div class="pd5">Real</div>
</div>
<div class="pd-row">
<input type="number" class="pd1 edit-show" name="attr_pow_base_points" step="1" value="0"/>
<span class="pd1 field edit-hide" name="attr_pow_base_points" disabled="true"></span>
<div class="math">&times;</div>
<input type="number" class="pd2 edit-show" name="attr_pow_advantages" step=".25" value="0"/>
<span class="pd2 field edit-hide" name="attr_pow_advantages" disabled="true"></span>
<input type="hidden" name="attr_pow_advantages_no_reduced_end" value="0"/>
<div class="math">&equals;</div>
<span class="pd3 field" name="attr_pow_active_points" disabled="true"></span>
<input type="hidden" name="attr_pow_active_points_no_reduced_end" value="0"/>
<div class="math">&divide;</div>
<input type="number" class="pd4 edit-show" name="attr_pow_limitations" step=".25" value="0"/>
<span class="pd4 field edit-hide" name="attr_pow_limitations" disabled="true"></span>
<div class="math">&equals;</div>
<span class="pd5 field" name="attr_pow_real_points" disabled="true"></span>
</div>
</div>
<div class="pd-section-head">
<div>&nbsp;</div>
<div>Framework</div>
<div>&nbsp;</div>
</div>
<div class="pd-section">
<div class="pd-row heads">
<div class="pd6 indent">Type</div>
<div class="pd7 indent">Name</div>
</div>
<div class="pd-row">
<select class="pd6 edit-show" name="attr_pow_frame_type" placeholder="none">
<option></option>
<optgroup label="Multipower">
<option>Multipower Pool</option>
<option>MP Slot, variable</option>
<option>MP Slot, fixed</option>
</optgroup>
<optgroup label="Variable Power Pool">
<option>Variable Power Pool</option>
<option>VPP Slot</option>
</optgroup>
</select>
<span class="pd6 field edit-hide" name="attr_pow_frame_type" disabled="true"></span>
<input type="text" class="pd7 edit-show" name="attr_pow_framework_name" />
<span class="pd7 field edit-hide" name="attr_pow_framework_name" disabled="true"></span>
</div>
</div>
<div class="pd-section-head">
<div>&nbsp;</div>
<div>Endurance</div>
<div>&nbsp;</div>
</div>
<div class="pd-section">
<div class="pd-row heads">
<div class="pd8 indent">Cost X</div>
<div class="pd9">Fixed</div>
<div class="pd10 indent">From</div>
<div class="pd11 indent">Reserve Name</div>
<div class="pd12 indent">Auto</div>
</div>
<div class="pd-row">
<select class="pd8 edit-show" name="attr_end_multiplier">
<option></option>
<optgroup label="Normal and Advantage">
<option>1x END</option>
<option>&frac12; END</option>
<option>0 END</option>
</optgroup>
<optgroup label="Limitation or Static">
<option>no cost</option>
<option>Costs &frac12;</option>
<option>Costs 1x</option>
<option>Costs 2x</option>
<option>Costs 3x</option>
<option>Costs 4x</option>
<option>Costs 5x</option>
<option>Costs 6x</option>
<option>Costs 7x</option>
<option>Costs 8x</option>
<option>Costs 9x</option>
<option>Costs 10x</option>
</optgroup>
</select>
<span class="pd8 field edit-hide" name="attr_end_multiplier" disabled="true"></span>
<input type="number" class="pd9 edit-show" name="attr_power_end_fixed" step="1" value="0" />
<span class="pd9 field edit-hide" name="attr_power_end_fixed" disabled="true"></span>
<select class="pd10 edit-show" name="attr_power_end_source">
<option>none</option>
<option>END</option>
<option>Reserve</option>
<option>Both</option>
</select>
<span class="pd10 field edit-hide" name="attr_power_end_source" disabled="true"></span>
<input type="text" class="pd11 edit-show" name="attr_power_end_reserve_name" />
<span class="pd11 field edit-hide" name="attr_power_end_reserve_name" disabled="true"></span>
<div class="pd12">
<input type="checkbox" class="tooltip" name="attr_end_auto_pay" value="1" checked="checked" />
<span class="tooltiptext">Check for use with Pay END</span>
</div>
</div>
</div>
<div class="pd-section-head">
<div>&nbsp;</div>
<div>Enhancements</div>
<div>&nbsp;</div>
</div>
<div class="pd-section">
<div class="pd-row heads">
<div class="pd13 indent">Ability</div>
<div class="pd14">Bonus</div>
<div class="pd13 indent">Ability</div>
<div class="pd14">Bonus</div>
</div>
<div class="pd-row">
<select class="pd13 edit-show" name="attr_pow_add_name1">
<option></option>
<optgroup label="Characteristics">
<option>STR</option>
<option>DEX</option>
<option>CON</option>
<option>INT</option>
<option>EGO</option>
<option>PRE</option>
<option>OCV</option>
<option>DCV</option>
<option>OMCV</option>
<option>DMCV</option>
<option>SPD</option>
<option>PD</option>
<option>ED</option>
<option>REC</option>
<option>END</option>
<option>BODY</option>
<option>STUN</option>
</optgroup>
<optgroup label="Characteristic Rolls">
<option>STR Roll</option>
<option>DEX Roll</option>
<option>CON Roll</option>
<option>INT Roll</option>
<option>EGO Roll</option>
<option>PRE Roll</option>
</optgroup>
<optgroup label="Skill Levels">
<option>Skill Level</option>
</optgroup>
<optgroup label="Penalty Skill Levels">
<option>PSL RMOD</option>
<option>PSL OCV</option>
<option>PSL DCV</option>
</optgroup>
<optgroup label="Special Defenses">
<option>rPD</option>
<option>rED</option>
<option>Flash Defense</option>
<option>Mental Defense</option>
<option>Power Defense</option>
</optgroup>
<optgroup label="Hit Location Defenses">
<option>PD Head</option>
<option>PD Hands</option>
<option>PD Arms</option>
<option>PD Shoulders</option>
<option>PD Chest</option>
<option>PD Stomach</option>
<option>PD Vitals</option>
<option>PD Thighs</option>
<option>PD Legs</option>
<option>PD Feet</option>
<option>rPD Head</option>
<option>rPD Hands</option>
<option>rPD Arms</option>
<option>rPD Shoulders</option>
<option>rPD Chest</option>
<option>rPD Stomach</option>
<option>rPD Vitals</option>
<option>rPD Thighs</option>
<option>rPD Legs</option>
<option>rPD Feet</option>
<option>ED Head</option>
<option>ED Hands</option>
<option>ED Arms</option>
<option>ED Shoulders</option>
<option>ED Chest</option>
<option>ED Stomach</option>
<option>ED Vitals</option>
<option>ED Thighs</option>
<option>ED Legs</option>
<option>ED Feet</option>
<option>rED Head</option>
<option>rED Hands</option>
<option>rED Arms</option>
<option>rED Shoulders</option>
<option>rED Chest</option>
<option>rED Stomach</option>
<option>rED Vitals</option>
<option>rED Thighs</option>
<option>rED Legs</option>
<option>rED Feet</option>
</optgroup>
</select>
<span class="pd13 field edit-hide" name="attr_pow_add_name1" disabled="true"></span>
<input type="number" class="pd14 edit-show" name="attr_pow_add_bonus1" step="1" />
<span class="pd14 field edit-hide" name="attr_pow_add_bonus1" disabled="true"></span>
<select class="pd13 edit-show" name="attr_pow_add_name2">
<option></option>
<optgroup label="Characteristics">
<option>STR</option>
<option>DEX</option>
<option>CON</option>
<option>INT</option>
<option>EGO</option>
<option>PRE</option>
<option>OCV</option>
<option>DCV</option>
<option>OMCV</option>
<option>DMCV</option>
<option>SPD</option>
<option>PD</option>
<option>ED</option>
<option>REC</option>
<option>END</option>
<option>BODY</option>
<option>STUN</option>
</optgroup>
<optgroup label="Characteristic Rolls">
<option>STR Roll</option>
<option>DEX Roll</option>
<option>CON Roll</option>
<option>INT Roll</option>
<option>EGO Roll</option>
<option>PRE Roll</option>
</optgroup>
<optgroup label="Skill Levels">
<option>Skill Level</option>
</optgroup>
<optgroup label="Penalty Skill Levels">
<option>PSL RMOD</option>
<option>PSL OCV</option>
<option>PSL DCV</option>
</optgroup>
<optgroup label="Special Defenses">
<option>rPD</option>
<option>rED</option>
<option>Flash Defense</option>
<option>Mental Defense</option>
<option>Power Defense</option>
</optgroup>
<optgroup label="Hit Location Defenses">
<option>PD Head</option>
<option>PD Hands</option>
<option>PD Arms</option>
<option>PD Shoulders</option>
<option>PD Chest</option>
<option>PD Stomach</option>
<option>PD Vitals</option>
<option>PD Thighs</option>
<option>PD Legs</option>
<option>PD Feet</option>
<option>rPD Head</option>
<option>rPD Hands</option>
<option>rPD Arms</option>
<option>rPD Shoulders</option>
<option>rPD Chest</option>
<option>rPD Stomach</option>
<option>rPD Vitals</option>
<option>rPD Thighs</option>
<option>rPD Legs</option>
<option>rPD Feet</option>
<option>ED Head</option>
<option>ED Hands</option>
<option>ED Arms</option>
<option>ED Shoulders</option>
<option>ED Chest</option>
<option>ED Stomach</option>
<option>ED Vitals</option>
<option>ED Thighs</option>
<option>ED Legs</option>
<option>ED Feet</option>
<option>rED Head</option>
<option>rED Hands</option>
<option>rED Arms</option>
<option>rED Shoulders</option>
<option>rED Chest</option>
<option>rED Stomach</option>
<option>rED Vitals</option>
<option>rED Thighs</option>
<option>rED Legs</option>
<option>rED Feet</option>
</optgroup>
</select>
<span class="pd13 field edit-hide" name="attr_pow_add_name2" disabled="true"></span>
<input type="number" class="pd14 edit-show" name="attr_pow_add_bonus2" step="1" />
<span class="pd14 field edit-hide" name="attr_pow_add_bonus2" disabled="true"></span>
</div>
<div class="pd-row">
<select class="pd13 edit-show" name="attr_pow_add_name3">
<option></option>
<optgroup label="Characteristics">
<option>STR</option>
<option>DEX</option>
<option>CON</option>
<option>INT</option>
<option>EGO</option>
<option>PRE</option>
<option>OCV</option>
<option>DCV</option>
<option>OMCV</option>
<option>DMCV</option>
<option>SPD</option>
<option>PD</option>
<option>ED</option>
<option>REC</option>
<option>END</option>
<option>BODY</option>
<option>STUN</option>
</optgroup>
<optgroup label="Characteristic Rolls">
<option>STR Roll</option>
<option>DEX Roll</option>
<option>CON Roll</option>
<option>INT Roll</option>
<option>EGO Roll</option>
<option>PRE Roll</option>
</optgroup>
<optgroup label="Skill Levels">
<option>Skill Level</option>
</optgroup>
<optgroup label="Penalty Skill Levels">
<option>PSL RMOD</option>
<option>PSL OCV</option>
<option>PSL DCV</option>
</optgroup>
<optgroup label="Special Defenses">
<option>rPD</option>
<option>rED</option>
<option>Flash Defense</option>
<option>Mental Defense</option>
<option>Power Defense</option>
</optgroup>
<optgroup label="Hit Location Defenses">
<option>PD Head</option>
<option>PD Hands</option>
<option>PD Arms</option>
<option>PD Shoulders</option>
<option>PD Chest</option>
<option>PD Stomach</option>
<option>PD Vitals</option>
<option>PD Thighs</option>
<option>PD Legs</option>
<option>PD Feet</option>
<option>rPD Head</option>
<option>rPD Hands</option>
<option>rPD Arms</option>
<option>rPD Shoulders</option>
<option>rPD Chest</option>
<option>rPD Stomach</option>
<option>rPD Vitals</option>
<option>rPD Thighs</option>
<option>rPD Legs</option>
<option>rPD Feet</option>
<option>ED Head</option>
<option>ED Hands</option>
<option>ED Arms</option>
<option>ED Shoulders</option>
<option>ED Chest</option>
<option>ED Stomach</option>
<option>ED Vitals</option>
<option>ED Thighs</option>
<option>ED Legs</option>
<option>ED Feet</option>
<option>rED Head</option>
<option>rED Hands</option>
<option>rED Arms</option>
<option>rED Shoulders</option>
<option>rED Chest</option>
<option>rED Stomach</option>
<option>rED Vitals</option>
<option>rED Thighs</option>
<option>rED Legs</option>
<option>rED Feet</option>
</optgroup>
</select>
<span class="pd13 field edit-hide" name="attr_pow_add_name3" disabled="true"></span>
<input type="number" class="pd14 edit-show" name="attr_pow_add_bonus3" step="1" />
<span class="pd14 field edit-hide" name="attr_pow_add_bonus3" disabled="true"></span>
<select class="pd13 edit-show" name="attr_pow_add_name4">
<option></option>
<optgroup label="Characteristics">
<option>STR</option>
<option>DEX</option>
<option>CON</option>
<option>INT</option>
<option>EGO</option>
<option>PRE</option>
<option>OCV</option>
<option>DCV</option>
<option>OMCV</option>
<option>DMCV</option>
<option>SPD</option>
<option>PD</option>
<option>ED</option>
<option>REC</option>
<option>END</option>
<option>BODY</option>
<option>STUN</option>
</optgroup>
<optgroup label="Characteristic Rolls">
<option>STR Roll</option>
<option>DEX Roll</option>
<option>CON Roll</option>
<option>INT Roll</option>
<option>EGO Roll</option>
<option>PRE Roll</option>
</optgroup>
<optgroup label="Skill Levels">
<option>Skill Level</option>
</optgroup>
<optgroup label="Penalty Skill Levels">
<option>PSL RMOD</option>
<option>PSL OCV</option>
<option>PSL DCV</option>
</optgroup>
<optgroup label="Special Defenses">
<option>rPD</option>
<option>rED</option>
<option>Flash Defense</option>
<option>Mental Defense</option>
<option>Power Defense</option>
</optgroup>
<optgroup label="Hit Location Defenses">
<option>PD Head</option>
<option>PD Hands</option>
<option>PD Arms</option>
<option>PD Shoulders</option>
<option>PD Chest</option>
<option>PD Stomach</option>
<option>PD Vitals</option>
<option>PD Thighs</option>
<option>PD Legs</option>
<option>PD Feet</option>
<option>rPD Head</option>
<option>rPD Hands</option>
<option>rPD Arms</option>
<option>rPD Shoulders</option>
<option>rPD Chest</option>
<option>rPD Stomach</option>
<option>rPD Vitals</option>
<option>rPD Thighs</option>
<option>rPD Legs</option>
<option>rPD Feet</option>
<option>ED Head</option>
<option>ED Hands</option>
<option>ED Arms</option>
<option>ED Shoulders</option>
<option>ED Chest</option>
<option>ED Stomach</option>
<option>ED Vitals</option>
<option>ED Thighs</option>
<option>ED Legs</option>
<option>ED Feet</option>
<option>rED Head</option>
<option>rED Hands</option>
<option>rED Arms</option>
<option>rED Shoulders</option>
<option>rED Chest</option>
<option>rED Stomach</option>
<option>rED Vitals</option>
<option>rED Thighs</option>
<option>rED Legs</option>
<option>rED Feet</option>
</optgroup>
</select>
<span class="pd13 field edit-hide" name="attr_pow_add_name4" disabled="true"></span>
<input type="number" class="pd14 edit-show" name="attr_pow_add_bonus4" step="1" />
<span class="pd14 field edit-hide" name="attr_pow_add_bonus4" disabled="true"></span>
</div>
</div>
<div class="pd-section-head">
<div>&nbsp;</div>
<div>Attack</div>
<div>&nbsp;</div>
</div>
<div class="pd-section">
<input type="checkbox" class="pd15" name="attr_pow_attack" value="1" />
<div class="pd-attack-wrapper">
<div class="pd-row heads">
<div class="pd19">Base</div>
<div class="math">&nbsp;</div>
<div class="pd19">Str</div>
<div class="math">&nbsp;</div>
<div class="pd27">Man.</div>
<div class="math">&nbsp;</div>
<div class="pd28">CSL</div>
<div class="math">&nbsp;</div>
<div class="pd29">Extra</div>
<div class="math">&nbsp;</div>
<div class="pd30">Total Dice</div>
</div>
<div class="pd-row pd-gap">
<input type="hidden" name="attr_attack_base_dice" value="" />
<span class="pd19 field" name="attr_attack_base_dice_show" disabled="true"></span>
<div class="math">&plus;</div>
<input type="hidden" name="attr_attack_str_dice" value="" />
<input type="hidden" name="attr_attack_str_for_end" value="" />
<span class="pd19 field" name="attr_attack_str_dice_show" disabled="true"></span>
<div class="math">&plus;</div>
<span class="pd27 field" name="attr_attack_maneuver_dice_show" disabled="true"></span>
<div class="math">&plus;</div>
<span class="pd28 field" name="attr_attack_csl_dice_show" disabled="true"></span>
<div class="math">&plus;</div>
<input type="hidden" name="attr_attack_extra_dice" value="" />
<span class="pd29 field" name="attr_attack_extra_dice_show" disabled="true"></span>
<div class="math">&equals;</div>
<input type="hidden" name="attr_attack_dice" value="" />
<span class="pd30 field" name="attr_attack_dice_show" disabled="true"></span>
</div>
<div class="pd-row heads">
<div class="pd-attack-config indent">Wizard</div>
<div class="pd16 indent">CV</div>
<div class="pd17 indent">Type</div>
<div class="pd18 indent">Cost/Die</div>
</div>
<div class="pd-row pd-gap">
<select class="pd-attack-config edit-show tooltip" name="attr_attack_wizard">
<option></option>
<option>Aid</option>
<option>Blast</option>
<option>Dispel</option>
<option>Drain</option>
<option>Entangle</option>
<option>Flash</option>
<option>HTH Attack</option>
<option>Healing</option>
<option>Killing Attack (HKA)</option>
<option>Killing Attack (RKA)</option>
<option>Luck</option>
<option>Mental Blast</option>
<option>Mental Illusions</option>
<option>Mind Control</option>
<option>Mind Scan</option>
<option>Telepathy</option>
<option>Transform</option>
</select>
<span class="tooltiptext">Auto Config Most Attack Types</span>
<span class="pd-attack-config field edit-hide" name="attr_attack_wizard" disabled="true"></span>
<select class="pd16 edit-show" name="attr_attack_cv" value="OCV">
<option>none</option>
<option>OCV</option>
<option>OMCV</option>
</select>
<span class="pd16 field edit-hide" name="attr_attack_cv" disabled="true"></span>
<select class="pd17 edit-show" name="attr_attack_type">
<option>STUN &amp; BODY</option>
<option>STUN</option>
<option>BODY</option>
<option>BODY only</option>
<option>Effect</option>
<option>Luck</option>
</select>
<span class="pd17 field edit-hide" name="attr_attack_type" disabled="true"></span>
<select class="pd18 edit-show" name="attr_attack_die_cost">
<option>3</option>
<option>5</option>
<option>6</option>
<option>10</option>
<option>15 (&frac12;d6)</option>
<option>15 (1d6-1)</option>
</select>
<span class="pd18 field edit-hide" name="attr_attack_die_cost" disabled="true"></span>
</div>
<div class="pd-row heads">
<div class="pd20">STR</div>
<div class="pd21">Min.</div>
<div class="pd26">Killing</div>
<div class="pd22">Hit Loc.</div>
<div class="pd23 indent">Extra Pts/Dice</div>
<div class="pd23 indent">Custom Dice</div>
</div>
<div class="pd-row">
<div class="pd20"><input type="checkbox" name="attr_attack_uses_str" value="1" /></div>
<input type="number" class="pd21 edit-show" name="attr_attack_minimum_str" step="1" />
<span class="pd21 field edit-hide" name="attr_attack_minimum_str" disabled="true"></span>
<div class="pd26"><input type="checkbox" name="attr_attack_killing" value="1" /></div>
<div class="pd22"><input type="checkbox" name="attr_attack_hit_location" value="1" checked="checked" /></div>
<input type="text" class="pd23 edit-show" name="attr_attack_extra_dice_source"/>
<span class="pd23 field edit-hide" name="attr_attack_extra_dice_source" disabled="true"></span>
<input type="text" class="pd23 edit-show" name="attr_attack_custom_dice"/>
<span class="pd23 field edit-hide" name="attr_attack_custom_dice" disabled="true"></span>
</div>
</div><!-- pd-attack-wrapper -->
</div>
<div class="pd-section-head">
<div>&nbsp;</div>
<div>Other</div>
<div>&nbsp;</div>
</div>
<div class="pd-section">
<div class="pd-row heads">
<div class="pd24">Activation</div>
<div class="pd25 indent">Additional Action</div>
<div class="pd25 indent">Custom Action</div>
</div>
<div class="pd-row">
<select class="pd24 edit-show" name="attr_power_activation" placeholder="none">
<option></option>
<option>18</option>
<option>17</option>
<option>16</option>
<option>15</option>
<option>14</option>
<option>13</option>
<option>12</option>
<option>11</option>
<option>10</option>
<option>9</option>
<option>8</option>
<option>7</option>
<option>6</option>
<option>5</option>
<option>4</option>
<option>3</option>
</select>
<span class="pd24 field edit-hide" name="attr_power_activation" disabled="true"></span>
<input type="text" class="pd25 edit-show" name="attr_extra_action"/>
<span class="pd25 field edit-hide" name="attr_extra_action" disabled="true"></span>
<input type="text" class="pd25 edit-show" name="attr_custom_action"/>
<span class="pd25 field edit-hide" name="attr_custom_action" disabled="true"></span>
</div>
</div>
</div>
</fieldset>
</div><!-- end sub-section -->
</div><!-- end section -->
</div><!--end column-100 -->
</div><!-- end page powers -->
<div class="page background">
<div class="column-50">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_16" checked="checked"/>
<span class="section-title">PHYSICAL</span>
<div class="subsection">
<div class="line">
<div class="app1">Height</div>
<input type="text" class="app1 edit-show" name="attr_height" value="" />
<span class="app1 field edit-hide" name="attr_height" disabled="true"></span>
<div class="app2">Hair</div>
<input type="text" class="app2 edit-show" name="attr_hair" value="" />
<span class="app2 field edit-hide" name="attr_hair" disabled="true"></span>
<div class="app3">Age</div>
<input type="text" class="app3 edit-show" name="attr_age" value="" />
<span class="app3 field edit-hide" name="attr_age" disabled="true"></span>
</div>
<div class="line">
<div class="app1">Weight</div>
<input type="text" class="app1 edit-show" name="attr_weight" value="" />
<span class="app1 field edit-hide" name="attr_weight" disabled="true"></span>
<div class="app2">Eyes</div>
<input type="text" class="app2 edit-show" name="attr_eyes" value="" />
<span class="app2 field edit-hide" name="attr_eyes" disabled="true"></span>
<div class="app3">Gender</div>
<input type="text" class="app3 edit-show" name="attr_gender" value="" />
<span class="app3 field edit-hide" name="attr_gender" disabled="true"></span>
</div>
</div>
</div>
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_19" checked="checked"/>
<span class="section-title">APPEARANCE</span>
<div class="subsection">
<div class="background">
<textarea class="edit-show" name="attr_appearance"></textarea>
<span class="field edit-hide" name="attr_appearance" disabled="true"></span>
</div>
</div>
</div>
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_17" checked="checked"/>
<span class="section-title">BACKGROUND</span>
<div class="subsection">
<div class="background">
<textarea class="edit-show" name="attr_background"></textarea>
<span class="field edit-hide" name="attr_background" disabled="true"></span>
</div>
</div>
</div>
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_18" checked="checked"/>
<span class="section-title">PERSONALITY / MOTIVATIONS</span>
<div class="subsection">
<div class="background">
<textarea class="edit-show" name="attr_personality"></textarea>
<span class="field edit-hide" name="attr_personality" disabled="true"></span>
</div>
</div>
</div>
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_19" checked="checked"/>
<span class="section-title">QUOTES</span>
<div class="subsection">
<div class="background">
<textarea class="edit-show" name="attr_quotes"></textarea>
<span class="field edit-hide" name="attr_quotes" disabled="true"></span>
</div>
</div>
</div>
</div><!--end column-50 -->
<div class="column-50">
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_23" checked="checked"/>
<span class="section-title">EXPERIENCE POINTS</span>
<div class="subsection">
<div class="line">
<div class="xp1">Total Points</div>
<input type="number" class="xp2 edit-show" name="attr_total_points" step="1" value="" />
<span class="xp2 field edit-hide" name="attr_total_points" disabled="true"></span>
</div>
<div class="line">
<div class="xp1">Experience Points Earned</div>
<input type="number" class="xp2 edit-show" name="attr_experience_total" step="1" value="" />
<span class="xp2 field edit-hide" name="attr_experience_total" disabled="true"></span>
</div>
<div class="line">
<div class="xp2">Experience Spent</div>
<input type="number" class="xp2 edit-show" name="attr_experience_spent" step="1" value="" />
<span class="xp2 field edit-hide" name="attr_experience_spent" disabled="true"></span>
</div>
<div class="line">
<div class="xp2">Experience Unspent</div>
<input type="number" class="xp2 edit-show" name="attr_experience_unspent" step="1" value="" />
<span class="xp2 field edit-hide" name="attr_experience_unspent" disabled="true"></span>
</div>
</div><!-- end subsection -->
</div><!-- end section -->
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_20" checked="checked"/>
<span class="section-title">POWERS / TACTICS</span>
<div class="subsection">
<div class="background">
<textarea class="edit-show" name="attr_tactics"></textarea>
<span class="field edit-hide" name="attr_tactics" disabled="true"></span>
</div>
</div><!-- end sub-section -->
</div>
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_21" checked="checked"/>
<span class="section-title">CAMPAIGN USE</span>
<div class="subsection">
<div class="background">
<textarea class="edit-show" name="attr_campaign"></textarea>
<span class="field edit-hide" name="attr_campaign" disabled="true"></span>
</div>
</div>
</div>
<div class="section">
<input type="checkbox" class="section-title" value="attr_section_22" checked="checked"/>
<span class="section-title">MATCHING COMPLICATIONS</span>
<div class="subsection">
<div class="line heads">
<div class="comp1">Cost</div>
<div class="comp2">Complication</div>
</div>
<fieldset class="repeating_complications">
<div class="line">
<input type="number" class="comp1 edit-show" name="attr_complication_cost" step="1" value="" />
<span class="comp1 field edit-hide" name="attr_complication_cost" disabled="true"></span>
<input type="text" class="comp2 edit-show" name="attr_complication" step="1" value="" />
<span class="comp2 field edit-hide" name="attr_complication" disabled="true"></span>
</div>
</fieldset>
</div><!-- end sub-section -->
</div><!-- end section -->
</div><!--end column-50 -->
</div><!-- end page background -->
<div class="page options">
<div class="column-40">
<div class="section">
<div class="section-title">CONFIGURATION</div>
<div class="subsection">
<div class="line">
<div class="op1">END cost for STR</div>
<select class="op2" name="attr_option_str_end_cost">
<option value="10">1 END per 10 STR</option>
<option value="5">1 END per 5 STR</option>
</select>
</div>
<div class="option-break"></div>
<div class="line">
<input type="checkbox" class="op0" name="attr_option_remaining_charges" value="1"/>
<div class="op1">Show Remaining Charges</div>
</div>
<div class="option-break"></div>
<div class="line">
<div class="op1">Sheet Zoom Level</div>
<select class="op2" name="attr_option_zoom_level">
<option value="0">Normal</option>
<option value="1">Small</option>
<option value="2">Tiny</option>
</select>
</div>
<div class="option-break"></div>
<div class="line">
<input type="checkbox" class="op0" name="attr_option_fixed_page_width" value="1"/>
<div class="op1">Fixed Page Width</div>
</div>
<div class="line">
<input type="checkbox" class="op0" name="attr_option_collapsing_sections" value="1"/>
<div class="op1">Collapsing Sections</div>
</div>
<div class="line">
<input type="checkbox" class="op0" name="attr_option_combat_preview" value="1"/>
<div class="op1">Show Combat Preview</div>
</div>
<div class="line">
<input type="checkbox" class="op0" name="attr_option_alternate_header" value="1"/>
<div class="op1">Alternate Header</div>
</div>
</div>
</div><!-- end section -->
</div><!-- end column-33 -->
</div><!-- end page options -->
<div class="page hidden">
<div class="column-50">
<div class="section">
<div class="section-title">Characteristics (from Powers)</div>
<div class="sub-section">
<div class="hd1">ocv_pow</div><input type="number" class="hd2" name="attr_ocv_pow" />
<div class="hd1">dcv_pow</div><input type="number" class="hd2" name="attr_dcv_pow" />
<div class="hd1">omcv_pow</div><input type="number" class="hd2" name="attr_omcv_pow" />
<div class="hd1">dmcv_pow</div><input type="number" class="hd2" name="attr_dmcv_pow" />
<div class="hd1">str_pow</div><input type="number" class="hd2" name="attr_str_pow" />
<div class="hd1">dex_pow</div><input type="number" class="hd2" name="attr_dex_pow" />
<div class="hd1">con_pow</div><input type="number" class="hd2" name="attr_con_pow" />
<div class="hd1">int_pow</div><input type="number" class="hd2" name="attr_int_pow" />
<div class="hd1">ego_pow</div><input type="number" class="hd2" name="attr_ego_pow" />
<div class="hd1">pre_pow</div><input type="number" class="hd2" name="attr_pre_pow" />
<div class="hd1">spd_pow</div><input type="number" class="hd2" name="attr_spd_pow" />
<div class="hd1">rec_pow</div><input type="number" class="hd2" name="attr_rec_pow" />
<div class="hd1">end_pow</div><input type="number" class="hd2" name="attr_end_pow" />
<div class="hd1">body_pow</div><input type="number" class="hd2" name="attr_body_pow" />
<div class="hd1">stun_pow</div><input type="number" class="hd2" name="attr_stun_pow" />
</div>
</div>
<div class="section">
<div class="section-title">Defenses (from Powers)</div>
<div class="sub-section">
<div class="hd1">pd_pow</div><input type="number" class="hd2" name="attr_pd_pow" />
<div class="hd1">ed_pow</div><input type="number" class="hd2" name="attr_ed_pow" />
<div class="hd1">rpd_pow</div><input type="number" class="hd2" name="attr_rpd_pow" />
<div class="hd1">red_pow</div><input type="number" class="hd2" name="attr_red_pow" />
<div class="hd1">mdef_pow</div><input type="number" class="hd2" name="attr_mdef_pow" />
<div class="hd1">pdef_pow</div><input type="number" class="hd2" name="attr_pdef_pow" />
<div class="hd1">fdef_pow</div><input type="number" class="hd2" name="attr_fdef_pow" />
<div class="hd1">pd_head_pow</div><input type="number" class="hd2" name="attr_pd_head_pow" />
<div class="hd1">pd_hands_pow</div><input type="number" class="hd2" name="attr_pd_hands_pow" />
<div class="hd1">pd_arms_pow</div><input type="number" class="hd2" name="attr_pd_arms_pow" />
<div class="hd1">pd_shoulders_pow</div><input type="number" class="hd2" name="attr_pd_shoulders_pow" />
<div class="hd1">pd_chest_pow</div><input type="number" class="hd2" name="attr_pd_chest_pow" />
<div class="hd1">pd_stomach_pow</div><input type="number" class="hd2" name="attr_pd_stomach_pow" />
<div class="hd1">pd_vitals_pow</div><input type="number" class="hd2" name="attr_pd_vitals_pow" />
<div class="hd1">pd_thighs_pow</div><input type="number" class="hd2" name="attr_pd_thighs_pow" />
<div class="hd1">pd_legs_pow</div><input type="number" class="hd2" name="attr_pd_legs_pow" />
<div class="hd1">pd_feet_pow</div><input type="number" class="hd2" name="attr_pd_feet_pow" />
<div class="hd1">rpd_head_pow</div><input type="number" class="hd2" name="attr_rpd_head_pow" />
<div class="hd1">rpd_hands_pow</div><input type="number" class="hd2" name="attr_rpd_hands_pow" />
<div class="hd1">rpd_arms_pow</div><input type="number" class="hd2" name="attr_rpd_arms_pow" />
<div class="hd1">rpd_shoulders_pow</div><input type="number" class="hd2" name="attr_rpd_shoulders_pow" />
<div class="hd1">rpd_chest_pow</div><input type="number" class="hd2" name="attr_rpd_chest_pow" />
<div class="hd1">rpd_stomach_pow</div><input type="number" class="hd2" name="attr_rpd_stomach_pow" />
<div class="hd1">rpd_vitals_pow</div><input type="number" class="hd2" name="attr_rpd_vitals_pow" />
<div class="hd1">rpd_thighs_pow</div><input type="number" class="hd2" name="attr_rpd_thighs_pow" />
<div class="hd1">rpd_legs_pow</div><input type="number" class="hd2" name="attr_rpd_legs_pow" />
<div class="hd1">rpd_feet_pow</div><input type="number" class="hd2" name="attr_rpd_feet_pow" />
<div class="hd1">ed_head_pow</div><input type="number" class="hd2" name="attr_ed_head_pow" />
<div class="hd1">ed_hands_pow</div><input type="number" class="hd2" name="attr_ed_hands_pow" />
<div class="hd1">ed_arms_pow</div><input type="number" class="hd2" name="attr_ed_arms_pow" />
<div class="hd1">ed_shoulders_pow</div><input type="number" class="hd2" name="attr_ed_shoulders_pow" />
<div class="hd1">ed_chest_pow</div><input type="number" class="hd2" name="attr_ed_chest_pow" />
<div class="hd1">ed_stomach_pow</div><input type="number" class="hd2" name="attr_ed_stomach_pow" />
<div class="hd1">ed_vitals_pow</div><input type="number" class="hd2" name="attr_ed_vitals_pow" />
<div class="hd1">ed_thighs_pow</div><input type="number" class="hd2" name="attr_ed_thighs_pow" />
<div class="hd1">ed_legs_pow</div><input type="number" class="hd2" name="attr_ed_legs_pow" />
<div class="hd1">ed_feet_pow</div><input type="number" class="hd2" name="attr_ed_feet_pow" />
<div class="hd1">red_head_pow</div><input type="number" class="hd2" name="attr_red_head_pow" />
<div class="hd1">red_hands_pow</div><input type="number" class="hd2" name="attr_red_hands_pow" />
<div class="hd1">red_arms_pow</div><input type="number" class="hd2" name="attr_red_arms_pow" />
<div class="hd1">red_shoulders_pow</div><input type="number" class="hd2" name="attr_red_shoulders_pow" />
<div class="hd1">red_chest_pow</div><input type="number" class="hd2" name="attr_red_chest_pow" />
<div class="hd1">red_stomach_pow</div><input type="number" class="hd2" name="attr_red_stomach_pow" />
<div class="hd1">red_vitals_pow</div><input type="number" class="hd2" name="attr_red_vitals_pow" />
<div class="hd1">red_thighs_pow</div><input type="number" class="hd2" name="attr_red_thighs_pow" />
<div class="hd1">red_legs_pow</div><input type="number" class="hd2" name="attr_red_legs_pow" />
<div class="hd1">red_feet_pow</div><input type="number" class="hd2" name="attr_red_feet_pow" />
<div class="hd1">psl_ocv_pow</div><input type="number" class="hd2" name="attr_psl_ocv_pow" />
<div class="hd1">psl_dcv_pow</div><input type="number" class="hd2" name="attr_psl_dcv_pow" />
<div class="hd1">psl_rmod_pow</div><input type="number" class="hd2" name="attr_psl_rmod_pow" />
</div><!-- end sub-section -->
</div><!-- end section -->
</div><!-- end column-50 -->
<div class="column-50">
<div class="section">
<div class="section-title">Debug</div>
<div class="sub-section">
<div class="hd1">debug0</div><input type="text" class="hd2" name="attr_debug0" />
<div class="hd1">debug1</div><input type="text" class="hd2" name="attr_debug1" />
<div class="hd1">debug2</div><input type="text" class="hd2" name="attr_debug2" />
<div class="hd1">debug3</div><input type="text" class="hd2" name="attr_debug3" />
<div class="hd1">debug4</div><input type="text" class="hd2" name="attr_debug4" />
</div><!-- end sub-section -->
</div><!-- end section -->
<div class="section">
<div class="section-title">Defenses</div>
<div class="sub-section">
<div class="hd1">rpd</div><input type="number" class="hd2" name="attr_rpd" />
<div class="hd1">epd</div><input type="number" class="hd2" name="attr_red" />
<div class="hd1">MDEF</div><input type="number" class="hd2" name="attr_mdef" />
<div class="hd1">PDEF</div><input type="number" class="hd2" name="attr_pdef" />
<div class="hd1">FDEF</div><input type="number" class="hd2" name="attr_fdef" />
</div><!-- end sub-section -->
</div><!-- end section -->
<div class="section">
<div class="section-title">Characteristic &amp; Skill Rolls</div>
<div class="sub-section">
<div class="hd1">str_roll_pow</div><input type="number" class="hd2" name="attr_str_roll_pow" />
<div class="hd1">dex_roll_pow</div><input type="number" class="hd2" name="attr_dex_roll_pow" />
<div class="hd1">con_roll_pow</div><input type="number" class="hd2" name="attr_con_roll_pow" />
<div class="hd1">int_roll_pow</div><input type="number" class="hd2" name="attr_int_roll_pow" />
<div class="hd1">ego_roll_pow</div><input type="number" class="hd2" name="attr_ego_roll_pow" />
<div class="hd1">pre_roll_pow</div><input type="number" class="hd2" name="attr_pre_roll_pow" />
</div><!-- end sub-section -->
</div><!-- end section -->
<div class="section">
<div class="section-title">Skill Levels</div>
<div class="sub-section">
<div class="hd1">skill_levels</div><input type="number" class="hd2" name="attr_skill_levels" />
<div class="hd1">combat_levels_ocv</div><input type="number" class="hd2" name="attr_combat_levels_ocv" />
<div class="hd1">combat_levels_dcv</div><input type="number" class="hd2" name="attr_combat_levels_dcv" />
<div class="hd1">combat_levels_omcv</div><input type="number" class="hd2" name="attr_combat_levels_omcv" />
<div class="hd1">combat_levels_dmcv</div><input type="number" class="hd2" name="attr_combat_levels_dmcv" />
<div class="hd1">combat_levels_dc</div><input type="number" class="hd2" name="attr_combat_levels_dc" />
<div class="hd1">penalty_levels_ocv</div><input type="number" class="hd2" name="attr_penalty_levels_ocv" />
<div class="hd1">penalty_levels_dcv</div><input type="number" class="hd2" name="attr_penalty_levels_dcv" />
<div class="hd1">penalty_levels_rmod</div><input type="number" class="hd2" name="attr_penalty_levels_rmod" />
</div><!-- end sub-section -->
</div><!-- end section -->
<div class="section">
<div class="section-title">Combat Modifiers</div>
<div class="sub-section">
<div class="hd1">maneuver_in_use</div><input type="text" class="hd2" name="attr_maneuver_in_use" />
<div class="hd1">maneuver_ocv</div><input type="number" class="hd2" name="attr_maneuver_ocv" />
<div class="hd1">maneuver_dcv</div><input type="number" class="hd2" name="attr_maneuver_dcv" />
<div class="hd1">maneuver_rmod</div><input type="number" class="hd2" name="attr_maneuver_rmod" />
<div class="hd1">maneuver_half_dcv</div><input type="number" class="hd2" name="attr_maneuver_half_dcv" />
<div class="hd1">maneuver_dc</div><input type="number" class="hd2" name="attr_maneuver_dc" />
<div class="hd1">range_ocv</div><input type="number" class="hd2" name="attr_range_ocv" />
<div class="hd1">ocv_modifiers</div><input type="number" class="hd2" name="attr_ocv_modifiers" />
</div><!-- end sub-section -->
</div><!-- end section -->
<div class="section">
<div class="section-title">Other</div>
<div class="sub-section">
<div class="hd1">hit_location_roll</div><input type="text" class="hd2" name="attr_hit_location_roll" />
</div><!-- end sub-section -->
</div><!-- end section -->
</div><!-- end column-50 -->
</div><!-- end page hidden -->
</div>
<!-- end tabbed-content -->
<!-- ------------------------- -->
<!-- -- END CHARACTER SHEET -- -->
<!-- ------------------------- -->
<script type="text/worker">
var speed_chart = [
//segment 0 1 2 3 4 5 6 7 8 9 10 11 12 speed
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], // 0
[ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], // 1
[ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], // 2
[ 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1], // 3
[ 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1], // 4
[ 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1], // 5
[ 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], // 6
[ 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1], // 7
[ 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1], // 8
[ 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1], // 9
[ 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1], // 10
[ 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], // 11
[ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] // 12
];
/* array of the 16 preset maneuvers */
var maneuvers = [
{ name: "None", ocv: "", dcv: "+0", damage: "" },
{ name: "Block", ocv: "+0", dcv: "+0", damage: "" },
{ name: "Brace", ocv: "+2", dcv: "\u00BD", damage: "" },
{ name: "Disarm", ocv: "-2", dcv: "+0", damage: "" },
{ name: "Dodge", ocv: "", dcv: "+3", damage: "" },
{ name: "Grab", ocv: "-1", dcv: "-2", damage: "" },
{ name: "Grab By", ocv: "-3", dcv: "-4", damage: "+v/10" },
{ name: "Haymaker", ocv: "+0", dcv: "-5", damage: "+4DC" },
{ name: "Move By" , ocv: "-2", dcv: "-2", damage: "+v/10" },
{ name: "Move Through", ocv: "-v/10", dcv: "-3", damage: "+v/6" },
{ name: "Multiple Attack", ocv: "-2", dcv: "\u00BD", damage: "" },
{ name: "Set", ocv: "+1", dcv: "+0", damage: "" },
{ name: "Shove", ocv: "-1", dcv: "-1", damage: "" },
{ name: "Strike", ocv: "+0", dcv: "+0", damage: "" },
{ name: "Throw", ocv: "+0", dcv: "+0", damage: "" },
{ name: "Trip", ocv: "-1", dcv: "-2", damage: "" }
];
/* compute lift based on STR */
var getLift = function(str) {
var lift = [
{ n: 0, t: "0kg" },
{ n: 1, t: "8kg" },
{ n: 2, t: "16kg" },
{ n: 3, t: "25kg" },
{ n: 4, t: "38kg" },
{ n: 5, t: "50kg" },
{ n: 8, t: "75kg" },
{ n: 10, t: "100kg" },
{ n: 13, t: "150kg" },
{ n: 15, t: "200kg" },
{ n: 18, t: "300kg" },
{ n: 20, t: "400kg" },
{ n: 23, t: "600kg" },
{ n: 25, t: "800kg" },
{ n: 28, t: "1,200kg" },
{ n: 30, t: "1,600kg" },
{ n: 35, t: "3,200kg" },
{ n: 40, t: "6,400kg" },
{ n: 45, t: "12.5 tons" },
{ n: 50, t: "25 tons" },
{ n: 55, t: "50 tons" },
{ n: 60, t: "100 tons" },
{ n: 65, t: "200 tons" },
{ n: 70, t: "400 tons" },
{ n: 75, t: "800 tons" },
{ n: 80, t: "1.6 ktons" },
{ n: 85, t: "3.2 ktons" },
{ n: 90, t: "6.4 ktons" },
{ n: 95, t: "12.5 ktons" },
{ n: 100, t: "25 ktons" }
];
var x = 0;
if( str > 95 ) {
/* x will be the tonnes */
x = Math.pow( 2, Math.floor( Math.floor((str-95)/5) ) ) * 12.5;
return x.toString() + " ktons";
} else {
for( var i=0; i<lift.length; i++ ) {
if( str < lift[i].n ) {
/* x will be the index of life[] */
x = (i-1);
break;
}
}
}
return lift[x].t;
}
/* Hero system 6 uses funky rounding. It only considers the tenths digit. */
/* .6 to .9 rounds up. .1 to .4 rounds down. .5 rounds in the player's */
/* favor. This is weird. It means that if a number comes out to 1.59, it */
/* it will round down to 1 if that is in the player's favor. So I have to */
/* write my own rounding functions to accommodate this "feature". */
var roundup = function(n) {
if(n>0) return Math.floor(n+0.5);
else return Math.ceil(n-0.4);
}
var rounddown = function(n) {
return -roundup(-n);
}
/* accepts string. if the string is whole number, */
/* returns the value. otherwise, returns 0 */
var checkNum = function(s) {
p = /^\s*([+-])?\s*([0-9][0-9])\s*$/;
if( p.test(s) ) return parseInt(s.replace(p,"$1$2"),10)||0;
return 0;
};
/* strips out the row id from repeating section names */
/* */
/* example: */
/* */
/* s = repeating_powers_-LDwS46ZfyyU6EOYUjLL_attack_dice */
/* */
/* returns = -LDwS46ZfyyU6EOYUjLL */
var getRowId = function(s) {
return s.replace(/^[^_]*_[^_]*_(-[^_]*)_.*$/,'$1');
}
/* converts active points to damage dice, either */
/* as displayable text ("1½d6") or suitable for us */
/* in a /roll statment ("1d6+1d3"). */
/* */
/* ap : active points in the attack */
/* cost : ap cost per die (3, 5, 6, 10, or 15) */
/* format : "dice" = rollable format "1d6+1d3" */
/* "text" = display format "1½d6" */
/* option : optional parameter used for killing */
/* attacks. What type of die is bought */
/* with 10pts. */
/* "half" = 10pts buys ½d6 */
/* "-1" = 10pts buys 1d6-1 */
var getDice = function( ap, cost, format, option ) {
if( typeof option == "undefined" || option == null ) {
option = "half";
}
var points = ap; /* points left */
var reverse = false; /* used if the ap is negative and the result is negative (-2d6) */
var full = 0; /* full dice */
var half = 0; /* half dice */
var pip = 0; /* 1 pip, can be +1, 0, or -1 */
var hcost;
var pcost;
if( ap == "" ) ap = 0;
if( ap < 0 ) {
ap = (-ap);
reverse = true;
}
switch( cost ) {
case 3:
hcost = 2;
pcost =1;
break;
case 10:
hcost = 5;
pcost = 2;
break;
case 15:
hcost = 10;
pcost = 5;
break;
default:
hcost = 3;
pcost = 2;
break;
}
/* the math */
full = Math.floor(ap/cost);
ap -= (full*cost);
if( ap >= hcost ) {
half = 1;
} else if ( ap >= pcost ) {
pip = 1;
}
if( cost == 15 && half == 1 && option == "-1" ) {
full += 1;
half = 0;
pip = (-1);
}
/* prep return values */
var dice = "";
switch( format ) {
case "dice":
if ( full > 0 ) dice = full + "d6";
if ( dice != "" && half == 1 ) dice = dice + "+";
if ( half == 1 ) dice = dice + "1d3";
if ( pip == 1 ) {
if( dice == "" ) dice = "1";
else dice = dice + "+1";
} else if ( pip == (-1) ) {
if( dice == "" ) dice = "-1";
else dice = dice + "-1";
}
break;
case "text":
if ( full > 0 ) dice = full;
if ( half == 1 ) dice = dice + "\u00BD";
if ( dice != "" ) dice = dice + "d6";
if ( pip == 1 ) {
if( dice == "" ) dice = "1";
else dice = dice + "+1";
} else if ( pip == (-1) ) {
if( dice == "" ) dice = "-1";
else dice = dice + "-1";
}
break;
}
if( dice == "" ) return " ";
if( ! reverse ) return dice;
return "-(" + dice + ")";
}
var setSTR = function() {
getAttrs(["str_base", "str_pow", "str_roll_pow", "str_reduced_end_text", "option_str_end_cost"], function(v) {
var strength = (parseInt(v["str_base"],10)||0) + (parseInt(v["str_pow"],10)||0);
var bonus = roundup( strength/5 );
var str_reduced_end = 1;
var str_end_cost = parseInt(v["option_str_end_cost"],10)||0;
var str_end;
switch( v[ "str_reduced_end_text" ]){
case "Normal":
str_reduced_end = 1;
str_end = rounddown(strength*str_reduced_end/str_end_cost);
if( str_end == 0 ) str_end = 1;
break;
case "\u00BD END":
str_reduced_end = .5;
str_end = rounddown(strength*str_reduced_end/str_end_cost);
if( str_end == 0 ) str_end = 1;
break;
case "0 END":
str_reduced_end = 0;
str_end = 0;
break;
}
var formula = "&{template:hero6template} " +
"{{charname=@{character_name}}} " +
"{{action=Strength Roll}} " +
"{{roll=[[3d6]]}} " +
"{{target=" + (9 + bonus + v[ "str_roll_pow" ]) + "}}";
setAttrs({
STR: strength,
str_roll_show: 9 + bonus + v[ "str_roll_pow" ] + "-",
str_roll_formula: formula,
hth: getDice( strength, 5, "text" ),
lift: getLift( strength ),
str_reduced_end: str_reduced_end,
str_end: str_end
});
});
};
on("change:str_base change:str_pow change:str_roll_pow change:str_reduced_end_text change:option_str_end_cost", function() { setSTR(); });
var setDEX = function() {
getAttrs(["dex_base", "dex_pow", "dex_roll_pow"], function(v) {
var dexterity = (parseInt(v["dex_base"],10)||0) + (parseInt(v["dex_pow"],10)||0);
var bonus = roundup( dexterity/5 );
var formula = "&{template:hero6template} " +
"{{charname=@{character_name}}} " +
"{{action=Dexterity Roll}} " +
"{{roll=[[3d6]]}} " +
"{{target=" + (9 + bonus + v[ "dex_roll_pow" ]) + "}}";
setAttrs({
DEX: dexterity,
dex_roll_show: 9 + bonus + v[ "dex_roll_pow" ] + "-",
dex_roll_formula: formula
});
});
};
on("change:dex_base change:dex_pow change:dex_roll_pow", function() { setDEX(); });
var setCON = function() {
getAttrs(["con_base", "con_pow", "con_roll_pow"], function(v) {
var constitution = (parseInt(v["con_base"],10)||0) + (parseInt(v["con_pow"],10)||0);
var bonus = roundup( constitution/5 );
var formula = "&{template:hero6template} " +
"{{charname=@{character_name}}} " +
"{{action=Constitution Roll}} " +
"{{roll=[[3d6]]}} " +
"{{target=" + (9 + bonus + v[ "con_roll_pow" ]) + "}}";
setAttrs({
CON: constitution,
con_roll_show: 9 + bonus + v[ "con_roll_pow" ] + "-",
con_roll_formula: formula
});
});
};
on("change:con_base change:con_pow change:con_roll_pow", function() { setCON(); });
var setINT = function() {
getAttrs(["int_base", "int_pow", "int_roll_pow", "perception_increase"], function(v) {
var int_base = parseInt(v["int_base"],10)||0;
var int_pow = parseInt(v["int_pow"],10)||0;
var int_roll_pow = parseInt(v["int_roll_pow"],10)||0;
var per_increase = parseInt(v["perception_increase"],10)||0;
var intelligence = int_base + int_pow;
var bonus = roundup( intelligence/5 );
var int_formula = "&{template:hero6template}" +
" {{charname=@{character_name}}}" +
" {{action=Intelligence Roll}}" +
" {{roll=[[3d6]]}}" +
" {{target=" + (9 + bonus + int_roll_pow ) + "}}";
var per_formula = "&{template:hero6template}" +
" {{charname=@{character_name}}}" +
" {{action=Perception Roll}}" +
" {{roll=[[3d6]]}}" +
" {{target=" + (9 + bonus + per_increase ) + "}}" +
" {{base=9}} {{stat=" + bonus + "}}";
if( per_increase > 0 ) per_formula += " {{inc=" + per_increase + "}}";
setAttrs({
INT: intelligence,
int_roll_show: ( 9 + bonus + int_roll_pow ) + "-",
int_roll_formula: int_formula,
perception: ( 9 + bonus + per_increase ) + "-",
perception_roll_formula: per_formula
});
});
};
on("change:int_base change:int_pow change:int_roll_pow change:perception_increase", function() { setINT(); });
var setEGO = function() {
getAttrs(["ego_base", "ego_pow", "ego_roll_pow"], function(v) {
var ego = (parseInt(v["ego_base"],10)||0) + (parseInt(v["ego_pow"],10)||0);
var bonus = roundup( ego/5 );
var formula = "&{template:hero6template} " +
"{{charname=@{character_name}}} " +
"{{action=Ego Roll}} " +
"{{roll=[[3d6]]}} " +
"{{target=" + (9 + bonus + v[ "ego_roll_pow" ]) + "}}";
setAttrs({
EGO: ego,
ego_roll_show: 9 + bonus + v[ "ego_roll_pow" ] + "-",
ego_roll_formula: formula
});
});
};
on("change:ego_base change:ego_pow change:ego_roll_pow", function() { setEGO(); });
var setPRE = function() {
getAttrs(["pre_base", "pre_pow", "pre_roll_pow"], function(v) {
var presence = (parseInt(v["pre_base"],10)||0) + (parseInt(v["pre_pow"],10)||0);
var bonus = roundup( presence/5 );
var formula = "&{template:hero6template} " +
"{{charname=@{character_name}}} " +
"{{action=Presence Roll}} " +
"{{roll=[[3d6]]}} " +
"{{target=" + (9 + bonus + v[ "pre_roll_pow" ]) + "}}";
setAttrs({
PRE: presence,
pre_roll_show: 9 + bonus + v[ "pre_roll_pow" ] + "-",
pre_roll_formula: formula,
pre_attack: getDice( presence, 5, "text" )
});
});
};
on("change:pre_base change:pre_pow change:pre_roll_pow", function() { setPRE(); });
var setSPD = function() {
getAttrs(["spd_base", "spd_pow"], function(v) {
var speed = (parseInt(v["spd_base"],10)||0) + (parseInt(v["spd_pow"],10)||0);
var phases;
var very_fast = 0;
if( speed == 12 ) phases = 12;
else phases = (speed % 12);
if( speed > 12 ) very_fast = 1;
setAttrs({
SPD: speed,
fast: very_fast,
segment1: speed_chart[phases][1],
segment2: speed_chart[phases][2],
segment3: speed_chart[phases][3],
segment4: speed_chart[phases][4],
segment5: speed_chart[phases][5],
segment6: speed_chart[phases][6],
segment7: speed_chart[phases][7],
segment8: speed_chart[phases][8],
segment9: speed_chart[phases][9],
segment10: speed_chart[phases][10],
segment11: speed_chart[phases][11],
segment12: speed_chart[phases][12]
});
});
};
on("change:spd_base change:spd_pow", function() { setSPD(); });
var setREC = function() {
getAttrs(["rec_base", "rec_pow"], function(v) {
setAttrs({
REC: (parseInt(v["rec_base"],10)||0) + (parseInt(v["rec_pow"],10)||0)
});
});
};
on("change:rec_base change:rec_pow", function() { setREC(); });
var setEND = function() {
getAttrs(["end_base", "end_pow"], function(v) {
setAttrs({
END_max: (parseInt(v["end_base"],10)||0) + (parseInt(v["end_pow"],10)||0)
});
});
};
on("change:end_base change:end_pow", function() { setEND(); });
var setBODY = function() {
getAttrs(["body_base", "body_pow"], function(v) {
setAttrs({
BODY_max: (parseInt(v["body_base"],10)||0) + (parseInt(v["body_pow"],10)||0)
});
});
};
on("change:body_base change:body_pow", function() { setBODY(); });
var setSTUN = function() {
getAttrs(["stun_base", "stun_pow"], function(v) {
setAttrs({
STUN_max: (parseInt(v["stun_base"],10)||0) + (parseInt(v["stun_pow"],10)||0)
});
});
};
on("change:stun_base change:stun_pow", function() { setSTUN(); });
/* set the characteristic display of OCV, which is base + powers only */
/* no combat skills, maneuvers, other other modifiers. */
var setCharOCV = function() {
getAttrs(["ocv_base", "ocv_pow"], function(v) {
setAttrs({
ocv_show: (parseInt(v["ocv_base"],10)||0) + (parseInt(v["ocv_pow"],10)||0)
});
});
};
on("change:ocv_base change:ocv_pow", function() { setCharOCV(); });
/* set the characteristic display of DCV, which is base + powers only */
/* no combat skills, maneuvers, other other modifiers. */
var setCharDCV = function() {
getAttrs(["dcv_base", "dcv_pow"], function(v) {
setAttrs({
dcv_show: (parseInt(v["dcv_base"],10)||0) + (parseInt(v["dcv_pow"],10)||0)
});
});
};
on("change:dcv_base change:dcv_pow", function() { setCharDCV(); });
var setOMCV = function() {
getAttrs(["omcv_base", "omcv_pow", "combat_levels_omcv"], function(v) {
setAttrs({
OMCV: (parseInt(v["omcv_base"],10)||0) + (parseInt(v["omcv_pow"],10)||0) + (parseInt(v["combat_levels_omcv"],10)||0),
omcv_show: (parseInt(v["omcv_base"],10)||0) + (parseInt(v["omcv_pow"],10)||0)
});
});
};
on("change:omcv_base change:omcv_pow change:combat_levels_omcv", function() { setOMCV(); });
var setDMCV = function() {
getAttrs(["dmcv_base", "dmcv_pow", "combat_levels_dmcv"], function(v) {
setAttrs({
DMCV: (parseInt(v["dmcv_base"],10)||0) + (parseInt(v["dmcv_pow"],10)||0) + (parseInt(v["combat_levels_dmcv"],10)||0),
dmcv_show: (parseInt(v["dmcv_base"],10)||0) + (parseInt(v["dmcv_pow"],10)||0)
});
});
};
on("change:dmcv_base change:dmcv_pow change:combat_levels_dmcv", function() { setDMCV(); });
var setPD = function() {
getAttrs(["pd_base", "pd_pow"], function(v) {
setAttrs({
PD: (parseInt(v["pd_base"],10)||0) + (parseInt(v["pd_pow"],10)||0)
});
});
};
on("change:pd_base change:pd_pow", function() { setPD(); });
var setRPD = function() {
getAttrs(["rpd_pow"], function(v) {
setAttrs({
rpd: (parseInt(v["rpd_pow"],10)||0)
});
});
};
on("change:rpd_pow", function() { setRPD(); });
/* set the location specific PD levels */
var setHitLocPD = function() {
getAttrs(["pd", "pd_head_pow", "pd_hands_pow", "pd_arms_pow", "pd_shoulders_pow", "pd_chest_pow", "pd_stomach_pow", "pd_vitals_pow", "pd_thighs_pow", "pd_legs_pow", "pd_feet_pow"], function(v) {
setAttrs({
pd_head: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_head_pow"],10)||0),
pd_hands: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_hands_pow"],10)||0),
pd_arms: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_arms_pow"],10)||0),
pd_shoulders: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_shoulders_pow"],10)||0),
pd_chest: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_chest_pow"],10)||0),
pd_stomach: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_stomach_pow"],10)||0),
pd_vitals: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_vitals_pow"],10)||0),
pd_thighs: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_thighs_pow"],10)||0),
pd_legs: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_legs_pow"],10)||0),
pd_feet: (parseInt(v["pd"],10)||0) + (parseInt(v["pd_feet_pow"],10)||0)
});
});
};
on("change:pd change:pd_head_pow change:pd_hands_pow change:pd_arms_pow change:pd_shoulders_pow change:pd_chest_pow change:pd_stomach_pow change:pd_vitals_pow change:pd_thighs_pow change:pd_legs_pow change:pd_feet_pow", function() { setHitLocPD(); });
/* set the location specific rPD levels */
var setHitLocRPD = function() {
getAttrs(["rpd_pow", "rpd_head_pow", "rpd_hands_pow", "rpd_arms_pow", "rpd_shoulders_pow", "rpd_chest_pow", "rpd_stomach_pow", "rpd_vitals_pow", "rpd_thighs_pow", "rpd_legs_pow", "rpd_feet_pow"], function(v) {
setAttrs({
rpd_head: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_head_pow"],10)||0),
rpd_hands: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_hands_pow"],10)||0),
rpd_arms: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_arms_pow"],10)||0),
rpd_shoulders: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_shoulders_pow"],10)||0),
rpd_chest: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_chest_pow"],10)||0),
rpd_stomach: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_stomach_pow"],10)||0),
rpd_vitals: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_vitals_pow"],10)||0),
rpd_thighs: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_thighs_pow"],10)||0),
rpd_legs: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_legs_pow"],10)||0),
rpd_feet: (parseInt(v["rpd_pow"],10)||0) + (parseInt(v["rpd_feet_pow"],10)||0)
});
});
};
on("change:rpd_pow change:rpd_head_pow change:rpd_hands_pow change:rpd_arms_pow change:rpd_shoulders_pow change:rpd_chest_pow change:rpd_stomach_pow change:rpd_vitals_pow change:rpd_thighs_pow change:rpd_legs_pow change:rpd_feet_pow", function() { setHitLocRPD(); });
var setED = function() {
getAttrs(["ed_base", "ed_pow"], function(v) {
setAttrs({
ED: (parseInt(v["ed_base"],10)||0) + (parseInt(v["ed_pow"],10)||0)
});
});
};
on("change:ed_base change:ed_pow", function() { setED(); });
var setRED = function() {
getAttrs(["red_pow"], function(v) {
setAttrs({
red: (parseInt(v["red_pow"],10)||0)
});
});
};
on("change:red_pow", function() { setRED(); });
/* set the location specific ED levels */
var setHitLocED = function() {
getAttrs(["ed", "ed_head_pow", "ed_hands_pow", "ed_arms_pow", "ed_shoulders_pow", "ed_chest_pow", "ed_stomach_pow", "ed_vitals_pow", "ed_thighs_pow", "ed_legs_pow", "ed_feet_pow"], function(v) {
setAttrs({
ed_head: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_head_pow"],10)||0),
ed_hands: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_hands_pow"],10)||0),
ed_arms: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_arms_pow"],10)||0),
ed_shoulders: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_shoulders_pow"],10)||0),
ed_chest: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_chest_pow"],10)||0),
ed_stomach: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_stomach_pow"],10)||0),
ed_vitals: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_vitals_pow"],10)||0),
ed_thighs: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_thighs_pow"],10)||0),
ed_legs: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_legs_pow"],10)||0),
ed_feet: (parseInt(v["ed"],10)||0) + (parseInt(v["ed_feet_pow"],10)||0)
});
});
};
on("change:ed change:ed_head_pow change:ed_hands_pow change:ed_arms_pow change:ed_shoulders_pow change:ed_chest_pow change:ed_stomach_pow change:ed_vitals_pow change:ed_thighs_pow change:ed_legs_pow change:ed_feet_pow", function() { setHitLocED(); });
/* set the location specific rED levels */
var setHitLocRED = function() {
getAttrs(["red_pow", "red_head_pow", "red_hands_pow", "red_arms_pow", "red_shoulders_pow", "red_chest_pow", "red_stomach_pow", "red_vitals_pow", "red_thighs_pow", "red_legs_pow", "red_feet_pow"], function(v) {
setAttrs({
red_head: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_head_pow"],10)||0),
red_hands: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_hands_pow"],10)||0),
red_arms: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_arms_pow"],10)||0),
red_shoulders: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_shoulders_pow"],10)||0),
red_chest: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_chest_pow"],10)||0),
red_stomach: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_stomach_pow"],10)||0),
red_vitals: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_vitals_pow"],10)||0),
red_thighs: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_thighs_pow"],10)||0),
red_legs: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_legs_pow"],10)||0),
red_feet: (parseInt(v["red_pow"],10)||0) + (parseInt(v["red_feet_pow"],10)||0)
});
});
};
on("change:red_pow change:red_head_pow change:red_hands_pow change:red_arms_pow change:red_shoulders_pow change:red_chest_pow change:red_stomach_pow change:red_vitals_pow change:red_thighs_pow change:red_legs_pow change:red_feet_pow", function() { setHitLocRED(); });
var setMDEF = function() {
getAttrs(["mdef_pow"], function(v) {
setAttrs({
mdef: (parseInt(v["mdef_pow"],10)||0)
});
});
};
on("change:mdef_pow", function() { setMDEF(); });
var setPDEF = function() {
getAttrs(["pdef_pow"], function(v) {
setAttrs({
pdef: (parseInt(v["pdef_pow"],10)||0)
});
});
};
on("change:pdef_pow", function() { setPDEF(); });
var setFDEF = function() {
getAttrs(["fdef_pow"], function(v) {
setAttrs({
fdef: (parseInt(v["fdef_pow"],10)||0)
});
});
};
on("change:fdef_pow", function() { setFDEF(); });
var setPowerEnhancements = function() {
getSectionIDs("repeating_powers", function(ids) {
/* object to collect summed values */
var powers = {
none: 0,
OCV : 0, DCV : 0, OMCV : 0, DMCV : 0,
STR : 0, DEX : 0, CON : 0, INT : 0, EGO : 0, PRE : 0,
SPD : 0, PD : 0, ED : 0, REC : 0, END : 0, BODY : 0, STUN : 0,
STR_roll : 0, DEX_roll : 0, CON_roll : 0, INT_roll : 0, EGO_roll : 0, PRE_roll : 0,
psl_ocv : 0, psl_dcv : 0, psl_rmod : 0,
rPD : 0, rED : 0, MDEF : 0, PDEF : 0, FDEF : 0,
PD_head : 0, PD_hands : 0, PD_arms : 0, PD_shoulders : 0, PD_chest : 0, PD_stomach : 0, PD_vitals : 0, PD_thighs : 0, PD_legs : 0, PD_feet : 0,
rPD_head : 0, rPD_hands : 0, rPD_arms : 0, rPD_shoulders : 0, rPD_chest : 0, rPD_stomach : 0, rPD_vitals : 0, rPD_thighs : 0, rPD_legs : 0, rPD_feet : 0,
ED_head : 0, ED_hands : 0, ED_arms : 0, ED_shoulders : 0, ED_chest : 0, ED_stomach : 0, ED_vitals : 0, ED_thighs : 0, ED_legs : 0, ED_feet : 0,
rED_head : 0, rED_hands : 0, rED_arms : 0, rED_shoulders : 0, rED_chest : 0, rED_stomach : 0, rED_vitals : 0, rED_thighs : 0, rED_legs : 0, rED_feet : 0,
};
var saveEnhancements = function() {
setAttrs({
ocv_pow : powers[ "OCV" ],
dcv_pow : powers[ "DCV" ],
omcv_pow : powers[ "OMCV" ],
dmcv_pow : powers[ "DMCV" ],
str_pow : powers[ "STR" ],
dex_pow : powers[ "DEX" ],
con_pow : powers[ "CON" ],
int_pow : powers[ "INT" ],
ego_pow : powers[ "EGO" ],
pre_pow : powers[ "PRE" ],
spd_pow : powers[ "SPD" ],
pd_pow : powers[ "PD" ],
ed_pow : powers[ "ED" ],
rec_pow : powers[ "REC" ],
end_pow : powers[ "END" ],
body_pow : powers[ "BODY" ],
stun_pow : powers[ "STUN" ],
str_roll_pow : powers[ "STR_roll" ],
dex_roll_pow : powers[ "DEX_roll" ],
con_roll_pow : powers[ "CON_roll" ],
int_roll_pow : powers[ "INT_roll" ],
ego_roll_pow : powers[ "EGO_roll" ],
pre_roll_pow : powers[ "PRE_roll" ],
psl_ocv_pow : powers[ "psl_ocv" ],
psl_dcv_pow : powers[ "psl_dcv" ],
psl_rmod_pow : powers[ "psl_rmod" ],
rpd_pow : powers[ "rPD" ],
red_pow : powers[ "rED" ],
mdef_pow : powers[ "MDEF" ],
pdef_pow : powers[ "PDEF" ],
fdef_pow : powers[ "FDEF" ],
pd_head_pow : powers[ "PD_head" ],
pd_hands_pow : powers[ "PD_hands" ],
pd_arms_pow : powers[ "PD_arms" ],
pd_shoulders_pow : powers[ "PD_shoulders" ],
pd_chest_pow : powers[ "PD_chest" ],
pd_stomach_pow : powers[ "PD_stomach" ],
pd_vitals_pow : powers[ "PD_vitals" ],
pd_thighs_pow : powers[ "PD_thighs" ],
pd_legs_pow : powers[ "PD_legs" ],
pd_feet_pow : powers[ "PD_feet" ],
rpd_head_pow : powers[ "rPD_head" ],
rpd_hands_pow : powers[ "rPD_hands" ],
rpd_arms_pow : powers[ "rPD_arms" ],
rpd_shoulders_pow : powers[ "rPD_shoulders" ],
rpd_chest_pow : powers[ "rPD_chest" ],
rpd_stomach_pow : powers[ "rPD_stomach" ],
rpd_vitals_pow : powers[ "rPD_vitals" ],
rpd_thighs_pow : powers[ "rPD_thighs" ],
rpd_legs_pow : powers[ "rPD_legs" ],
rpd_feet_pow : powers[ "rPD_feet" ],
ed_head_pow : powers[ "ED_head" ],
ed_hands_pow : powers[ "ED_hands" ],
ed_arms_pow : powers[ "ED_arms" ],
ed_shoulders_pow : powers[ "ED_shoulders" ],
ed_chest_pow : powers[ "ED_chest" ],
ed_stomach_pow : powers[ "ED_stomach" ],
ed_vitals_pow : powers[ "ED_vitals" ],
ed_thighs_pow : powers[ "ED_thighs" ],
ed_legs_pow : powers[ "ED_legs" ],
ed_feet_pow : powers[ "ED_feet" ],
red_head_pow : powers[ "rED_head" ],
red_hands_pow : powers[ "rED_hands" ],
red_arms_pow : powers[ "rED_arms" ],
red_shoulders_pow : powers[ "rED_shoulders" ],
red_chest_pow : powers[ "rED_chest" ],
red_stomach_pow : powers[ "rED_stomach" ],
red_vitals_pow : powers[ "rED_vitals" ],
red_thighs_pow : powers[ "rED_thighs" ],
red_legs_pow : powers[ "rED_legs" ],
red_feet_pow : powers[ "rED_feet" ]
});
};
var addBonus = function( active, name, bonus ) {
if( active == 1 ) {
switch(name){
case "OCV":
powers[ "OCV" ] += (parseInt(bonus,10)||0);
break;
case "DCV":
powers[ "DCV" ] += (parseInt(bonus,10)||0);
break;
case "OMCV":
powers[ "OMCV" ] += (parseInt(bonus,10)||0);
break;
case "DMCV":
powers[ "DMCV" ] += (parseInt(bonus,10)||0);
break;
case "STR":
powers[ "STR" ] += (parseInt(bonus,10)||0);
break;
case "DEX":
powers[ "DEX" ] += (parseInt(bonus,10)||0);
break;
case "CON":
powers[ "CON" ] += (parseInt(bonus,10)||0);
break;
case "INT":
powers[ "INT" ] += (parseInt(bonus,10)||0);
break;
case "EGO":
powers[ "EGO" ] += (parseInt(bonus,10)||0);
break;
case "PRE":
powers[ "PRE" ] += (parseInt(bonus,10)||0);
break;
case "SPD":
powers[ "SPD" ] += (parseInt(bonus,10)||0);
break;
case "PD":
powers[ "PD" ] += (parseInt(bonus,10)||0);
break;
case "ED":
powers[ "ED" ] += (parseInt(bonus,10)||0);
break;
case "REC":
powers[ "REC" ] += (parseInt(bonus,10)||0);
break;
case "END":
powers[ "END" ] += (parseInt(bonus,10)||0);
break;
case "BODY":
powers[ "BODY" ] += (parseInt(bonus,10)||0);
break;
case "STUN":
powers[ "STUN" ] += (parseInt(bonus,10)||0);
break;
case "STR Roll":
powers[ "STR_roll" ] += (parseInt(bonus,10)||0);
break;
case "DEX Roll":
powers[ "DEX_roll" ] += (parseInt(bonus,10)||0);
break;
case "CON Roll":
powers[ "CON_roll" ] += (parseInt(bonus,10)||0);
break;
case "INT Roll":
powers[ "INT_roll" ] += (parseInt(bonus,10)||0);
break;
case "EGO Roll":
powers[ "EGO_roll" ] += (parseInt(bonus,10)||0);
break;
case "PRE Roll":
powers[ "PRE_roll" ] += (parseInt(bonus,10)||0);
break;
case "PSL OCV":
powers[ "psl_ocv" ] += (parseInt(bonus,10)||0);
break;
case "PSL DCV":
powers[ "psl_dcv" ] += (parseInt(bonus,10)||0);
break;
case "PSL RMOD":
powers[ "psl_rmod" ] += (parseInt(bonus,10)||0);
break;
case "rPD":
powers[ "rPD" ] += (parseInt(bonus,10)||0);
break;
case "rED":
powers[ "rED" ] += (parseInt(bonus,10)||0);
break;
case "Mental Defense":
powers[ "MDEF" ] += (parseInt(bonus,10)||0);
break;
case "Power Defense":
powers[ "PDEF" ] += (parseInt(bonus,10)||0);
break;
case "Flash Defense":
powers[ "FDEF" ] += (parseInt(bonus,10)||0);
break;
case "PD Head":
powers[ "PD_head" ] += (parseInt(bonus,10)||0);
break;
case "PD Hands":
powers[ "PD_hands" ] += (parseInt(bonus,10)||0);
break;
case "PD Arms":
powers[ "PD_arms" ] += (parseInt(bonus,10)||0);
break;
case "PD Shoulders":
powers[ "PD_shoulders" ] += (parseInt(bonus,10)||0);
break;
case "PD Chest":
powers[ "PD_chest" ] += (parseInt(bonus,10)||0);
break;
case "PD Stomach":
powers[ "PD_stomach" ] += (parseInt(bonus,10)||0);
break;
case "PD Vitals":
powers[ "PD_vitals" ] += (parseInt(bonus,10)||0);
break;
case "PD Thighs":
powers[ "PD_thighs" ] += (parseInt(bonus,10)||0);
break;
case "PD Legs":
powers[ "PD_legs" ] += (parseInt(bonus,10)||0);
break;
case "PD Feet":
powers[ "PD_feet" ] += (parseInt(bonus,10)||0);
break;
case "rPD Head":
powers[ "rPD_head" ] += (parseInt(bonus,10)||0);
break;
case "rPD Hands":
powers[ "rPD_hands" ] += (parseInt(bonus,10)||0);
break;
case "rPD Arms":
powers[ "rPD_arms" ] += (parseInt(bonus,10)||0);
break;
case "rPD Shoulders":
powers[ "rPD_shoulders" ] += (parseInt(bonus,10)||0);
break;
case "rPD Chest":
powers[ "rPD_chest" ] += (parseInt(bonus,10)||0);
break;
case "rPD Stomach":
powers[ "rPD_stomach" ] += (parseInt(bonus,10)||0);
break;
case "rPD Vitals":
powers[ "rPD_vitals" ] += (parseInt(bonus,10)||0);
break;
case "rPD Thighs":
powers[ "rPD_thighs" ] += (parseInt(bonus,10)||0);
break;
case "rPD Legs":
powers[ "rPD_legs" ] += (parseInt(bonus,10)||0);
break;
case "rPD Feet":
powers[ "rPD_feet" ] += (parseInt(bonus,10)||0);
break;
case "ED Head":
powers[ "ED_head" ] += (parseInt(bonus,10)||0);
break;
case "ED Hands":
powers[ "ED_hands" ] += (parseInt(bonus,10)||0);
break;
case "ED Arms":
powers[ "ED_arms" ] += (parseInt(bonus,10)||0);
break;
case "ED Shoulders":
powers[ "ED_shoulders" ] += (parseInt(bonus,10)||0);
break;
case "ED Chest":
powers[ "ED_chest" ] += (parseInt(bonus,10)||0);
break;
case "ED Stomach":
powers[ "ED_stomach" ] += (parseInt(bonus,10)||0);
break;
case "ED Vitals":
powers[ "ED_vitals" ] += (parseInt(bonus,10)||0);
break;
case "ED Thighs":
powers[ "ED_thighs" ] += (parseInt(bonus,10)||0);
break;
case "ED Legs":
powers[ "ED_legs" ] += (parseInt(bonus,10)||0);
break;
case "ED Feet":
powers[ "ED_feet" ] += (parseInt(bonus,10)||0);
break;
case "rED Head":
powers[ "rED_head" ] += (parseInt(bonus,10)||0);
break;
case "rED Hands":
powers[ "rED_hands" ] += (parseInt(bonus,10)||0);
break;
case "rED Arms":
powers[ "rED_arms" ] += (parseInt(bonus,10)||0);
break;
case "rED Shoulders":
powers[ "rED_shoulders" ] += (parseInt(bonus,10)||0);
break;
case "rED Chest":
powers[ "rED_chest" ] += (parseInt(bonus,10)||0);
break;
case "rED Stomach":
powers[ "rED_stomach" ] += (parseInt(bonus,10)||0);
break;
case "rED Vitals":
powers[ "rED_vitals" ] += (parseInt(bonus,10)||0);
break;
case "rED Thighs":
powers[ "rED_thighs" ] += (parseInt(bonus,10)||0);
break;
case "rED Legs":
powers[ "rED_legs" ] += (parseInt(bonus,10)||0);
break;
case "rED Feet":
powers[ "rED_feet" ] += (parseInt(bonus,10)||0);
break;
}
}
}
var onLastEnhancement = _.after(ids.length, function () {
saveEnhancements();
});
var getEnhancements = function( n ) {
getAttrs([
"repeating_powers_" + ids[n] + "_power_active",
"repeating_powers_" + ids[n] + "_pow_add_name1", "repeating_powers_" + ids[n] + "_pow_add_bonus1",
"repeating_powers_" + ids[n] + "_pow_add_name2", "repeating_powers_" + ids[n] + "_pow_add_bonus2",
"repeating_powers_" + ids[n] + "_pow_add_name3", "repeating_powers_" + ids[n] + "_pow_add_bonus3",
"repeating_powers_" + ids[n] + "_pow_add_name4", "repeating_powers_" + ids[n] + "_pow_add_bonus4"
], function (v) {
addBonus( v[ "repeating_powers_" + ids[n] + "_power_active" ], v[ "repeating_powers_" + ids[n] + "_pow_add_name1" ], v[ "repeating_powers_" + ids[n] + "_pow_add_bonus1" ] );
addBonus( v[ "repeating_powers_" + ids[n] + "_power_active" ], v[ "repeating_powers_" + ids[n] + "_pow_add_name2" ], v[ "repeating_powers_" + ids[n] + "_pow_add_bonus2" ] );
addBonus( v[ "repeating_powers_" + ids[n] + "_power_active" ], v[ "repeating_powers_" + ids[n] + "_pow_add_name3" ], v[ "repeating_powers_" + ids[n] + "_pow_add_bonus3" ] );
addBonus( v[ "repeating_powers_" + ids[n] + "_power_active" ], v[ "repeating_powers_" + ids[n] + "_pow_add_name4" ], v[ "repeating_powers_" + ids[n] + "_pow_add_bonus4" ] );
onLastEnhancement();
});
}
if( ids.length>0 ) {
for (var i = 0; i < ids.length; i++) {
getEnhancements(i);
}
} else {
saveEnhancements();
}
});
}
on("change:repeating_powers:power_active change:repeating_powers:pow_add_name1 change:repeating_powers:pow_add_bonus1 change:repeating_powers:pow_add_name2 change:repeating_powers:pow_add_bonus2 change:repeating_powers:pow_add_name3 change:repeating_powers:pow_add_bonus3 change:repeating_powers:pow_add_name4 change:repeating_powers:pow_add_bonus4 remove:repeating_powers", function() {
setPowerEnhancements();
});
/* recalc power's active and real points */
on("change:repeating_powers:pow_base_points change:repeating_powers:pow_advantages change:repeating_powers:pow_limitations change:repeating_powers:pow_frame_type change:repeating_powers:end_multiplier", function() {
getAttrs([
"repeating_powers_pow_base_points",
"repeating_powers_pow_advantages",
"repeating_powers_pow_limitations",
"repeating_powers_pow_frame_type",
"repeating_powers_end_multiplier"
], function (v) {
var base = (parseInt( v[ "repeating_powers_pow_base_points" ], 10 )||0);
var advantages = (parseFloat( v[ "repeating_powers_pow_advantages" ] )||0.0);
var advantages_no_reduced_end;
var limitations = (-Math.abs(parseFloat( v[ "repeating_powers_pow_limitations" ] )||0.0));
var frame = v[ "repeating_powers_pow_frame_type" ];
var endx;
switch( v[ "repeating_powers_end_multiplier" ] ) {
case "0 END":
endx = (-.5);
break;
case "\u00BD END":
endx = (-.25);
break;
default:
endx = 0;
}
advantages_no_reduced_end = ( advantages + endx );
if( base < 0 || advantages < 0 || advantages_no_reduced_end < 0 || limitations > 0 || ( frame == "Variable Power Pool" && ( advantages != 0 || limitations != 0 ) ) ) {
setAttrs({
[ "repeating_powers_pow_active_points" ] : 0,
[ "repeating_powers_pow_active_points_no_reduced_end" ] : 0,
[ "repeating_powers_pow_real_points" ] : 0,
[ "repeating_powers_power_real_cost" ] : "???"
});
return;
}
if( base == 0 ) {
setAttrs({
[ "repeating_powers_pow_active_points" ] : 0,
[ "repeating_powers_pow_active_points_no_reduced_end" ] : 0,
[ "repeating_powers_pow_real_points" ] : 0,
[ "repeating_powers_power_real_cost" ] : " "
});
return;
}
var active = rounddown( base * (1 + advantages) );
if( active == 0 ) active = 1;
/* active points for use with Reduced Endurance */
var active_no_reduced_end = rounddown( base * (1 + advantages_no_reduced_end) );
if( active_no_reduced_end == 0 ) active_no_reduced_end = 1;
var real = rounddown( active / (1 - limitations) );
if( real == 0 ) real = 1;
var cost = 0;
setAttrs({
[ "repeating_powers_pow_active_points" ] : active,
[ "repeating_powers_pow_active_points_no_reduced_end" ] : active_no_reduced_end,
[ "repeating_powers_pow_advantages_no_reduced_end" ] : advantages_no_reduced_end,
[ "repeating_powers_pow_real_points" ] : real
});
switch( frame ) {
case "MP Slot, variable":
cost = rounddown( real/5 );
if( cost == 0 ) cost = 1;
setAttrs({
[ "repeating_powers_power_real_cost" ] : cost + "v"
});
break;
case "MP Slot, fixed":
cost = rounddown( real/10 );
if( cost == 0 ) cost = 1;
setAttrs({ [ "repeating_powers_power_real_cost" ] : cost + "f" });
break;
case "VPP Slot":
setAttrs({ [ "repeating_powers_power_real_cost" ] : "(" + real + ")" });
break;
default:
setAttrs({ [ "repeating_powers_power_real_cost" ] : real });
}
});
});
/* recalc endurance costs */
var setEnduranceCosts = function() {
/* create an array of reserves */
getSectionIDs( "repeating_reserves", function(res_ids) {
var reserveArray = [];
/* find the named reserve. return an object */
/* with the properties { name, end, end_max } */
var getReserve = function( reserve_name ) {
for( var k=0; k<reserveArray.length; k++ ) {
if( reserveArray[k].name.toLowerCase() == reserve_name.toLowerCase() ) return reserveArray[k];
}
return null;
}
var recalcEndCosts = function() {
getSectionIDs("repeating_powers", function(ids) {
var setEndurance = function(n) {
getAttrs([
"repeating_powers_" + ids[n] + "_power_name",
"repeating_powers_" + ids[n] + "_pow_active_points_no_reduced_end",
"repeating_powers_" + ids[n] + "_end_multiplier",
"repeating_powers_" + ids[n] + "_power_end_fixed",
"repeating_powers_" + ids[n] + "_attack_uses_str",
"repeating_powers_" + ids[n] + "_attack_str_for_end",
"option_str_end_cost",
"str_reduced_end",
"repeating_powers_" + ids[n] + "_power_end_source",
"repeating_powers_" + ids[n] + "_power_end_reserve_name"
], function (v) {
var active = parseInt( v[ "repeating_powers_" + ids[n] + "_pow_active_points_no_reduced_end" ], 10 )||0;
var end_from_ap = 0;
var multiplier = 0.0;
var end_fixed = parseInt( v[ "repeating_powers_" + ids[n] + "_power_end_fixed" ], 10 )||0;
var end_combined = 0;
var uses_str = parseInt( v[ "repeating_powers_" + ids[n] + "_attack_uses_str" ], 10 )||0;
var str_for_end = parseInt( v[ "repeating_powers_" + ids[n] + "_attack_str_for_end" ], 10 )||0;
var option_str_end_cost = parseInt( v[ "option_str_end_cost" ], 10 )||0;
var str_reduced_end = parseFloat( v[ "str_reduced_end" ] )||0.0;
var end_from_str = 0;
var reserve = getReserve( v[ "repeating_powers_" + ids[n] + "_power_end_reserve_name" ] );
var remaining_charges_text = " ";
if( reserve != null) {
remaining_charges_text = "[" + reserve.end + "]";
}
switch( v[ "repeating_powers_" + ids[n] + "_end_multiplier" ] ) {
/* normal and advantage (reduced end) */
case "0 END":
multiplier = 0;
break
case "\u00BD END": /* ½ END */
multiplier = 0.5;
break
case "1x END":
multiplier = 1;
break
/* limitation (costs end) */
case "no cost":
multiplier = 0;
break;
case "Costs \u00BD":
multiplier = 0.5;
break;
case "Costs 1x":
multiplier = 1;
break;
case "Costs 2x":
multiplier = 2;
break;
case "Costs 3x":
multiplier = 3;
break;
case "Costs 4x":
multiplier = 4;
break;
case "Costs 5x":
multiplier = 5;
break
case "Costs 6x":
multiplier = 6;
break;
case "Costs 7x":
multiplier = 7;
break;
case "Costs 8x":
multiplier = 8;
break;
case "Costs 9x":
multiplier = 9;
break
case "Costs 10x":
multiplier = 10;
break;
default: /* blank */
multiplier = 0;
}
if( multiplier == 0 || active == 0 ) {
end_from_ap = 0;
} else {
end_from_ap = rounddown( active * multiplier / 10 );
if( end_from_ap == 0 ) end_from_ap = 1;
}
end_combined = (0 + end_from_ap + end_fixed);
if( uses_str == 0 || str_for_end == 0 )
end_from_str = 0;
else
end_from_str = rounddown( str_for_end * str_reduced_end / option_str_end_cost );
switch( v[ "repeating_powers_" + ids[n] + "_power_end_source" ] ) {
case "none":
var pre_end_cost = "";
if( end_from_str > 0 ) pre_end_cost += ( "("+end_from_str+")" );
setAttrs({
[ "repeating_powers_" + ids[n] + "_power_end_cost" ] : ( pre_end_cost == "" ? " " : pre_end_cost ),
[ "repeating_powers_" + ids[n] + "_power_end_ap_cost" ] : 0,
[ "repeating_powers_" + ids[n] + "_power_end_str_cost" ] : end_from_str,
[ "repeating_powers_" + ids[n] + "_power_remaining_charges" ] : " "
});
break;
case "Reserve":
setAttrs({
[ "repeating_powers_" + ids[n] + "_power_end_cost" ] : ( end_from_str > 0 ? ( "("+end_from_str+")" ) : "" ) + "[" + end_combined + "]",
[ "repeating_powers_" + ids[n] + "_power_end_ap_cost" ] : end_from_ap,
[ "repeating_powers_" + ids[n] + "_power_end_str_cost" ] : end_from_str,
[ "repeating_powers_" + ids[n] + "_power_remaining_charges" ] : ( end_from_str > 0 ? ( "("+end_from_str+")" ) : "" ) + remaining_charges_text
});
break;
case "Both":
/* it is assumed if you have "Both" an endurance cost and a reserve cost that the */
/* normal endurance comes off the character's END and the fixed is from a reserve. */
/* We display both numbers. */
setAttrs({
[ "repeating_powers_" + ids[n] + "_power_end_cost" ] : end_from_ap + ( end_from_str > 0 ? ( "("+end_from_str+")" ) : "" ) + "[" + end_fixed + "]",
[ "repeating_powers_" + ids[n] + "_power_end_ap_cost" ] : end_from_ap,
[ "repeating_powers_" + ids[n] + "_power_end_str_cost" ] : end_from_str,
[ "repeating_powers_" + ids[n] + "_power_remaining_charges" ] : end_from_ap + ( end_from_str > 0 ? ( "("+end_from_str+")" ) : "" ) + remaining_charges_text
});
break;
case "END":
default:
setAttrs({
[ "repeating_powers_" + ids[n] + "_power_end_cost" ] : end_combined + ( end_from_str > 0 ? ( "("+end_from_str+")" ) : "" ),
[ "repeating_powers_" + ids[n] + "_power_end_ap_cost" ] : end_from_ap,
[ "repeating_powers_" + ids[n] + "_power_end_str_cost" ] : end_from_str,
/* we don't display remaining charges if the power is END */
[ "repeating_powers_" + ids[n] + "_power_remaining_charges" ] : end_combined + ( end_from_str > 0 ? ( "("+end_from_str+")" ) : "" )
});
break;
}
});
}
for( var i=0; i<ids.length; i++ ) {
setEndurance(i);
}
});
}
/* once the reserve array is built, do the recalc of endurance costs */
var onLastReserve = _.after(res_ids.length, function() {
recalcEndCosts();
})
/* add the reserve to the array */
var addReserve = function(r) {
getAttrs([
"repeating_reserves_" + res_ids[r] + "_reserve_name",
"repeating_reserves_" + res_ids[r] + "_reserve_end",
"repeating_reserves_" + res_ids[r] + "_reserve_end_max"
], function(v) {
var e = parseInt(v[ "repeating_reserves_" + res_ids[r] + "_reserve_end" ],10)||0;
var m = parseInt(v[ "repeating_reserves_" + res_ids[r] + "_reserve_end_max" ],10)||0;
reserveArray.push({name: v["repeating_reserves_" + res_ids[r] + "_reserve_name"], end: e, end_max: m });
onLastReserve();
});
}
if( res_ids.length > 0 ) {
for( var j=0; j<res_ids.length; j++ ) {
addReserve(j);
}
} else {
recalcEndCosts();
}
});
}
on("change:repeating_powers:pow_active_points change:repeating_powers:pow_advantages change:repeating_powers:end_multiplier change:repeating_powers:power_end_fixed change:attack_uses_str change:attack_minimum_str " +
"change:repeating_powers:power_end_source change:repeating_powers:power_end_reserve_name change:repeating_reserves:reserve_end change:repeating_reserves:reserve_name change:repeating_reserves:reserve_end_max change:option_str_end_cost change:str_reduced_end", function() {
setEnduranceCosts();
});
/* recalc attack damage dice */
var setDamageDice = function() {
getSectionIDs( "repeating_powers", function(ids) {
var calcDamage = function(n) {
getAttrs([
"str",
"maneuver_dc",
"combat_levels_dc",
"repeating_powers_" + ids[n] + "_pow_base_points",
"repeating_powers_" + ids[n] + "_pow_advantages_no_reduced_end",
"repeating_powers_" + ids[n] + "_attack_die_cost",
"repeating_powers_" + ids[n] + "_attack_uses_str",
"repeating_powers_" + ids[n] + "_attack_minimum_str",
"repeating_powers_" + ids[n] + "_attack_extra_dice_source",
"repeating_powers_" + ids[n] + "_attack_custom_dice"
], function (v) {
var base = parseInt( v[ "repeating_powers_" + ids[n] + "_pow_base_points" ],10 )||0;
var advantages = parseInt( v[ "repeating_powers_" + ids[n] + "_pow_advantages_no_reduced_end" ], 10 )||0;
var active_points = 0;
var cost;
var option = "half";
var str = parseInt( v[ "str" ], 10 )||0;
var uses_str = parseInt( v[ "repeating_powers_" + ids[n] + "_attack_uses_str" ], 10 )||0;
var str_for_damage = 0;
var str_for_end = 0;
var minimum_str = parseInt( v[ "repeating_powers_" + ids[n] + "_attack_minimum_str" ], 10 )||0;
var maneuver_dc = parseInt( v[ "maneuver_dc" ], 10 )||0;
var combat_levels_dc = parseInt( v[ "combat_levels_dc" ], 10 )||0;
var extra_dice_source = v[ "repeating_powers_" + ids[n] + "_attack_extra_dice_source" ];
var custom_dice = v[ "repeating_powers_" + ids[n] + "_attack_custom_dice" ];
/* if we have custom dice, we don't need to do anything else */
if( custom_dice.trim() != "" ) {
setAttrs({
["repeating_powers_" + ids[n] + "_attack_base_dice"]: " ",
["repeating_powers_" + ids[n] + "_attack_base_dice_show"]: " ",
["repeating_powers_" + ids[n] + "_attack_str_dice"]: " ",
["repeating_powers_" + ids[n] + "_attack_str_dice_show"]: " ",
["repeating_powers_" + ids[n] + "_attack_extra_dice"]: " ",
["repeating_powers_" + ids[n] + "_attack_extra_dice_show"]: " ",
["repeating_powers_" + ids[n] + "_attack_dice"]: custom_dice,
["repeating_powers_" + ids[n] + "_attack_dice_show"]: custom_dice
});
return;
}
switch( v[ "repeating_powers_" + ids[n] + "_attack_die_cost" ] ) {
case "3":
cost = 3;
break;
case "5":
cost = 5;
break;
case "6":
cost = 6;
break;
case "10":
cost = 10;
break;
case "15 (\u00BDd6)":
cost = 15;
break;
case "15 (1d6-1)":
cost = 15;
option = "-1";
break;
case "15":
cost = 15;
break;
default:
return;
}
/* attack dice from base power */
setAttrs({
[ "repeating_powers_" + ids[n] + "_attack_base_dice" ] : getDice( base, cost, "dice", option ),
[ "repeating_powers_" + ids[n] + "_attack_base_dice_show" ] : getDice( base, cost, "text", option )
});
/* dice from STR */
if( uses_str == 1 ) {
if( minimum_str > 0 ) {
/* calculate using str minimum rules */
if( str >= (minimum_str+5) ) {
/* character requires str + 5 to get any bonus damage */
str_for_damage = str - minimum_str;
str_for_damage = Math.floor( str_for_damage / 5 ) * 5; /* per limitation description, only full 5pts count */
str_for_end = minimum_str + str_for_damage;
}
} else {
/* no minimum... use whole strength */
str_for_damage = str;
str_for_end = str;
}
/* you only get str ÷ ( 1 + advantage ) added to base cost */
active = Math.floor( str_for_damage / ( 1 + advantages ) );
setAttrs({
[ "repeating_powers_" + ids[n] + "_attack_str_dice" ] : getDice( str_for_damage, cost, "dice", option ),
[ "repeating_powers_" + ids[n] + "_attack_str_dice_show" ] : getDice( str_for_damage, cost, "text", option )
});
} else {
setAttrs({
[ "repeating_powers_" + ids[n] + "_attack_str_dice" ] : " ",
[ "repeating_powers_" + ids[n] + "_attack_str_dice_show" ] : " "
});
}
setAttrs({ [ "repeating_powers_" + ids[n] + "_attack_str_for_end" ] : str_for_end });
/* dice from maneuver */
if( maneuver_dc > 0 ) setAttrs({ [ "repeating_powers_" + ids[n] + "_attack_maneuver_dice_show" ] : getDice( maneuver_dc, cost, "text" ) });
else setAttrs({ [ "repeating_powers_" + ids[n] + "_attack_maneuver_dice_show" ] : " " });
/* dice from combat skill levels */
if( combat_levels_dc > 0 ) setAttrs({ [ "repeating_powers_" + ids[n] + "_attack_csl_dice_show" ] : getDice( Math.floor(combat_levels_dc/2) * 5, cost, "text" ) });
else setAttrs({ [ "repeating_powers_" + ids[n] + "_attack_csl_dice_show" ] : " " });
/* dice from the "extra" field */
/* extra dice can be either a number, which represent base points (ex: 25) */
/* or text in the format of a rollable string (ex: 1d6+1d3) */
var extra_dice_base;
var extra_dice_text;
if( extra_dice_source.trim() != "" ) {
var pattern = /^\s*[+,-]?\s*[0-9][0-9]*\s*$/;
var extra_dice_uses_points = pattern.test(extra_dice_source);
if( extra_dice_uses_points ) {
/* number */
extra_dice_base = parseInt(extra_dice_source,10);
extra_dice_text = "";
setAttrs({
[ "repeating_powers_" + ids[n] + "_attack_extra_dice" ] : getDice( extra_dice_base, cost, "dice", option ),
[ "repeating_powers_" + ids[n] + "_attack_extra_dice_show" ] : getDice( extra_dice_base, cost, "text", option )
});
} else {
extra_dice_base = 0;
extra_dice_text = extra_dice_source;
setAttrs({
[ "repeating_powers_" + ids[n] + "_attack_extra_dice" ] : extra_dice_text,
[ "repeating_powers_" + ids[n] + "_attack_extra_dice_show" ] : extra_dice_text
});
}
} else {
extra_dice_base = 0;
extra_dice_text = "";
setAttrs({
[ "repeating_powers_" + ids[n] + "_attack_extra_dice" ] : " ",
[ "repeating_powers_" + ids[n] + "_attack_extra_dice_show" ] : " "
});
}
/* put it all together */
var total_points = base + str_for_damage + maneuver_dc + ( Math.floor(combat_levels_dc/2) * 5 ) + extra_dice_base;
if( extra_dice_text != "" ) {
extra_dice_text = "+(" + extra_dice_text + ")";
};
setAttrs({
[ "repeating_powers_" + ids[n] + "_attack_dice" ] : getDice( total_points, cost, "dice", option ) + extra_dice_text,
[ "repeating_powers_" + ids[n] + "_attack_dice_show" ] : getDice( total_points, cost, "text", option ) + extra_dice_text
});
});
}
for( i=0; i<ids.length; i++ ){
calcDamage(i);
}
});
}
on("change:str change:maneuver_dc change:combat_levels_dc change:repeating_powers:pow_base_points change:repeating_powers:pow_advantages_no_reduced_end change:repeating_powers:attack_die_cost change:repeating_powers:attack_uses_str change:repeating_powers:attack_minimum_str change:repeating_powers:attack_extra_dice_source change:repeating_powers:attack_custom_dice ", function(eventinfo) {
setDamageDice();
});
on("change:repeating_powers:attack_wizard", function(eventinfo) {
if( eventinfo.sourceType == "sheetworker" ) return;
var cost, type, killing, cv, str, location;
getAttrs([ "repeating_powers_attack_wizard"], function(v) {
switch(v["repeating_powers_attack_wizard"]) {
case "Aid":
cost = "6";
type = "Effect";
killing = 0;
cv = "OCV";
str = 0;
location = 0;
break;
case "Blast":
cost = "5";
type = "STUN & BODY";
killing = 0;
cv = "OCV";
str = 0;
location = 1;
break;
case "Dispel":
cost = "3";
type = "Effect";
killing = 0;
cv = "OCV";
str = 0;
location = 0;
break;
case "Drain":
cost = "10";
type = "Effect";
killing = 0;
cv = "OCV";
str = 0;
location = 0;
break;
case "Entangle":
cost = "10";
type = "BODY only";
killing = 0;
cv = "OCV";
str = 0;
location = 0;
break;
case "Flash":
cost = "5";
type = "BODY only";
killing = 0;
cv = "OCV";
str = 0;
location = 0;
break;
case "HTH Attack":
cost = "5";
type = "STUN & BODY";
killing = 0;
cv = "OCV";
str = 1;
location = 1;
break;
case "Healing":
cost = "10";
type = "Effect";
killing = 0;
cv = "OCV";
str = 0;
location = 0;
break;
case "Killing Attack (HKA)":
cost = "15 (\u00BDd6)";
type = "BODY";
killing = 1;
cv = "OCV";
str = 1;
location = 1;
break;
case "Killing Attack (RKA)":
cost = "15 (\u00BDd6)";
type = "BODY";
killing = 1;
cv = "OCV";
str = 0;
location = 1;
break;
case "Luck":
cost = "5";
type = "Luck";
killing = 0;
cv = "none";
str = 0;
location = 0;
break;
case "Mental Blast":
cost = "10";
type = "STUN";
killing = 0;
cv = "OMCV";
str = 0;
location = 0;
break;
case "Mental Illusions":
cost = "5";
type = "Effect";
killing = 0;
cv = "OMCV";
str = 0;
location = 0;
break;
case "Mind Control":
cost = "5";
type = "Effect";
killing = 0;
cv = "OMCV";
str = 0;
location = 0;
break;
case "Mind Scan":
cost = "5";
type = "Effect";
killing = 0;
cv = "OMCV";
str = 0;
location = 0;
break;
case "Telepathy":
cost = "5";
type = "Effect";
killing = 0;
cv = "OMCV";
str = 0;
location = 0;
break;
case "Transform":
cost = "15 (\u00BDd6)";
type = "Effect";
killing = 0;
cv = "OCV";
str = 0;
location = 0;
break;
}
setAttrs({
repeating_powers_attack_die_cost : cost,
repeating_powers_attack_type : type,
repeating_powers_attack_killing : killing,
repeating_powers_attack_cv : cv,
repeating_powers_attack_uses_str : str,
repeating_powers_attack_hit_location : location,
repeating_powers_attack_wizard : ""
});
});
});
var setPowerFormulas = function() {
getSectionIDs( "repeating_powers", function(ids) {
var setFormulas = function(n) {
getAttrs([
"ocv",
"omcv",
"maneuver_in_use",
"hit_location_roll",
"preview_start_ocv",
"preview_csl_ocv",
"preview_power_ocv",
"preview_maneuver_ocv",
"preview_target_ocv",
"preview_range_ocv",
"preview_psl_rmod",
"preview_other_ocv",
"preview_psl_ocv",
"preview_half_ocv",
"repeating_powers_" + ids[n] + "_pow_attack",
"repeating_powers_" + ids[n] + "_power",
"repeating_powers_" + ids[n] + "_power_name",
"repeating_powers_" + ids[n] + "_attack_dice",
"repeating_powers_" + ids[n] + "_attack_killing",
"repeating_powers_" + ids[n] + "_attack_type",
"repeating_powers_" + ids[n] + "_attack_cv",
"repeating_powers_" + ids[n] + "_attack_hit_location",
"repeating_powers_" + ids[n] + "_power_activation",
"repeating_powers_" + ids[n] + "_extra_action",
"repeating_powers_" + ids[n] + "_custom_action",
], function(v) {
var ocv = parseInt(v["ocv"],10)||0;
var omcv = parseInt(v["omcv"],10)||0;
var maneuver = v["maneuver_in_use"];
var preview_start_ocv = v[ "preview_start_ocv" ];
var preview_csl_ocv = v[ "preview_csl_ocv" ];
var preview_power_ocv = v[ "preview_power_ocv" ];
var preview_maneuver_ocv = v[ "preview_maneuver_ocv" ];
var preview_target_ocv = v[ "preview_target_ocv" ];
var preview_range_ocv = v[ "preview_range_ocv" ];
var preview_psl_rmod = v[ "preview_psl_rmod" ];
var preview_other_ocv = v[ "preview_other_ocv" ];
var preview_psl_ocv = v[ "preview_psl_ocv" ];
var preview_half_ocv = v[ "preview_half_ocv" ];
var use_hit_location = parseInt(v["repeating_powers_" + ids[n] + "_attack_hit_location"],10)||0;
var is_attack = parseInt(v["repeating_powers_" + ids[n] + "_pow_attack"],10)||0;
var is_killing = parseInt(v["repeating_powers_" + ids[n] + "_attack_killing"],10)||0;
var effect = ""; // STUN, BODY, Effect
var count = ""; // BODY, Luck
var formula = "&{template:hero6template} {{charname=@{character_name}}} ";
if( v["repeating_powers_" + ids[n] + "_custom_action"].trim() != "" ) {
/* Custom Action */
setAttrs({
["repeating_powers_" + ids[n] + "_use_power_formula"]: v["repeating_powers_" + ids[n] + "_custom_action"].trim(),
["repeating_powers_" + ids[n] + "_use_power2_formula"]: v["repeating_powers_" + ids[n] + "_custom_action"].trim()
});
/* custom action does not need to do anything else */
return;
}
formula += ( "{{power=" + v["repeating_powers_" + ids[n] + "_power_name"].trim() + "}} " );
if( v["repeating_powers_" + ids[n] + "_power_activation"].trim() != "" ) {
formula += ( "{{activation=" + v["repeating_powers_" + ids[n] + "_power_activation"].trim() + "}} {{activationroll=[[3d6]]}}" );
}
if( is_attack == 1 ) {
if( maneuver != "" ) formula += ( " {{maneuver=" + maneuver + "}} " );
switch( v["repeating_powers_" + ids[n] + "_attack_cv"]) {
case "OCV":
formula += ( " {{base=" + preview_start_ocv + "}}" );
if( preview_csl_ocv.trim() != "" ) formula += ( " {{csl=" + preview_csl_ocv + "}} " );
if( preview_power_ocv.trim() != "" ) formula += ( " {{pow=" + preview_power_ocv + "}} " );
if( preview_maneuver_ocv.trim() != "" ) formula += ( " {{mnvr=" + preview_maneuver_ocv + "}} " );
if( preview_target_ocv.trim() != "" ) formula += ( " {{aim=" + preview_target_ocv + "}} " );
if( preview_range_ocv.trim() != "" ) formula += ( " {{range=" + preview_range_ocv + "}} " );
if( preview_psl_rmod.trim() != "" ) formula += ( " {{rmod=" + preview_psl_rmod + "}} " );
if( preview_other_ocv.trim() != "" ) formula += ( " {{other=" + preview_other_ocv + "}} " );
if( preview_psl_ocv.trim() != "" ) formula += ( " {{psl=" + preview_psl_ocv + "}} " );
if( preview_half_ocv.trim() != "" ) formula += ( " {{half=" + preview_half_ocv + "}} " );
formula += ( " {{ocv=" + ocv + "}}" );
formula += ( " {{attack=[[3d6]]}}" );
break;
case "OMCV":
formula += ( " {{ocv=" + omcv + "}}" );
formula += ( " {{attack=[[3d6]]}}" );
break;
default:
/* if there's no CV, then don't bother rolling */
}
if( use_hit_location == 1 && v["hit_location_roll"].trim() != "" ) {
formula += ( " {{hitlocation=[[" + v["hit_location_roll"] + "]]}}" );
}
if( v["repeating_powers_" + ids[n] + "_attack_dice"].trim() != "" ) {
formula += ( " {{damage=[[" + v["repeating_powers_" + ids[n] + "_attack_dice"].trim() + "]]}}" );
}
if( is_killing == 1 ) {
formula += " {{killing=1}}";
}
switch( v["repeating_powers_" + ids[n] + "_attack_type"] ) {
case "STUN & BODY":
effect = "STUN";
count = "BODY";
break;
case "STUN":
effect = "STUN";
count = "";
break;
case "BODY":
effect = "BODY";
count = "";
break;
case "BODY only":
effect = "Die Rolls";
count = "BODY";
break;
case "Effect":
effect = "Effect";
count = "";
break;
case "Luck":
effect = "Die Rolls";
count = "Luck";
break;
}
formula += ( " {{type=" + effect + "}}" );
if( count != "" ) {
formula += ( " {{count=" + count + "}}" );
}
}
if( v["repeating_powers_" + ids[n] + "_extra_action"].trim() != "" ) {
formula += ( "\n" + v["repeating_powers_" + ids[n] + "_extra_action"] );
}
setAttrs({
["repeating_powers_" + ids[n] + "_use_power_formula"]: formula,
["repeating_powers_" + ids[n] + "_use_power2_formula"]: ( formula + "{{description=" + v["repeating_powers_" + ids[n] + "_power"].trim() + "}}" )
});
});
}
for( i=0; i<ids.length; i++ ) {
setFormulas(i);
}
});
}
on("change:ocv change:omcv change:hit_location_roll change:repeating_powers:pow_attack change:repeating_powers:power change:repeating_powers:power_name change:repeating_powers:attack_dice change:repeating_powers:attack_killing change:repeating_powers:attack_type change:repeating_powers:attack_cv change:repeating_powers:attack_hit_location change:repeating_powers:power_activation change:repeating_powers:extra_action change:repeating_powers:custom_action", function() {
setPowerFormulas();
});
/* makes the maneuver checkboxes behave like a radio button group. */
/* clears all other checkboxes except the one that was checked. */
on("change:radio_maneuver1 change:radio_maneuver2 change:radio_maneuver3 change:radio_maneuver4 " +
"change:radio_maneuver5 change:radio_maneuver6 change:radio_maneuver7 change:radio_maneuver8 " +
"change:radio_maneuver9 change:radio_maneuver10 change:radio_maneuver11 change:radio_maneuver12 " +
"change:radio_maneuver13 change:radio_maneuver14 change:radio_maneuver15 change:radio_maneuver16 " +
"change:repeating_maneuvers:radio_maneuver_custom", function(eventinfo) {
if( eventinfo.sourceType == "sheetworker" ) return;
var element = eventinfo.sourceAttribute;
var value = eventinfo.newValue;
/* loop through presets */
for( var i = 1; i <= 16; i++ ) {
if( element == ("radio_maneuver" + i) ) {
setAttrs({ [ "radio_maneuver" + i ] : value });
} else {
setAttrs({ [ "radio_maneuver" + i ] : 0 });
}
}
getSectionIDs("repeating_maneuvers", function(ids) {
var resetToggle = function(n) {
if( element == ("repeating_maneuvers_" + ids[n] + "_radio_maneuver_custom") ) {
setAttrs({ [ "repeating_maneuvers_" + ids[n] + "_radio_maneuver_custom" ] : value });
} else {
setAttrs({ [ "repeating_maneuvers_" + ids[n] + "_radio_maneuver_custom" ] : 0 });
}
}
/* loop through repeating maneuvers*/
for( var i = 0; i < ids.length; i++ ) {
resetToggle(i)
}
});
});
/* saves maneuver values to a hidden field for later use */
var setManeuver = function() {
getSectionIDs( "repeating_maneuvers", function(ids) {
var pre_name = "";
var pre_ocv = 0;
var pre_dcv = 0;
var pre_rmod = 0;
var pre_half_dcv = 0;
var pre_dc = 0;
var saveAll = function() {
setAttrs({
maneuver_in_use: pre_name,
maneuver_ocv: pre_ocv,
maneuver_dcv: pre_dcv,
maneuver_rmod: pre_rmod,
maneuver_half_dcv: pre_half_dcv,
maneuver_dc: pre_dc
});
}
var onLast = _.after(ids.length+16, function() {
saveAll();
});
var checkPreset = function(n) {
getAttrs([ "str", "velocity", "radio_maneuver"+n ], function(v) {
var str = parseInt( v["str"], 10 )||0;
var velocity = parseInt( v["velocity"], 10 )||0;
if( v["radio_maneuver"+n] == 1 ) {
switch(n) {
case 1:
pre_name = "";
break;
case 2:
pre_name = "Block";
break;
case 3:
pre_name = "Brace";
pre_rmod = 2;
pre_half_dcv = 1;
break;
case 4:
pre_name = "Disarm";
pre_ocv = (-2);
break;
case 5:
pre_name = "Dodge";
pre_dcv = 3;
break;
case 6:
pre_name = "Grab";
pre_ocv = (-1);
pre_dcv = (-2);
break;
case 7:
pre_name = "Grab By";
pre_ocv = (-3);
pre_dcv = (-4);
break;
case 8:
pre_name = "Haymaker";
pre_dcv = (-5);
pre_dc = 4 * 5;
break;
case 9:
pre_name = "Move By";
pre_ocv = (-2);
pre_dcv = (-2);
pre_dc = ( roundup(velocity/10) * 5 ) - rounddown(str/2);
break;
case 10:
pre_name = "Move Through";
pre_ocv = roundup(velocity/(-10));
pre_dc = roundup(velocity/6) * 5;
break;
case 11:
pre_name = "Multiple Attack";
/* no pre_ocv. player will need to use other modifier, -2 x number of targets over first */
pre_half_dcv = 1;
break;
case 12:
pre_name = "Set";
pre_ocv = 1;
break;
case 13:
pre_name = "Shove";
pre_ocv = (-1);
pre_dcv = (-1);
break;
case 14:
pre_name = "Strike";
break;
case 15:
pre_name = "Throw";
break;
case 16:
pre_name = "Trip";
pre_ocv = (-1);
pre_dcv = (-2);
break;
}
}
onLast();
});
}
var checkRepeating = function(n) {
getAttrs([
"str",
"velocity",
"repeating_maneuvers_" + ids[n] + "_radio_maneuver_custom",
"repeating_maneuvers_" + ids[n] + "_maneuver_name",
"repeating_maneuvers_" + ids[n] + "_maneuver_ocv_text",
"repeating_maneuvers_" + ids[n] + "_maneuver_dcv_text",
"repeating_maneuvers_" + ids[n] + "_maneuver_dc_text"
], function(v) {
var str = parseInt( v["str"], 10 )||0;
var velocity = parseInt( v["velocity"], 10 )||0;
if( v[ "repeating_maneuvers_" + ids[n] + "_radio_maneuver_custom" ] == 1 ) {
pre_name = v[ "repeating_maneuvers_" + ids[n] + "_maneuver_name" ];
switch( v[ "repeating_maneuvers_" + ids[n] + "_maneuver_ocv_text" ]) {
case "-3":
pre_ocv = (-3);
break;
case "-2":
pre_ocv = (-2);
break;
case "-1":
pre_ocv = (-1);
break;
case "+0":
pre_ocv = 0;
break;
case "+1":
pre_ocv = 1;
break;
case "+2":
pre_ocv = 2;
break;
case "-v/10":
pre_ocv = roundup(velocity/(-10));
break;
}
switch( v[ "repeating_maneuvers_" + ids[n] + "_maneuver_dcv_text" ]) {
case "-5":
pre_dcv = (-5);
break;
case "-4":
pre_dcv = (-4);
break;
case "-3":
pre_dcv = (-3);
break;
case "-2":
pre_dcv = (-2);
break;
case "-1":
pre_dcv = (-1);
break;
case "+0":
pre_dcv = 0;
break;
case "+1":
pre_dcv = 1;
break;
case "+2":
pre_dcv = 2;
break;
case "+3":
pre_dcv = 3;
break;
case "+4":
pre_dcv = 4;
break;
case "+5":
pre_dcv = 5;
break;
case "\u00BD":
pre_half_dcv = 1;
break;
}
switch( v[ "repeating_maneuvers_" + ids[n] + "_maneuver_dc_text" ]) {
case "+1DC":
pre_dc = 1 * 5;
break;
case "+2DC":
pre_dc = 2 * 5;
break;
case "+3DC":
pre_dc = 3 * 5;
break;
case "+4DC":
pre_dc = 4 * 5;
break;
case "+v/6":
pre_dc = roundup(velocity/6) * 5;
break;
case "+v/10":
pre_dc = roundup(velocity/10) * 5;
break;
}
}
onLast();
});
}
for(var i=1; i<=16; i++) {
checkPreset(i);
}
for( var i=0; i<ids.length; i++) {
checkRepeating(i);
}
});
}
on("change:radio_maneuver1 change:radio_maneuver2 change:radio_maneuver3 change:radio_maneuver4 " +
"change:radio_maneuver5 change:radio_maneuver6 change:radio_maneuver7 change:radio_maneuver8 " +
"change:radio_maneuver9 change:radio_maneuver10 change:radio_maneuver11 change:radio_maneuver12 " +
"change:radio_maneuver13 change:radio_maneuver14 change:radio_maneuver15 change:radio_maneuver16 " +
"change:repeating_maneuvers:radio_maneuver_custom change:repeating_maneuvers remove:repeating_maneuvers " +
"change:str change:velocity", function(eventinfo) {
if( eventinfo.sourceType == "sheetworker" ) return;
setManeuver();
});
/* makes the combat skill checkboxes behave like a radio button group. */
/* clears all other checkboxes except the one that was checked. */
on("change:repeating_combatskills:radio_csl_ocv change:repeating_combatskills:radio_csl_dcv change:repeating_combatskills:radio_csl_omcv change:repeating_combatskills:radio_csl_dmcv change:repeating_combatskills:radio_csl_dc", function(eventinfo) {
if( eventinfo.sourceType == "sheetworker" ) return;
var rowid = getRowId( eventinfo.sourceAttribute );
var ocv = 0, dcv = 0, omcv = 0, dmcv = 0, dc = 0;
if( eventinfo.sourceAttribute == "repeating_combatskills_" + rowid + "_radio_csl_ocv" ) ocv = eventinfo.newValue;
if( eventinfo.sourceAttribute == "repeating_combatskills_" + rowid + "_radio_csl_dcv" ) dcv = eventinfo.newValue;
if( eventinfo.sourceAttribute == "repeating_combatskills_" + rowid + "_radio_csl_omcv" ) omcv = eventinfo.newValue;
if( eventinfo.sourceAttribute == "repeating_combatskills_" + rowid + "_radio_csl_dmcv" ) dmcv = eventinfo.newValue;
if( eventinfo.sourceAttribute == "repeating_combatskills_" + rowid + "_radio_csl_dc" ) dc = eventinfo.newValue;
setAttrs({
repeating_combatskills_radio_csl_ocv : ocv,
repeating_combatskills_radio_csl_dcv : dcv,
repeating_combatskills_radio_csl_omcv : omcv,
repeating_combatskills_radio_csl_dmcv : dmcv,
repeating_combatskills_radio_csl_dc : dc
});
});
/* saves combat skill values to hidden fields for later use */
var setCombatSkills = function() {
getSectionIDs("repeating_combatskills", function(ids) {
var ocv = 0, dcv = 0, omcv = 0, dmcv = 0, dc = 0;
var saveAll = function() {
setAttrs({ combat_levels_ocv : ocv, combat_levels_dcv : dcv, combat_levels_omcv : omcv, combat_levels_dmcv : dmcv, combat_levels_dc : dc });
}
var onLast = _.after(ids.length, function() {
saveAll();
});
var getRow = function(n) {
getAttrs([
"repeating_combatskills_" + ids[n] + "_csl_checkbox",
"repeating_combatskills_" + ids[n] + "_radio_csl_ocv",
"repeating_combatskills_" + ids[n] + "_radio_csl_dcv",
"repeating_combatskills_" + ids[n] + "_radio_csl_omcv",
"repeating_combatskills_" + ids[n] + "_radio_csl_dmcv",
"repeating_combatskills_" + ids[n] + "_radio_csl_dc"
], function(v) {
if( v[ "repeating_combatskills_" + ids[n] + "_csl_checkbox" ] == 1 ) {
if( v[ "repeating_combatskills_" + ids[n] + "_radio_csl_ocv" ] == 1 ) ocv++;
if( v[ "repeating_combatskills_" + ids[n] + "_radio_csl_dcv" ] == 1 ) dcv++;
if( v[ "repeating_combatskills_" + ids[n] + "_radio_csl_omcv" ] == 1 ) omcv++;
if( v[ "repeating_combatskills_" + ids[n] + "_radio_csl_dmcv" ] == 1 ) dmcv++;
if( v[ "repeating_combatskills_" + ids[n] + "_radio_csl_dc" ] == 1 ) dc++;
}
onLast();
});
}
if( ids.length>0 ) {
for( var i=0; i<ids.length; i++ ) {
getRow(i);
}
} else {
saveAll();
}
});
}
on("change:repeating_combatskills remove:repeating_combatskills", function() {
setCombatSkills()
});
/* makes the penalty skill checkboxes behave like a radio button group. */
/* clears all other checkboxes except the one that was checked. */
on("change:repeating_penaltyskills remove:repeating_penaltyskills", function(eventinfo) {
if( eventinfo.sourceType == "sheetworker" ) return;
var rowid = getRowId( eventinfo.sourceAttribute );
var rmod = 0, ocv = 0, dcv = 0;
if( eventinfo.sourceAttribute == "repeating_penaltyskills_" + rowid + "_radio_psl_rmod" ) rmod = eventinfo.newValue;
if( eventinfo.sourceAttribute == "repeating_penaltyskills_" + rowid + "_radio_psl_ocv" ) ocv = eventinfo.newValue;
if( eventinfo.sourceAttribute == "repeating_penaltyskills_" + rowid + "_radio_psl_dcv" ) dcv = eventinfo.newValue;
setAttrs({
repeating_penaltyskills_radio_psl_rmod : rmod,
repeating_penaltyskills_radio_psl_ocv : ocv,
repeating_penaltyskills_radio_psl_dcv : dcv
});
});
/* saves penalty skill values to a hidden field for later use */
var setPenaltySkills = function() {
getSectionIDs("repeating_penaltyskills", function(ids) {
var rmod = 0, ocv = 0, dcv = 0;
var saveAll = function() {
setAttrs({ penalty_levels_rmod : rmod, penalty_levels_ocv : ocv, penalty_levels_dcv : dcv });
}
var onLast = _.after(ids.length, function() {
saveAll();
});
var getRow = function(n) {
getAttrs([
"repeating_penaltyskills_" + ids[n] + "_psl_checkbox",
"repeating_penaltyskills_" + ids[n] + "_radio_psl_rmod",
"repeating_penaltyskills_" + ids[n] + "_radio_psl_ocv",
"repeating_penaltyskills_" + ids[n] + "_radio_psl_dcv"
], function(v) {
if( v[ "repeating_penaltyskills_" + ids[n] + "_psl_checkbox" ] == 1 ) {
if( v[ "repeating_penaltyskills_" + ids[n] + "_radio_psl_rmod" ] == 1 ) rmod++;
if( v[ "repeating_penaltyskills_" + ids[n] + "_radio_psl_ocv" ] == 1 ) ocv++;
if( v[ "repeating_penaltyskills_" + ids[n] + "_radio_psl_dcv" ] == 1 ) dcv++;
}
onLast();
});
}
if( ids.length>0 ) {
for( var i=0; i<ids.length; i++ ) {
getRow(i);
}
} else {
saveAll();
}
});
}
on("change:repeating_penaltyskills remove:repeating_penaltyskills", function() {
setPenaltySkills();
});
/* saves the range modifier to a hidden field for later use */
var setRange = function() {
getAttrs([ "radio_range" ], function(v) {
setAttrs({ range_ocv: (v["radio_range"]-1) * (-2) });
});
}
on("change:radio_range", function() {
setRange();
});
/* saves the combat modifier (target) to a hidden field for later use */
var setCombatModifiers = function() {
getAttrs([ "radio_target" ], function(v) {
var modifier;
var roll;
switch( v[ "radio_target" ]) {
case "-1": /* none */
modifier = 0;
roll = "";
break;
case "1": /* normal */
modifier = 0;
roll = "3d6";
break;
case "2": /* focus */
modifier = (-4);
roll = "";
break;
case "3": /* head shot (head to shoulders) */
modifier = (-4);
roll = "1d6+3";
break;
case "4": /* high shot */
modifier = (-2);
roll = "2d6+1";
break;
case "5": /* body shot */
modifier = (-1);
roll = "2d6+4";
break;
case "6": /* low shot */
modifier = (-2);
roll = "2d6+7";
break;
case "7": /* leg shot */
modifier = (-4);
roll = "1d6+12";
break;
case "8": /* head */
modifier = (-8);
roll = "3";
break;
case "9": /* hands */
modifier = (-6);
roll = "6";
break;
case "10": /* shoulders */
modifier = (-5);
roll = "7";
break;
case "11": /* chest */
modifier = (-3);
roll = "10";
break;
case "12": /* stomach */
modifier = (-7);
roll = "12";
break;
case "13": /* vitals */
modifier = (-8);
roll = "13";
break;
case "14": /* thighs */
modifier = (-4);
roll = "14";
break;
case "15": /* legs */
modifier = (-6);
roll = "15";
break;
case "16": /* feet */
modifier = (-8);
roll = "17";
break;
default:
modifier = 0;
roll = "";
}
setAttrs({ ocv_modifiers: modifier, hit_location_roll: roll });
});
}
on("change:radio_target", function() {
setCombatModifiers();
});
/* saves the skill level value to a hidden field for later use */
var setSkillLevels = function() {
getSectionIDs("repeating_skilllevels", function(ids) {
var levels = 0;
var saveAll = function() {
setAttrs({ skill_levels : levels });
}
var onLast = _.after(ids.length, function() {
saveAll();
});
var getRow = function(n) {
getAttrs([
"repeating_skilllevels_" + ids[n] + "_radio_skill_level"
], function(v) {
if( v[ "repeating_skilllevels_" + ids[n] + "_radio_skill_level" ] == 1 ) levels++;
onLast();
});
}
if( ids.length > 0 ) {
for( var i=0; i<ids.length; i++ ) {
getRow(i);
}
} else {
saveAll();
}
});
}
on("change:repeating_skilllevels:radio_skill_level remove:repeating_skilllevels", function() {
setSkillLevels();
});
var calcSenses = function() {
getSectionIDs("repeating_senses", function(ids) {
var setSense = function(n) {
getAttrs([
"int_base",
"int_pow",
"repeating_senses_" + ids[n] + "_sense_name",
"repeating_senses_" + ids[n] + "_sense_increase"
], function(v) {
var int_base = parseInt(v["int_base"],10)||0;
var int_pow = parseInt(v["int_pow"],10)||0;
var sense_name = (v["repeating_senses_" + ids[n] + "_sense_name"]);
var sense_increase = parseInt(v["repeating_senses_" + ids[n] + "_sense_increase"],10)||0;
var intelligence = int_base + int_pow;
var bonus = roundup( intelligence/5 );
var sense_formula = "&{template:hero6template}" +
" {{charname=@{character_name}}}" +
" {{action=" + sense_name + "}}" +
" {{roll=[[3d6]]}}" +
" {{target=" + (9 + bonus + sense_increase ) + "}}" +
" {{base=9}} {{stat=" + bonus + "}}";
if( sense_increase > 0 ) sense_formula += " {{inc=" + sense_increase + "}}";
setAttrs({
[ "repeating_senses_" + ids[n] + "_sense_roll_show" ] : ( 9 + bonus + sense_increase ) + "-",
[ "repeating_senses_" + ids[n] + "_sense_roll_formula" ] : sense_formula
});
});
}
for( i=0; i<ids.length; i++ ) {
setSense(i);
}
});
};
on("change:int_base change:int_pow change:int_roll_pow change:repeating_senses", function() {
calcSenses();
});
/* computes the skill rolls based on characteristic and skill levels */
var setSkillRolls = function () {
getSectionIDs( "repeating_skills", function(ids) {
var setRoll = function(n) {
var roll;
getAttrs([
"repeating_skills_" + ids[n] + "_skill_name",
"repeating_skills_" + ids[n] + "_skill_char",
"repeating_skills_" + ids[n] + "_skill_increase",
"str", "dex", "con", "int", "ego", "pre",
"skill_levels",
"str_roll_pow", "dex_roll_pow", "con_roll_pow", "int_roll_pow", "ego_roll_pow", "pre_roll_pow"
], function(v) {
/* bonus from characteristic */
var bonus = 0;
/* purchased individual skill increase */
var increase = parseInt(v["repeating_skills_" + ids[n] + "_skill_increase"],10)||0;
/* general skill levels (overall level) */
var levels = parseInt(v["skill_levels"],10)||0;
/* 9 + roll_bonus + increase + levels */
var target = 0;
var has_increase = 0;
var has_roll = 0;
switch( v[ "repeating_skills_" + ids[n] + "_skill_char" ] ) {
case "STR":
var str = parseInt(v["str"],10);
var str_pow = parseInt(v["str_roll_pow"],10)||0;
bonus = roundup(str/5);
target = 9 + bonus + str_pow + increase + levels;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + 9 + "}}";
if( bonus != 0 ) formula += ( " {{stat=" + bonus + "}}" );
if( str_pow != 0 ) formula += ( " {{pow=" + str_pow + "}}" );
if( increase != 0 ) formula += ( " {{inc=" + increase + "}}" );
if( levels != 0 ) formula += ( " {{lvls=" + levels + "}}" );
has_increase = 1;
has_roll = 1;
break;
case "DEX":
var dex = parseInt(v["dex"],10);
var dex_pow = parseInt(v["dex_roll_pow"],10)||0;
bonus = roundup(dex/5);
target = 9 + bonus + dex_pow + increase + levels;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + 9 + "}}";
if( bonus != 0 ) formula += ( " {{stat=" + bonus + "}}" );
if( dex_pow != 0 ) formula += ( " {{pow=" + dex_pow + "}}" );
if( increase != 0 ) formula += ( " {{inc=" + increase + "}}" );
if( levels != 0 ) formula += ( " {{lvls=" + levels + "}}" );
has_increase = 1;
has_roll = 1;
break;
case "CON":
var con = parseInt(v["con"],10);
var con_pow = parseInt(v["con_roll_pow"],10)||0;
bonus = roundup(con/5);
target = 9 + bonus + con_pow + increase + levels;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + 9 + "}}";
if( bonus != 0 ) formula += ( " {{stat=" + bonus + "}}" );
if( con_pow != 0 ) formula += ( " {{pow=" + con_pow + "}}" );
if( increase != 0 ) formula += ( " {{inc=" + increase + "}}" );
if( levels != 0 ) formula += ( " {{lvls=" + levels + "}}" );
has_increase = 1;
has_roll = 1;
break;
case "INT":
var intx = parseInt(v["int"],10);
var int_pow = parseInt(v["int_roll_pow"],10)||0;
bonus = roundup(intx/5);
target = 9 + bonus + int_pow + increase + levels;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + 9 + "}}";
if( bonus != 0 ) formula += ( " {{stat=" + bonus + "}}" );
if( int_pow != 0 ) formula += ( " {{pow=" + int_pow + "}}" );
if( increase != 0 ) formula += ( " {{inc=" + increase + "}}" );
if( levels != 0 ) formula += ( " {{lvls=" + levels + "}}" );
has_increase = 1;
has_roll = 1;
break;
case "EGO":
var ego = parseInt(v["ego"],10);
var ego_pow = parseInt(v["ego_roll_pow"],10)||0;
bonus = roundup(ego/5);
target = 9 + bonus + ego_pow + increase + levels;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + 9 + "}}";
if( bonus != 0 ) formula += ( " {{stat=" + bonus + "}}" );
if( ego_pow != 0 ) formula += ( " {{pow=" + ego_pow + "}}" );
if( increase != 0 ) formula += ( " {{inc=" + increase + "}}" );
if( levels != 0 ) formula += ( " {{lvls=" + levels + "}}" );
has_increase = 1;
has_roll = 1;
break;
case "PRE":
var pre = parseInt(v["pre"],10);
var pre_pow = parseInt(v["pre_roll_pow"],10)||0;
bonus = roundup(pre/5);
target = 9 + bonus + pre_pow + increase + levels;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + 9 + "}}";
if( bonus != 0 ) formula += ( " {{stat=" + bonus + "}}" );
if( pre_pow != 0 ) formula += ( " {{pow=" + pre_pow + "}}" );
if( increase != 0 ) formula += ( " {{inc=" + increase + "}}" );
if( levels != 0 ) formula += ( " {{lvls=" + levels + "}}" );
has_increase = 1;
has_roll = 1;
break;
case "8-":
target = 8;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + target + "}}";
has_roll = 1;
increase = 0;
break;
case "10-":
target = 10;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + target + "}}";
has_roll = 1;
increase = 0;
break;
case "11-":
target = 11;
var formula = "&{template:hero6template}" +
" {{charname=@{character_name}}} " +
" {{action=@{skill_name}}} " +
" {{roll=[[3d6]]}} " +
" {{target=" + target + "}} {{base=" + target + "}}";
has_roll = 1;
increase = 0;
break;
default:
target = 0;
}
setAttrs({
["repeating_skills_" + ids[n] + "_skill_roll_formula"] : formula,
["repeating_skills_" + ids[n] + "_skill_has_increase"] : has_increase,
["repeating_skills_" + ids[n] + "_skill_has_roll"] : has_roll,
["repeating_skills_" + ids[n] + "_skill_roll_show"] : ( target > 0 ? (target+"-") : " " ),
["repeating_skills_" + ids[n] + "_skill_roll_target"] : target
});
});
}
for( var i=0; i<ids.length; i++ ) {
setRoll(i);
}
});
}
on("change:repeating_skills change:skill_levels change:str change:dex change:con change:int change:ego change:pre change:str_roll_pow change:dex_roll_pow change:con_roll_pow change:int_roll_pow change:ego_roll_pow change:pre_roll_pow", function(eventinfo) {
setSkillRolls();
});
/* adds up all cv adjustments and sets the final OCV and DCV values. */
/* also populates the combat preview sections with all values. */
var setCombatValues = function() {
var cpFormat = function(n) {
if( n == 0 ) return " ";
if( n < 0 ) return n.toString();
return ( "+" + n.toString() );
}
getAttrs([
"ocv_base",
"ocv_pow",
"combat_levels_ocv",
"combat_levels_dcv",
"combat_levels_dc",
"maneuver_ocv",
"maneuver_dcv",
"maneuver_rmod",
"maneuver_dc",
"maneuver_half_dcv",
"penalty_levels_ocv",
"penalty_levels_dcv",
"penalty_levels_rmod",
"other_dcv",
"half_dcv",
"ocv_modifiers",
"range_ocv",
"other_ocv",
"half_ocv",
"dcv_base",
"dcv_pow",
"psl_ocv_pow",
"psl_dcv_pow",
"psl_rmod_pow"
], function(v) {
var p_ocv_base = parseInt( v["ocv_base"],10 )||0;
var p_ocv_pow = parseInt( v["ocv_pow"],10 )||0;
var p_psl_ocv_pow = parseInt( v["psl_ocv_pow"],10 )||0;
var p_psl_dcv_pow = parseInt( v["psl_dcv_pow"],10 )||0;
var p_psl_rmod_pow = parseInt( v["psl_rmod_pow"],10 )||0;
var p_dcv_pow = parseInt( v["dcv_pow"],10 )||0;
var p_maneuver_rmod = parseInt( v["maneuver_rmod"],10 )||0;
var p_combat_levels_ocv = parseInt( v["combat_levels_ocv"],10 )||0;
var p_maneuver_ocv = parseInt( v["maneuver_ocv"],10 )||0;
var p_ocv_modifiers = parseInt( v["ocv_modifiers"],10 )||0;
var p_range_ocv = parseInt( v["range_ocv"],10 )||0;
var p_other_ocv = parseInt( v["other_ocv"],10 )||0;
var p_penalty_levels_rmod = (parseInt( v["penalty_levels_rmod"],10 )||0) + p_psl_rmod_pow + p_maneuver_rmod;
var p_penalty_levels_ocv = (parseInt( v["penalty_levels_ocv"],10 )||0) + p_psl_ocv_pow;
var p_half_ocv = parseInt( v["half_ocv"] )||0;
var p_dcv_base = parseInt( v["dcv_base"],10 )||0;
var p_combat_levels_dcv = parseInt( v["combat_levels_dcv"],10 )||0;
var p_maneuver_dcv = parseInt( v["maneuver_dcv"],10 )||0;
var p_other_dcv = parseInt( v["other_dcv"],10 )||0;
var p_penalty_levels_dcv = (parseInt( v["penalty_levels_dcv"],10 )||0) + p_psl_rmod_pow;
var p_half_dcv = parseInt( v["half_dcv"],10 )||0;
var p_maneuver_half_dcv = parseInt( v["maneuver_half_dcv"],10 )||0;
var p_combat_levels_dc = parseInt( v["combat_levels_dc"],10 )||0;
var p_maneuver_dc = parseInt( v["maneuver_dc"],10 )||0;
var p_maneuver_dc_text;
var eligible_for_psl = 0;
var leftover_pls = 0;
var p_final_ocv = 0;
var p_final_dcv = 0;
if (p_penalty_levels_rmod > (-p_range_ocv) ) p_penalty_levels_rmod = (-p_range_ocv);
eligible_for_psl = ( p_ocv_modifiers + p_other_ocv );
if( eligible_for_psl > 0 ) eligible_for_psl = 0;
if( p_penalty_levels_ocv > (-eligible_for_psl) ) p_penalty_levels_ocv = (-eligible_for_psl);
eligible_for_psl = ( p_other_ocv );
if( eligible_for_psl > 0 ) eligible_for_psl = 0;
if( p_penalty_levels_dcv > (-eligible_for_psl) ) p_penalty_levels_dcv = (-eligible_for_psl);
if( p_maneuver_half_dcv == 1 || p_half_dcv == 1 ) p_half_dcv = 1;
if( p_combat_levels_dc > 0 ) {
p_maneuver_dc += (Math.floor( p_combat_levels_dc / 2)*5);
}
if ( p_maneuver_dc > 0 ) {
p_maneuver_dc_text = ( "+" + getDice( p_maneuver_dc, 5, "text" ) );
} else if( p_maneuver_dc < 0 ) {
p_maneuver_dc_text = getDice( p_maneuver_dc, 5, "text" );
} else {
p_maneuver_dc_text = " ";
}
p_final_ocv = p_ocv_base + p_combat_levels_ocv + p_ocv_pow + p_maneuver_ocv + p_ocv_modifiers + p_range_ocv + +p_penalty_levels_rmod + p_other_ocv + p_penalty_levels_ocv;
if( p_half_ocv == 1 ) p_final_ocv = roundup( p_final_ocv / 2 );
p_final_dcv = p_dcv_base + p_combat_levels_dcv + p_dcv_pow + p_maneuver_dcv + p_other_dcv + p_penalty_levels_dcv;
if( p_final_dcv < 0 ) p_final_dcv = 0;
if( p_half_dcv == 1 ) p_final_dcv = roundup( p_final_dcv / 2 );
setAttrs({
preview_start_ocv : p_ocv_base,
preview_csl_ocv : cpFormat(p_combat_levels_ocv),
preview_power_ocv : cpFormat(p_ocv_pow),
preview_maneuver_ocv : cpFormat(p_maneuver_ocv),
preview_target_ocv : cpFormat(p_ocv_modifiers),
preview_range_ocv : cpFormat(p_range_ocv),
preview_psl_rmod : cpFormat(p_penalty_levels_rmod),
preview_other_ocv : cpFormat(p_other_ocv),
preview_psl_ocv : cpFormat(p_penalty_levels_ocv),
preview_half_ocv : ( p_half_ocv == 1 ? "x\u00BD" : " " ),
preview_final_ocv : p_final_ocv,
preview_damage : p_maneuver_dc_text,
preview_start_dcv : p_dcv_base,
preview_csl_dcv : cpFormat(p_combat_levels_dcv),
preview_power_dcv : cpFormat(p_dcv_pow),
preview_maneuver_dcv : cpFormat(p_maneuver_dcv),
preview_other_dcv : cpFormat(p_other_dcv),
preview_psl_dcv : cpFormat(p_penalty_levels_dcv),
preview_half_dcv : ( p_half_dcv == 1 ? "x\u00BD" : " " ),
preview_final_dcv : p_final_dcv,
OCV : p_final_ocv,
DCV : p_final_dcv
});
});
}
on("change:ocv_base change:dcv_base change:ocv_pow change:dcv_pow " +
"change:combat_levels_ocv change:combat_levels_dcv change:combat_levels_dc " +
"change:maneuver_ocv change:maneuver_dcv change:maneuver_dc change:maneuver_half_dcv " +
"change:penalty_levels_rmod change:penalty_levels_ocv change:penalty_levels_dcv " +
"change:psl_rmod_pow change:psl_ocv_pow change:psl_dcv_pow " +
"change:ocv_modifiers change:other_ocv change:other_dcv change:half_ocv change:half_dcv " +
"change:range_ocv change:velocity", function() {
setCombatValues();
});
/* Decrements the named endurance battery by the indicated amount. */
/* */
/* A reserve can be either referred to as an "endurance battery" or */
/* "charges". The only real difference is that charges are typically */
/* cost 1 pt of the pool per use of the reserve, while an endurance */
/* battery is thought of as being able to use more than 1 pt per use. */
/* It's a difference without distinction. */
/* */
/* Because of the asynchronous nature of getAttrs() and setAttrs(), */
/* this function is only suitable when running a single instance, */
/* such as when using an attack. */
var useReserve = function( name, end ) {
getSectionIDs( "repeating_reserves", function(ids) {
var saveEnd = function( row, end ) {
setAttrs({ [ row ] : end });
}
var payEnd = function(n) {
getAttrs([
"repeating_reserves_" + ids[n] + "_reserve_name",
"repeating_reserves_" + ids[n] + "_reserve_end"
], function(v) {
if( name == v[ "repeating_reserves_" + ids[n] + "_reserve_name" ] ) {
saveEnd( "repeating_reserves_" + ids[n] + "_reserve_end", (parseInt( v[ "repeating_reserves_" + ids[n] + "_reserve_end" ], 10 )||0) - end );
}
});
}
for( var i=0; i<ids.length; i++ ) {
payEnd(i);
}
});
}
var payEnduranceFromReserves = function() {
getSectionIDs( "repeating_reserves", function(res_ids) {
var checkReserve = function(r) {
getAttrs([ "repeating_reserves_" + res_ids[r] + "_reserve_name" ], function(res_v) {
var reserve_name = res_v[ "repeating_reserves_" + res_ids[r] + "_reserve_name" ];
getSectionIDs( "repeating_powers", function(pow_ids) {
var reserve_used = 0;
var onLastPower = _.after(pow_ids.length, function() {
useReserve( reserve_name, reserve_used );
});
var checkPower = function(p) {
getAttrs([
"repeating_powers_" + pow_ids[p] + "_power_active",
"repeating_powers_" + pow_ids[p] + "_power_end_source",
"repeating_powers_" + pow_ids[p] + "_power_end_ap_cost",
"repeating_powers_" + pow_ids[p] + "_power_end_fixed",
"repeating_powers_" + pow_ids[p] + "_power_end_reserve_name",
"repeating_powers_" + pow_ids[p] + "_end_auto_pay"
], function(pow_v) {
var active = parseInt(pow_v[ "repeating_powers_" + pow_ids[p] + "_power_active" ],10)||0;
var auto_pay = parseInt(pow_v[ "repeating_powers_" + pow_ids[p] + "_end_auto_pay" ],10)||0;
var pow_reserve_name = pow_v[ "repeating_powers_" + pow_ids[p] + "_power_end_reserve_name" ];
if( (active == 1) && ( auto_pay == 1 ) && ( pow_reserve_name == reserve_name) ) {
var ap_end = parseInt(pow_v["repeating_powers_" + pow_ids[p] + "_power_end_ap_cost"],10)||0;
var fixed_end = parseInt(pow_v["repeating_powers_" + pow_ids[p] + "_power_end_fixed"],10)||0;
switch( pow_v[ "repeating_powers_" + pow_ids[p] + "_power_end_source" ]) {
case "Reserve":
reserve_used += ( ap_end + fixed_end );
break;
case "Both":
reserve_used += fixed_end;
break;
default:
}
}
onLastPower();
});
}
for( var j=0; j<pow_ids.length; j++) {
checkPower(j);
}
});
});
}
for( var i=0; i<res_ids.length; i++ ) {
checkReserve(i);
}
});
}
var payEnduranceFromCharacter = function() {
getSectionIDs( "repeating_powers", function(pow_ids) {
var end_used = 0;
var onLastPower = _.after(pow_ids.length, function() {
getAttrs([ "END" ], function(v) {
var end = parseInt( v["END"], 10 )||0;
end -= end_used;
setAttrs({ END : end });
});
});
var checkPower = function(p) {
getAttrs([
"repeating_powers_" + pow_ids[p] + "_power_active",
"repeating_powers_" + pow_ids[p] + "_power_end_source",
"repeating_powers_" + pow_ids[p] + "_power_end_ap_cost",
"repeating_powers_" + pow_ids[p] + "_power_end_str_cost",
"repeating_powers_" + pow_ids[p] + "_power_end_fixed",
"repeating_powers_" + pow_ids[p] + "_end_auto_pay"
], function(pow_v) {
var active = parseInt(pow_v[ "repeating_powers_" + pow_ids[p] + "_power_active" ],10)||0;
var auto_pay = parseInt(pow_v[ "repeating_powers_" + pow_ids[p] + "_end_auto_pay" ],10)||0;
if( active == 1 && auto_pay == 1 ) {
var ap_end = parseInt(pow_v["repeating_powers_" + pow_ids[p] + "_power_end_ap_cost"],10)||0;
var str_end = parseInt(pow_v["repeating_powers_" + pow_ids[p] + "_power_end_str_cost"],10)||0;
var fixed_end = parseInt(pow_v["repeating_powers_" + pow_ids[p] + "_power_end_fixed"],10)||0;
switch( pow_v[ "repeating_powers_" + pow_ids[p] + "_power_end_source" ]) {
case "END":
end_used += ( ap_end + fixed_end + str_end );
break;
case "Both":
end_used += ( ap_end + str_end );
break;
default:
}
}
onLastPower();
});
}
for( var j=0; j<pow_ids.length; j++) {
checkPower(j);
}
});
}
var recover = function() {
getAttrs([ "REC", "STUN", "STUN_max", "END", "END_max" ], function(v) {
var recovery = parseInt(v["REC"],10)||0;
var stun_current = parseInt(v["STUN"],10)||0;
var stun_max = parseInt(v["STUN_max"],10)||0;
var end_current = parseInt(v["END"],10)||0;
var end_max = parseInt(v["END_max"],10)||0;
if( stun_current < stun_max ) {
stun_current += recovery;
if( stun_current > stun_max ) stun_current = stun_max;
}
if( end_current < end_max ) {
end_current += recovery;
if( end_current > end_max ) end_current = end_max;
}
setAttrs({ END : end_current, STUN : stun_current });
});
}
on("change:repeating_reserves:reserve_use", function() {
getAttrs([ "repeating_reserves_reserve_end" ], function(v) {
setAttrs({ repeating_reserves_reserve_end: ( (parseInt(v["repeating_reserves_reserve_end"],10)||0) - 1 ) });
});
});
on("change:repeating_powers:button_power_pay_end", function() {
getAttrs([
"end",
"repeating_powers_power_end_source",
"repeating_powers_power_end_reserve_name",
"repeating_powers_power_end_ap_cost",
"repeating_powers_power_end_str_cost",
"repeating_powers_power_end_fixed"
], function(v) {
var current_end = parseInt( v["end"], 10 )||0;
var reserve_name = v["repeating_powers_power_end_reserve_name"];
var ap_cost = parseInt( v["repeating_powers_power_end_ap_cost"], 10 )||0;
var str_cost = parseInt( v["repeating_powers_power_end_str_cost"], 10 )||0;
var end_fixed = parseInt( v["repeating_powers_power_end_fixed"], 10 )||0;
switch( v[ "repeating_powers_power_end_source" ] ) {
case "END":
setAttrs({ END: ( current_end - ap_cost - str_cost - end_fixed ) });
break;
case "Reserve":
setAttrs({ END: ( current_end - str_cost ) });
useReserve( reserve_name, ap_cost + end_fixed );
break;
case "Both":
setAttrs({ END: ( current_end - ap_cost - str_cost ) });
useReserve( reserve_name, end_fixed );
}
});
});
on("change:button_strength_pay_end", function() {
getAttrs([
"end",
"str_end"
], function(v) {
var current_end = parseInt( v["end"], 10 )||0;
var str_end = parseInt( v["str_end"], 10 )||0;
setAttrs({ END: ( current_end - str_end ) });
});
});
on("change:repeating_reserves:button_reserve_refill", function() {
getAttrs([
"repeating_reserves_reserve_end",
"repeating_reserves_reserve_end_max",
"repeating_reserves_reserve_refill_qty"
], function(v) {
var end = parseInt(v["repeating_reserves_reserve_end"],10)||0;
var max = parseInt(v["repeating_reserves_reserve_end_max"],10)||0;
var refill = parseInt(v["repeating_reserves_reserve_refill_qty"],10)||0;
if( refill == 0 ) end = max;
else end += refill;
if( end > max ) end = max;
setAttrs({ repeating_reserves_reserve_end: end });
});
});
on("change:pay_end_button", function() {
getAttrs([ "pay_end_button" ], function(v) {
setAttrs({ pay_end_action : v[ "pay_end_button" ] });
payEnduranceFromCharacter();
payEnduranceFromReserves();
});
});
on("change:recover_button", function() {
getAttrs([ "recover_button" ], function(v) {
setAttrs({ recover_action : v[ "recover_button" ] });
recover();
});
});
on("change:stun change:end change:body", function(eventinfo) {
if(eventinfo.sourceType == "sheetworker" ) return;
var p; /* pattern string for regex */
/* test for whole number (no plus or minus sign) */
p = /^[0-9][0-9]*$/;
if( p.test(eventinfo.newValue) ) {
/* do nothing. accept the new value */
return;
}
/* test for number with a plus or minus sign */
/* this is just a little tricky because I */
/* want to allow for space(s) between the */
/* sign and the value (i.e. + 12) */
p = /^([+,-]?)\s*([0-9][0-9]*)$/;
if( p.test(eventinfo.newValue) ) {
var a = parseInt(eventinfo.previousValue,10);
var b = parseInt(eventinfo.newValue.replace(p,"$1$2"),10);
setAttrs({ [eventinfo.sourceAttribute] : ( a + b ) });
return;
}
/* any other result, rollback the change */
setAttrs({ [eventinfo.sourceAttribute] : eventinfo.previousValue });
});
/* copy configuration toggle buttons from the "Option" page to the configuration area in the html */
var setConfiguration = function() {
getAttrs([
"edit_toggle",
"option_remaining_charges",
"option_fixed_page_width",
"option_zoom_level",
"option_collapsing_sections",
"option_combat_preview",
"option_alternate_header"
], function (v) {
var edit = parseInt( v[ "edit_toggle" ], 10 )||0;
var zoom = parseInt( v[ "option_zoom_level" ], 10 )||0;
setAttrs({
edit_mode: edit,
play_mode: (1 - edit),
remaining_charges: v[ "option_remaining_charges"],
fixed_page_width: v[ "option_fixed_page_width"],
zoom1: ( zoom==1 ? 1 : 0 ),
zoom2: ( zoom==2 ? 1 : 0 ),
collapsing_sections: v[ "option_collapsing_sections"],
combat_preview: v[ "option_combat_preview"],
alternate_header: v[ "option_alternate_header"]
});
});
};
on("change:edit_toggle change:option_remaining_charges change:option_fixed_page_width change:option_zoom_level change:option_collapsing_sections change:option_combat_preview change:option_alternate_header", function() {
setConfiguration();
});
on("sheet:opened",function(){
setAttrs({ debug0 : "", debug1 : "", debug2 : "", debug3 : "", debug4 : "" });
setConfiguration();
setSTR();
setDEX();
setCON();
setINT();
setEGO();
setPRE();
setCharOCV();
setCharDCV();
setOMCV();
setDMCV();
setSPD();
setREC();
setEND();
setBODY();
setSTUN();
setPD();
setRPD();
setHitLocPD();
setHitLocRPD();
setED();
setRED();
setHitLocED();
setHitLocRED();
setMDEF();
setPDEF();
setFDEF();
setDamageDice();
setPowerEnhancements();
setEnduranceCosts();
setPowerFormulas();
setSkillLevels();
setSkillRolls();
calcSenses();
setManeuver();
setRange();
setCombatModifiers();
setCombatSkills();
setPenaltySkills();
setCombatValues();
});
</script>
<!-- ------------------------- -->
<!-- ---- ROLL TEMPLATE ----- -->
<!-- ------------------------- -->
<!-- this div hides the roll template from the game settings preview -->
<div style="display:none">
<rolltemplate class="sheet-rolltemplate-hero6template">
<div class="rt-main-wrap"><div class="rt-main">
<div class="rt-title"><span >{{charname}}</span></div>
{{#ocv}}
<div class="rt-callout-wrapper">
<div class="rt-callout">
<div>{{ocv}}</div>
<div>
{{#base}}<div class="rt-callout-mod"><span>{{base}}</span><span>Base</span></div>{{/base}}
{{#csl}}<div class="rt-callout-mod"><span>{{csl}}</span><span>CSL</span></div>{{/csl}}
{{#pow}}<div class="rt-callout-mod"><span>{{pow}}</span><span>Power</span></div>{{/pow}}
{{#mnvr}}<div class="rt-callout-mod"><span>{{mnvr}}</span><span>Maneuver</span></div>{{/mnvr}}
{{#aim}}<div class="rt-callout-mod"><span>{{aim}}</span><span>Target</span></div>{{/aim}}
{{#range}}<div class="rt-callout-mod"><span>{{range}}</span><span>Range</span></div>{{/range}}
{{#rmod}}<div class="rt-callout-mod"><span>{{rmod}}</span><span>R-Mod</span></div>{{/rmod}}
{{#other}}<div class="rt-callout-mod"><span>{{other}}</span><span>Other</span></div>{{/other}}
{{#psl}}<div class="rt-callout-mod"><span>{{psl}}</span><span>PSL</span></div>{{/psl}}
{{#half}}<div class="rt-callout-mod"><span>{{half}}</span><span>OCV</span></div>{{/half}}
</div>
</div>
</div>
{{/ocv}}
{{#target}}
<div class="rt-callout-wrapper">
<div class="rt-callout">
<div>{{target}}</div>
<div>
{{#base}}<div class="rt-callout-mod"><span>{{base}}</span><span>Base</span></div>{{/base}}
{{#stat}}<div class="rt-callout-mod"><span>{{stat}}</span><span>Stat</span></div>{{/stat}}
{{#pow}}<div class="rt-callout-mod"><span>{{pow}}</span><span>Power</span></div>{{/pow}}
{{#inc}}<div class="rt-callout-mod"><span>{{inc}}</span><span>Increase</span></div>{{/inc}}
{{#lvls}}<div class="rt-callout-mod"><span>{{lvls}}</span><span>Levels</span></div>{{/lvls}}
</div>
</div>
</div>
{{/target}}
{{#power}}
<div class="rt-line rt-head">{{power}}</div>
{{/power}}
{{#action}}
<div class="rt-line rt-head">{{action}}</div>
{{/action}}
{{#maneuver}}
<div class="rt-line">{{maneuver}}</div>
{{/maneuver}}
{{#description}}
<div class="rt-line">{{description}}</div>
{{/description}}
{{#activation}}
{{#activationroll}}
<div class="rt-divider"></div>
<div class="rt-line"><span>Activate {{activation}} or less: </span><span class="rt-roll">{{activationroll}}</span></div>
{{/activationroll}}
{{^activationroll}}
<div class="rt-divider"></div>
<div class="rt-line"><span>Activate {{activation}} or less</span></div>
{{/activationroll}}
{{/activation}}
{{#roll}}
<div class="rt-divider"></div>
<div class="rt-line"><span>Roll: </span><span class="rt-roll">{{roll}}</span></div>
{{/roll}}
{{#attack}}
<div class="rt-divider"></div>
<div class="rt-line"><span>Attack: </span><span class="rt-roll">{{attack}}</span></div>
{{/attack}}
{{#hitlocation}}
{{#power}}<div class="rt-divider"></div>{{/power}}
{{#action}}<div class="rt-divider"></div>{{/action}}
{{^killing}}
{{#rollBetween() hitlocation 3 5}}
<div class="rt-line"><span>Hit Location: </span><span class="rt-roll">{{hitlocation}}, Head</span></div>
<div class="rt-line">x2 STUN after defenses</div>
{{/rollBetween() hitlocation 3 5}}
{{#rollTotal() hitlocation 6}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Hands</div>
<div class="rt-line">x&frac12; STUN after defenses</div>
{{/rollTotal() hitlocation 6}}
{{#rollBetween() hitlocation 7 8}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Arms</div>
<div class="rt-line">x&frac12; STUN after defenses</div>
{{/rollBetween() hitlocation 7 8}}
{{#rollTotal() hitlocation 9}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Shoulders</div>
<div class="rt-line">x1 STUN after defenses</div>
{{/rollTotal() hitlocation 9}}
{{#rollBetween() hitlocation 10 11}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Chest</div>
<div class="rt-line">x1 STUN after defenses</div>
{{/rollBetween() hitlocation 10 11}}
{{#rollTotal() hitlocation 12}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Stomach</div>
<div class="rt-line">x1&frac12; STUN after defenses</div>
{{/rollTotal() hitlocation 12}}
{{#rollTotal() hitlocation 13}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Vitals</div>
<div class="rt-line">x1&frac12; STUN after defenses</div>
{{/rollTotal() hitlocation 13}}
{{#rollTotal() hitlocation 14}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Thighs</div>
<div class="rt-line">x1 STUN after defenses</div>
{{/rollTotal() hitlocation 14}}
{{#rollBetween() hitlocation 15 16}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Legs</div>
<div class="rt-line">x&frac12; STUN after defenses</div>
{{/rollBetween() hitlocation 15 16}}
{{#rollBetween() hitlocation 17 19}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Feet</div>
<div class="rt-line">x&frac12; STUN after defenses</div>
{{/rollBetween() hitlocation 17 19}}
{{/killing}}
{{#killing}}
{{#rollBetween() hitlocation 3 5}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Head</div>
<div class="rt-line">x5 STUN before defenses</div>
{{/rollBetween() hitlocation 3 5}}
{{#rollTotal() hitlocation 6}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Hands</div>
<div class="rt-line">x1 STUN before defenses</div>
{{/rollTotal() hitlocation 6}}
{{#rollBetween() hitlocation 7 8}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Arms</div>
<div class="rt-line">x2 STUN before defenses</div>
{{/rollBetween() hitlocation 7 8}}
{{#rollTotal() hitlocation 9}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Shoulders</div>
<div class="rt-line">x3 STUN before defenses</div>
{{/rollTotal() hitlocation 9}}
{{#rollBetween() hitlocation 10 11}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Chest</div>
<div class="rt-line">x3 STUN before defenses</div>
{{/rollBetween() hitlocation 10 11}}
{{#rollTotal() hitlocation 12}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Stomach</div>
<div class="rt-line">x4 STUN before defenses</div>
{{/rollTotal() hitlocation 12}}
{{#rollTotal() hitlocation 13}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Vitals</div>
<div class="rt-line">x4 STUN before defenses</div>
{{/rollTotal() hitlocation 13}}
{{#rollTotal() hitlocation 14}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Thighs</div>
<div class="rt-line">x2 STUN after defenses</div>
{{/rollTotal() hitlocation 14}}
{{#rollBetween() hitlocation 15 16}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Legs</div>
<div class="rt-line">x2 STUN before defenses</div>
{{/rollBetween() hitlocation 15 16}}
{{#rollBetween() hitlocation 17 19}}
<div class="rt-line"><span>Hit Location: </span>{{hitlocation}}, Feet</div>
<div class="rt-line">x1 STUN before defenses</div>
{{/rollBetween() hitlocation 17 19}}
{{/killing}}
{{#rollBetween() hitlocation 3 5}}
<div class="rt-line">x2 BODY after defenses</div>
{{/rollBetween() hitlocation 3 5}}
{{#rollTotal() hitlocation 6}}
<div class="rt-line">x&frac12; BODY after defenses</div>
{{/rollTotal() hitlocation 6}}
{{#rollBetween() hitlocation 7 8}}
<div class="rt-line">x&frac12; BODY after defenses</div>
{{/rollBetween() hitlocation 7 8}}
{{#rollTotal() hitlocation 9}}
<div class="rt-line">x1 BODY after defenses</div>
{{/rollTotal() hitlocation 9}}
{{#rollBetween() hitlocation 10 11}}
<div class="rt-line">x1 BODY after defenses</div>
{{/rollBetween() hitlocation 10 11}}
{{#rollTotal() hitlocation 12}}
<div class="rt-line">x1 BODY after defenses</div>
{{/rollTotal() hitlocation 12}}
{{#rollTotal() hitlocation 13}}
<div class="rt-line">x2 BODY after defenses</div>
{{/rollTotal() hitlocation 13}}
{{#rollTotal() hitlocation 14}}
<div class="rt-line">x1 BODY after defenses</div>
{{/rollTotal() hitlocation 14}}
{{#rollBetween() hitlocation 15 16}}
<div class="rt-line">x&frac12; BODY after defenses</div>
{{/rollBetween() hitlocation 15 16}}
{{#rollBetween() hitlocation 17 19}}
<div class="rt-line">x&frac12; BODY after defenses</div>
{{/rollBetween() hitlocation 17 19}}
{{/hitlocation}}
{{#damage}}
{{#type}}
<div class="rt-divider"></div>
<div class="rt-damage">{{damage}} {{type}}</div>
{{/type}}
{{/damage}}
{{#notes}}
<div class="rt-divider"></div>
<div class="rt-line rt-head">{{notes}}</div>
{{/notes}}
</div></div>
</rolltemplate>
<!-- this closes the div that hides the roll template from the preview -->
</div>