mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 11:42:29 +00:00
25072 lines
1.0 MiB
Plaintext
25072 lines
1.0 MiB
Plaintext
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Sheet heading with tab selection buttons and tracking variables -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<input type="hidden" class="sheet-tabs-toggle" name="attr_sheetTab" value="characteristics"/>
|
|
<input type="hidden" class="sheet-tally-toggle" name="attr_sheetTally" value="true"/>
|
|
|
|
<div class="tab">
|
|
<button type="action" class="button-tab" name="act_characteristics" tabindex="-1">Characteristics</button>
|
|
<button type="action" class="button-tab" name="act_gear" tabindex="-1">Gear</button>
|
|
<button type="action" class="button-tab" name="act_skills" tabindex="-1">Skills</button>
|
|
<button type="action" class="button-tab" name="act_powers" tabindex="-1">Powers</button>
|
|
<button type="action" class="button-tab" name="act_complications" tabindex="-1">Talents & Complications</button>
|
|
<button type="action" class="button-tab" name="act_options" tabindex="-1">Options</button>
|
|
</div>
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Bio, primary statistics, and combat statistics tab -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<div class="sheet-characteristics">
|
|
<div class="grid-container-tab-characteristics">
|
|
<div class="grid-container-characteristics-leftGrid">
|
|
<div class="item-characteristics-bio">
|
|
<div class="item-name">
|
|
<input type="text" placeholder="Name" name="attr_character_name" title="@{character_name}" maxlength="18" tabindex="1"/>
|
|
</div>
|
|
|
|
<div class="item-title">
|
|
<input type="text" placeholder="Title" name="attr_character_title" title="@{character_title}" maxlength="36" tabindex="2"/>
|
|
</div>
|
|
|
|
<textarea placeholder="Quote" name="attr_backgroundText" title="@{backgroundText}" cols="39" rows="2" maxlength="118" tabindex="3"></textarea>
|
|
</div>
|
|
|
|
<input type="hidden" class="sheet-attributes" name="attr_sheetAttributes" value="standard"/>
|
|
|
|
<div class="item-characteristics-attributes">
|
|
|
|
<!-- Standard sheet attributes -->
|
|
<div class="item-earnings">
|
|
<h1>Experience</h1>
|
|
<input type="number" min="0" max="9999" value="0" name="attr_experience" title="@{experience}" tabindex="4"/>
|
|
<input type="text" value="Money" name="attr_moneyLabel" maxlength="15" tabindex="-1">
|
|
<input type="number" min="-999999" max="999999" value="0" name="attr_money" title="@{money}" step="1" tabindex="5"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes">
|
|
<input type="hidden" value="11" name="attr_strengthChance"/>
|
|
<input type="hidden" value="11" name="attr_dexterityChance"/>
|
|
<input type="hidden" value="11" name="attr_constitutionChance"/>
|
|
<input type="hidden" value="11" name="attr_intelligenceChance"/>
|
|
<input type="hidden" value="11" name="attr_egoChance"/>
|
|
<input type="hidden" value="11" name="attr_presenceChance"/>
|
|
|
|
<div class="item-characteristics-primary-attributes-heading">
|
|
<h2>Characteristics</h2>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<h2>Value</h2>
|
|
<h2>Mod</h2>
|
|
<h2>Roll</h2>
|
|
<h2>CP</h2>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_strengthNet" readonly title="@{strengthNet}" tabindex="-1"/>
|
|
<h2>Strength</h2>
|
|
<input type="number" value="10" name="attr_strength" title="@{strength}" min="1" tabindex="6"/>
|
|
<input type="number" value="0" name="attr_strengthMod" title="@{strengthMod}" tabindex="7"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_strength" title="%{strength}" ><span name="attr_strengthChance"></span></button>
|
|
<input type="text" value="0" name="attr_strengthCP" readonly tabindex="-1" title="@{strengthCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_dexterityNet" readonly title="@{dexterityNet}" tabindex="-1"/>
|
|
<h2>Dexterity</h2>
|
|
<input type="number" value="10" name="attr_dexterity" title="@{dexterity}" min="1" tabindex="8"/>
|
|
<input type="number" value="0" name="attr_dexterityMod" title="@{dexterityMod}" tabindex="9"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_dexterity" title="%{dexterity}" ><span name="attr_dexterityChance"></span></button>
|
|
<input type="text" value="0" name="attr_dexterityCP" readonly tabindex="-1" title="@{dexterityCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_constitutionNet" readonly title="@{constitutionNet}" tabindex="-1"/>
|
|
<h2>Constitution</h2>
|
|
<input type="number" value="10" name="attr_constitution" title="@{constitution}" min="1" tabindex="10"/>
|
|
<input type="number" value="0" name="attr_constitutionMod" title="@{constitutionMod}" tabindex="11"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_constitution" title="%{constitution}" ><span name="attr_constitutionChance"></span></button>
|
|
<input type="text" value="0" name="attr_constitutionCP" readonly tabindex="-1" title="@{constitutionCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_intelligenceNet" readonly title="@{intelligenceNet}" tabindex="-1"/>
|
|
<h2>Intelligence</h2>
|
|
<input type="number" value="10" name="attr_intelligence" title="@{intelligence}" min="1" tabindex="12"/>
|
|
<input type="number" value="0" name="attr_intelligenceMod" title="@{intelligenceMod}" tabindex="13"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_intelligence" title="%{intelligence}" ><span name="attr_intelligenceChance"></span></button>
|
|
<input type="text" value="0" name="attr_intelligenceCP" readonly tabindex="-1" title="@{intelligenceCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_egoNet" readonly title="@{egoNet}" tabindex="-1"/>
|
|
<h2>Ego</h2>
|
|
<input type="number" value="10" name="attr_ego" title="@{ego}" min="1" tabindex="14"/>
|
|
<input type="number" value="0" name="attr_egoMod" title="@{egoMod}" tabindex="15"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_ego" title="%{ego}" ><span name="attr_egoChance"></span></button>
|
|
<input type="text" value="0" name="attr_egoCP" readonly tabindex="-1" title="@{egoCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_presenceNet" readonly title="@{presenceNet}" tabindex="-1"/>
|
|
<h2>Presence</h2>
|
|
<input type="number" value="10" name="attr_presence" title="@{presence}" min="1" tabindex="16"/>
|
|
<input type="number" value="0" name="attr_presenceMod" title="@{presenceMod}" tabindex="17"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_presence" title="%{presence}" ><span name="attr_presenceChance"></span></button>
|
|
<input type="text" value="0" name="attr_presenceCP" readonly tabindex="-1" title="@{presenceCP}"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes">
|
|
<div class="item-characteristics-combat-attributes-heading">
|
|
<h2>Combat Abilities</h2>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<h2>Value</h2>
|
|
<h2>Mod</h2>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<h2>CP</h2>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="3" name="attr_ocvNet" readonly tabindex="-1" title="@{ocvNet}"/>
|
|
<h2>OCV</h2>
|
|
<input type="number" value="3" name="attr_ocv" min="0" tabindex="18" title="@{ocv}"/>
|
|
<input type="number" value="0" name="attr_ocvMod" tabindex="19" title="@{ocvMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_ocvCP" readonly tabindex="-1" title="@{ocvCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="3" name="attr_dcvNet" readonly tabindex="-1" title="@{dcvNet}"/>
|
|
<h2>DCV</h2>
|
|
<input type="number" value="3" name="attr_dcv" min="0" tabindex="20" title="@{dcv}"/>
|
|
<input type="number" value="0" name="attr_dcvMod" tabindex="21" title="@{dcvMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_dcvCP" readonly tabindex="-1" title="@{dcvCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="3" name="attr_omcvNet" readonly tabindex="-1" title="@{omcvNet}"/>
|
|
<h2>OMCV</h2>
|
|
<input type="number" value="3" name="attr_omcv" min="0" tabindex="22" title="@{omcv}"/>
|
|
<input type="number" value="0" name="attr_omcvMod" tabindex="23" title="@{omcvMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_omcvCP" readonly tabindex="-1" title="@{omcvCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="3" name="attr_dmcvNet" readonly tabindex="-1" title="@{dmcvNet}"/>
|
|
<h2>DMCV</h2>
|
|
<input type="number" value="3" name="attr_dmcv" min="0" tabindex="24" title="@{dmcv}"/>
|
|
<input type="number" value="0" name="attr_dmcvMod" tabindex="25" title="@{dmcvMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_dmcvCP" readonly tabindex="-1" title="@{dmcvCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="2" name="attr_speedNet" readonly tabindex="-1" title="@{speedNet}"/>
|
|
<h2>Speed</h2>
|
|
<input type="number" value="2" name="attr_speed" min="1" max="12" tabindex="26" title="@{speed}"/>
|
|
<input type="number" value="0" name="attr_speedMod" tabindex="27" title="@{speedMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_speedCP" readonly tabindex="-1" title="@{speedCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="2" name="attr_pdNet" readonly tabindex="-1" title="@{pdNet}"/>
|
|
<h2>PD</h2>
|
|
<input type="number" value="2" name="attr_pd" min="0" tabindex="28" title="@{pd}"/>
|
|
<input type="number" value="0" name="attr_pdMod" tabindex="29" title="@{pdMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_pdCP" readonly tabindex="-1" title="@{pdCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="2" name="attr_edNet"readonly tabindex="-1" title = "@{edNet}"/>
|
|
<h2>ED</h2>
|
|
<input type="number" value="2" name="attr_ed" min="0" tabindex="30" title = "@{ed}"/>
|
|
<input type="number" value="0" name="attr_edMod" tabindex="31" title = "@{edMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_edCP" readonly tabindex="-1" title="@{edCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="10" name="attr_bodyNet" readonly tabindex="-1" title="@{bodyNet}"/>
|
|
<h2>Body</h2>
|
|
<input type="number" value="10" name="attr_body" min ="1" tabindex="32" title="@{body}"/>
|
|
<input type="number" value="0" name="attr_bodyMod" tabindex="33" title="@{bodyMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_bodyCP" readonly tabindex="-1" title="@{bodyCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="20" name="attr_stunNet" readonly tabindex="-1" title="@{stunNet}"/>
|
|
<h2>Stun</h2>
|
|
<input type="number" value="20" name="attr_stun" min="0" step="2" tabindex="34" title="@{stun}"/>
|
|
<input type="number" value="0" name="attr_stunMod"step="1" tabindex="35" title="@{stunMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_stunCP" readonly tabindex="-1" title="@{stunCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="20" name="attr_enduranceNet" readonly tabindex="-1" title="@{enduranceNet}"/>
|
|
<h2>Endurance</h2>
|
|
<input type="number" value="20" name="attr_endurance" min="0" step="5" tabindex="36" title="@{endurance}"/>
|
|
<input type="number" value="0" name="attr_enduranceMod" step="1" tabindex="37" title="@{enduranceMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_enduranceCP" readonly tabindex="-1" title="@{enduranceCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="4" name="attr_recoveryNet" readonly tabindex="-1" title="@{recoveryNet}"/>
|
|
<h2>Recovery</h2>
|
|
<input type="number" value="4" name="attr_recovery" min="0" tabindex="38" title="@{recovery}"/>
|
|
<input type="number" value="0" name="attr_recoveryMod" tabindex="39" title="@{recoveryMod}"/>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<input type="text" value="0" name="attr_recoveryCP" readonly tabindex="-1" title="@{recoveryCP}"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-movement-abilities">
|
|
<div class="item-characteristics-movement-abilities-heading">
|
|
<h2>Movement</h2>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<h2>Value</h2>
|
|
<h2>Mod</h2>
|
|
<h2>Enc</h2>
|
|
<h2>CP</h2>
|
|
</div>
|
|
|
|
<div class="item-characteristics-movement-abilities-row">
|
|
<input type="text" value="12" name="attr_runningNet" readonly tabindex="-1" title="@{runningNet}"/>
|
|
<h2>Running</h2>
|
|
<input type="number" value="12" name="attr_running" min="0" step="1" tabindex="40" title="@{running}"/>
|
|
<input type="number" value="0" name="attr_runningMod" step="1" tabindex="41" title="@{runningMod}"/>
|
|
<input type="text" value="0" name="attr_runningPenalty" readonly tabindex="-1" title="@{runningPenalty}"/>
|
|
<input type="text" value="0" name="attr_runningCP" readonly tabindex="-1" title="@{runningCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-movement-abilities-row">
|
|
<input type="text" value="4" name="attr_leapingNet" readonly tabindex="-1" title="@{leapingNet}"/>
|
|
<h2>Leaping</h2>
|
|
<input type="number" value="4" name="attr_leaping" min="0" step="2" tabindex="42" title="@{leaping}"/>
|
|
<input type="number" value="0" name="attr_leapingMod" step="1" tabindex="43" title="@{leapingMod}"/>
|
|
<input type="text" value="0" name="attr_leapingPenalty" readonly tabindex="-1" title="@{leapingPenalty}"/>
|
|
<input type="text" value="0" name="attr_leapingCP" readonly tabindex="-1" title="@{leapingCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-movement-abilities-row">
|
|
<input type="text" value="4" name="attr_swimmingNet" readonly tabindex="-1" title="@{swimmingNet}"/>
|
|
<h2>Swimming</h2>
|
|
<input type="number" value="4" name="attr_swimming" min="0" step="2" tabindex="44" title="@{swimming}"/>
|
|
<input type="number" value="0" name="attr_swimmingMod" step="1" tabindex="45" title="@{swimmingMod}"/>
|
|
<input type="text" value="0" name="attr_swimmingPenalty" readonly tabindex="-1" title="@{swimmingPenalty}"/>
|
|
<input type="text" value="0" name="attr_swimmingCP" readonly tabindex="-1" title="@{swimmingCP"/>
|
|
</div>
|
|
|
|
<!-- Placeholder flight movement -->
|
|
<!-- <input type="hidden" value="0" name="attr_flightNet" readonly tabindex="-1" title="@{flightNet}"/>
|
|
<input type="hidden" value="0" name="attr_flight" min="0" step="1" tabindex="46" title="@{flight}"/>
|
|
<input type="hidden" value="0" name="attr_flightMod" step="1" tabindex="47" title="@{flightMod}"/> -->
|
|
</div>
|
|
|
|
<!-- Vehicle size details -->
|
|
<div class="item-characteristics-vehicle-size-attributes">
|
|
<div class="item-characteristics-size-attributes-row">
|
|
<h2>Mass</h2>
|
|
<input type="text" value="100 kg" name="attr_sizeMass" readonly title="@{sizeMass}" tabindex="-1"/>
|
|
<h2>Length</h2>
|
|
<input type="text" value="2× m" name="attr_sizeLength" readonly title="@{sizeLength}" min="1" tabindex="-1"/>
|
|
<h2>OCV+</h2>
|
|
<input type="text" value="0" name="attr_sizeOCV" readonly title="@{sizeOCV}" tabindex="-1"/>
|
|
<h2>KB</h2>
|
|
<input type="text" value="0" name="attr_sizeKB" readonly title="@{sizeKB}" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Vehicle primary attributes -->
|
|
<div class="item-characteristics-vehicle-primary-attributes">
|
|
<div class="item-characteristics-primary-attributes-heading">
|
|
<h2>Characteristics</h2>
|
|
<h2>‍</h2> <!-- Invisible character -->
|
|
<h2>Value</h2>
|
|
<h2>Mod</h2>
|
|
<h2>Roll</h2>
|
|
<h2>CP</h2>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="0" name="attr_sizeNet" readonly title="@{sizeNet}" tabindex="-1"/>
|
|
<h2>Size</h2>
|
|
<input type="number" value="0" name="attr_size" title="@{size}" min="0" max="50" tabindex="5"/>
|
|
<h2>‍</h2>
|
|
<h2>‍</h2>
|
|
<input type="text" value="0" name="attr_sizeCP" readonly tabindex="-1" title="@{sizeCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_strengthNet" readonly title="@{strengthNet}" tabindex="-1"/>
|
|
<h2>Strength</h2>
|
|
<input type="number" value="10" name="attr_strength" title="@{strength}" min="1" tabindex="6"/>
|
|
<input type="number" value="0" name="attr_strengthMod" title="@{strengthMod}" tabindex="7"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_strength" title="%{strength}" ><span name="attr_strengthChance"></span></button>
|
|
<input type="text" value="0" name="attr_strengthCP" readonly tabindex="-1" title="@{strengthCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-primary-attributes-row">
|
|
<input type="text" value="10" name="attr_dexterityNet" readonly title="@{dexterityNet}" tabindex="-1"/>
|
|
<h2>Dexterity</h2>
|
|
<input type="number" value="10" name="attr_dexterity" title="@{dexterity}" min="1" tabindex="8"/>
|
|
<input type="number" value="0" name="attr_dexterityMod" title="@{dexterityMod}" tabindex="9"/>
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_dexterity" title="%{dexterity}" ><span name="attr_dexterityChance"></span></button>
|
|
<input type="text" value="0" name="attr_dexterityCP" readonly tabindex="-1" title="@{dexterityCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="3" name="attr_ocvNet" readonly tabindex="-1" title="@{ocvNet}"/>
|
|
<h2>OCV</h2>
|
|
<input type="number" value="3" name="attr_ocv" min="0" tabindex="18" title="@{ocv}"/>
|
|
<input type="number" value="0" name="attr_ocvMod" tabindex="19" title="@{ocvMod}"/>
|
|
<h2>‍</h2>
|
|
<input type="text" value="0" name="attr_ocvCP" readonly tabindex="-1" title="@{ocvCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="3" name="attr_dcvNet" readonly tabindex="-1" title="@{dcvNet}"/>
|
|
<h2>DCV</h2>
|
|
<input type="number" value="3" name="attr_dcv" min="0" tabindex="20" title="@{dcv}"/>
|
|
<input type="number" value="0" name="attr_dcvMod" tabindex="21" title="@{dcvMod}"/>
|
|
<h2>‍</h2>
|
|
<input type="text" value="0" name="attr_dcvCP" readonly tabindex="-1" title="@{dcvCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="2" name="attr_speedNet" readonly tabindex="-1" title="@{speedNet}"/>
|
|
<h2>Speed</h2>
|
|
<input type="number" value="2" name="attr_speed" min="1" max="12" tabindex="26" title="@{speed}"/>
|
|
<input type="number" value="0" name="attr_speedMod" tabindex="27" title="@{speedMod}"/>
|
|
<h2>‍</h2>
|
|
<input type="text" value="0" name="attr_speedCP" readonly tabindex="-1" title="@{speedCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="2" name="attr_pdNet" readonly tabindex="-1" title="@{pdNet}"/>
|
|
<h2>PD</h2>
|
|
<input type="number" value="2" name="attr_pd" min="0" tabindex="28" title="@{pd}"/>
|
|
<input type="number" value="0" name="attr_pdMod" tabindex="29" title="@{pdMod}"/>
|
|
<h2>‍</h2>
|
|
<input type="text" value="0" name="attr_pdCP" readonly tabindex="-1" title="@{pdCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="2" name="attr_edNet"readonly tabindex="-1" title = "@{edNet}"/>
|
|
<h2>ED</h2>
|
|
<input type="number" value="2" name="attr_ed" min="0" tabindex="30" title = "@{ed}"/>
|
|
<input type="number" value="0" name="attr_edMod" tabindex="31" title = "@{edMod}"/>
|
|
<h2>‍</h2>
|
|
<input type="text" value="0" name="attr_edCP" readonly tabindex="-1" title="@{edCP}"/>
|
|
</div>
|
|
|
|
<div class="item-characteristics-combat-attributes-row">
|
|
<input type="text" value="10" name="attr_bodyNet" readonly tabindex="-1" title="@{bodyNet}"/>
|
|
<h2>Body</h2>
|
|
<input type="number" value="10" name="attr_body" min ="1" tabindex="32" title="@{body}"/>
|
|
<input type="number" value="0" name="attr_bodyMod" tabindex="33" title="@{bodyMod}"/>
|
|
<h2>‍</h2>
|
|
<input type="text" value="0" name="attr_bodyCP" readonly tabindex="-1" title="@{bodyCP}"/>
|
|
</div>
|
|
</div>
|
|
|
|
<input type="hidden" class="vehicle-checks" name="attr_vehicleChecks" value="hide"/>
|
|
|
|
<div class="item-characteristics-vehicle-propulsion-systems">
|
|
<div class="item-characteristics-propulsion-system">
|
|
<div class="item-characteristics-system-heading">
|
|
<div class="subitem-characterstics-system-heading-deletebox">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_primaryPropulsionDelete">
|
|
<span class="checkmark" title="@{primaryPropulsionDelete}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-characterstics-system-heading-text">
|
|
<input type="text" value="" placeholder="Propulsion System" name="attr_primaryPropulsionLabel" title="@{primaryPropulsionLabel}" maxlength="24" tabindex="40">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-propulsion-system-block">
|
|
<input type="hidden" class="show-primary-propulsion" name="attr_showPrimaryPropulsion" value="essentials"/>
|
|
|
|
<div class="item-characteristics-propulsion-system-essentials">
|
|
<input type="hidden" class="primary-propulsion-details" name="attr_primaryPropulsionDetails" value="standard"/>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<input type="text" value="0" name="attr_primaryPropulsionNet" readonly tabindex="-1" title="@{primaryPropulsionNet}"/>
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_primaryPropulsionMode" title="@{attr_primaryPropulsionMode}" tabindex="-1">
|
|
<option value="ground" selected>Ground</option>
|
|
<option value="flight">Flight</option>
|
|
<option value="swimming">Swimming</option>
|
|
<option value="leaping">Leaping</option>
|
|
<option value="swinging">Swinging</option>
|
|
<option value="teleport">Teleport</option>
|
|
<option value="extra">Extra-Dim.</option>
|
|
<option value="ftl">FTL Travel</option>
|
|
<option value="clinging">Clinging</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_primaryPropulsionCP" readonly tabindex="-1" title="@{primaryPropulsionCP"/>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Move</h2>
|
|
<input type="number" value="0" name="attr_primaryPropulsion" min="0" step="1" tabindex="41" title="@{primaryPropulsion}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Mod</h2>
|
|
<input type="number" value="0" name="attr_primaryPropulsionMod" step="1" tabindex="42" title="@{primaryPropulsionMod}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_primaryFTLvelocty" title="@{attr_primaryFTLvelocty}" tabindex="-1">
|
|
<option value="10" selected>1 LY/Y</option>
|
|
<option value="12" selected>2 LY/Y</option>
|
|
<option value="14" selected>4 LY/Y</option>
|
|
<option value="16" selected>8 LY/Y</option>
|
|
<option value="18" selected>16 LY/Y</option>
|
|
<option value="20" selected>32 LY/Y</option>
|
|
<option value="22" selected>64 LY/Y</option>
|
|
<option value="24" selected>128 LY/Y</option>
|
|
<option value="26" selected>250 LY/Y</option>
|
|
<option value="28" selected>500 LY/Y</option>
|
|
<option value="30" selected>1k LY/Y</option>
|
|
<option value="32" selected>2k LY/Y</option>
|
|
<option value="34" selected>4k LY/Y</option>
|
|
<option value="36" selected>8k LY/Y</option>
|
|
<option value="38" selected>16k LY/Y</option>
|
|
<option value="40" selected>32k LY/Y</option>
|
|
</select>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Instant</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_primaryInstantFTL">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Base</h2>
|
|
<input type="text" value="20" name="attr_primaryPropulsionExtra" readonly tabindex="-1" title="@{primaryPropulsionExtra}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Adds</h2>
|
|
<input type="number" value="0" name="attr_primaryPropulsionAdds" step="1" tabindex="42" title="@{primaryPropulsionAdds}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Move</h2>
|
|
<input type="number" value="0" name="attr_primaryPropulsion" min="0" step="1" tabindex="41" title="@{primaryPropulsion}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Adds</h2>
|
|
<input type="number" value="0" name="attr_primaryPropulsionAdds" step="1" tabindex="42" title="@{primaryPropulsionAdds}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPrimaryPropulsionEND" title="%{buttonPrimaryPropulsionEND} " tabindex="-1">END</button>
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_primaryNoncombatMultiple" title="@{attr_primaryNoncombatMultiple}" tabindex="-1">
|
|
<option value="0">NC ×1</option>
|
|
<option value="1" selected>NC ×2</option>
|
|
<option value="2">NC ×4</option>
|
|
<option value="3">NC ×8</option>
|
|
<option value="4">NC ×16</option>
|
|
<option value="5">NC ×32</option>
|
|
</select>
|
|
</div>
|
|
<button type="action" class="button button-system-more" tabindex="-1" name="act_buttonPrimaryMore" title="%{buttonPrimaryMore} " tabindex="-1">More</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-propulsion-system-more">
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_primaryPropulsionSlotType" title="@{attr_primaryPropulsionSlotType}" tabindex="-1">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
</select>
|
|
</div>
|
|
<div class="subitem-characteristics-system-cost">
|
|
<h2>CP</h2>
|
|
<input type="text" value="0" name="attr_primaryPropulsionCP" readonly tabindex="-1" title="@{primaryPropulsionCP"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Adv</h2>
|
|
<input type="number" value="0" name="attr_primaryPropulsionAdv" min="0" step="0.25" tabindex="45" title="@{primaryPropulsion}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Lim</h2>
|
|
<input type="number" value="0" name="attr_primaryPropulsionLimitations" min="0" step="0.25" tabindex="42" title="@{primaryPropulsionLimitations}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_primaryPropulsionCostsEND" title="@{attr_primaryPropulsionCostsEND}" tabindex="-1">
|
|
<option value="noEND" selected>Zero END</option>
|
|
<option value="costsENDhalf">Half END</option>
|
|
<option value="costsENDfull">Full END</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_primaryPropulsionEND" readonly tabindex="-1" title="@{primaryPropulsionEND}"/>
|
|
<button type="action" class="button button-system-more" tabindex="-1" name="act_buttonPrimaryMore" title="%{buttonPrimaryMore} " tabindex="-1">Back</button>
|
|
</div>
|
|
</div>
|
|
|
|
<textarea placeholder="Modifiers" name="attr_primaryPropulsionText" title="@{primaryPropulsionText}" cols="18" rows="3" maxlength="90" tabindex="46"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-propulsion-system">
|
|
<div class="item-characteristics-system-heading">
|
|
<div class="subitem-characterstics-system-heading-deletebox">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_secondaryPropulsionDelete">
|
|
<span class="checkmark" title="@{secondaryPropulsionDelete}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-characterstics-system-heading-text">
|
|
<input type="text" value="" placeholder="Propulsion System" name="attr_secondaryPropulsionLabel" title="@{secondaryPropulsionLabel}" maxlength="24" tabindex="47">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-propulsion-system-block">
|
|
<input type="hidden" class="show-secondary-propulsion" name="attr_showSecondaryPropulsion" value="essentials"/>
|
|
|
|
<div class="item-characteristics-propulsion-system-essentials">
|
|
<input type="hidden" class="secondary-propulsion-details" name="attr_secondaryPropulsionDetails" value="essentials"/>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<input type="text" value="0" name="attr_secondaryPropulsionNet" readonly tabindex="-1" title="@{secondaryPropulsionNet}"/>
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_secondaryPropulsionMode" title="@{attr_secondaryPropulsionMode}" tabindex="-1">
|
|
<option value="ground" selected>Ground</option>
|
|
<option value="flight">Flight</option>
|
|
<option value="swimming">Swimming</option>
|
|
<option value="leaping">Leaping</option>
|
|
<option value="swinging">Swinging</option>
|
|
<option value="teleport">Teleport</option>
|
|
<option value="extra">Extra-Dim.</option>
|
|
<option value="ftl">FTL Travel</option>
|
|
<option value="clinging">Clinging</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_secondaryPropulsionCP" readonly tabindex="-1" title="@{secondaryPropulsionCP"/>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Move</h2>
|
|
<input type="number" value="0" name="attr_secondaryPropulsion" min="0" step="1" tabindex="48" title="@{secondaryPropulsion}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Mod</h2>
|
|
<input type="number" value="0" name="attr_secondaryPropulsionMod" step="1" tabindex="49" title="@{secondaryPropulsionMod}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_secondaryFTLvelocty" title="@{attr_secondaryFTLvelocty}" tabindex="-1">
|
|
<option value="10" selected>1 LY/Y</option>
|
|
<option value="12" selected>2 LY/Y</option>
|
|
<option value="14" selected>4 LY/Y</option>
|
|
<option value="16" selected>8 LY/Y</option>
|
|
<option value="18" selected>16 LY/Y</option>
|
|
<option value="20" selected>32 LY/Y</option>
|
|
<option value="22" selected>64 LY/Y</option>
|
|
<option value="24" selected>128 LY/Y</option>
|
|
<option value="26" selected>250 LY/Y</option>
|
|
<option value="28" selected>500 LY/Y</option>
|
|
<option value="30" selected>1k LY/Y</option>
|
|
<option value="32" selected>2k LY/Y</option>
|
|
<option value="34" selected>4k LY/Y</option>
|
|
<option value="36" selected>8k LY/Y</option>
|
|
<option value="38" selected>16k LY/Y</option>
|
|
<option value="40" selected>32k LY/Y</option>
|
|
</select>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Instant</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_secondaryInstantFTL">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Base</h2>
|
|
<input type="text" value="20" name="attr_secondaryPropulsionExtra" readonly tabindex="-1" title="@{secondaryPropulsionExtra}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Adds</h2>
|
|
<input type="number" value="0" name="attr_secondaryPropulsionAdds" step="1" tabindex="49" title="@{secondaryPropulsionAdds}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Move</h2>
|
|
<input type="number" value="0" name="attr_secondaryPropulsion" min="0" step="1" tabindex="48" title="@{secondaryPropulsion}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Adds</h2>
|
|
<input type="number" value="0" name="attr_secondaryPropulsionAdds" step="1" tabindex="49" title="@{secondaryPropulsionAdds}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonSecondaryPropulsionEND" title="%{buttonSecondaryPropulsionEND} " tabindex="-1">END</button>
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_secondaryNoncombatMultiple" title="@{attr_secondaryNoncombatMultiple}" tabindex="-1">
|
|
<option value="0">NC ×1</option>
|
|
<option value="1" selected>NC ×2</option>
|
|
<option value="2">NC ×4</option>
|
|
<option value="3">NC ×8</option>
|
|
<option value="4">NC ×16</option>
|
|
<option value="5">NC ×32</option>
|
|
</select>
|
|
</div>
|
|
<button type="action" class="button button-system-more" tabindex="-1" name="act_buttonSecondaryMore" title="%{buttonSecondaryMore} " tabindex="-1">More</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-propulsion-system-more">
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_secondaryPropulsionSlotType" title="@{attr_secondaryPropulsionSlotType}" tabindex="-1">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
</select>
|
|
</div>
|
|
<div class="subitem-characteristics-system-cost">
|
|
<h2>CP</h2>
|
|
<input type="text" value="0" name="attr_secondaryPropulsionCP" readonly tabindex="-1" title="@{secondaryPropulsionCP"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Adv</h2>
|
|
<input type="number" value="0" name="attr_secondaryPropulsionAdv" min="0" step="0.25" tabindex="52" title="@{secondaryPropulsion}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Lim</h2>
|
|
<input type="number" value="0" name="attr_secondaryPropulsionLimitations" min="0" step="0.25" tabindex="53" title="@{secondaryPropulsionLimitations}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-propulsion-system-row">
|
|
<div class="custom-select-propulsion">
|
|
<select name="attr_secondaryPropulsionCostsEND" title="@{attr_secondaryPropulsionCostsEND}" tabindex="-1">
|
|
<option value="noEND" selected>Zero END</option>
|
|
<option value="costsENDhalf">Half END</option>
|
|
<option value="costsENDfull">Full END</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_secondaryPropulsionEND" readonly tabindex="-1" title="@{secondaryPropulsionEND}"/>
|
|
<button type="action" class="button button-system-more" tabindex="-1" name="act_buttonSecondaryMore" title="%{buttonSecondaryMore}" tabindex="-1">Back</button>
|
|
</div>
|
|
</div>
|
|
|
|
<textarea placeholder="Modifiers" name="attr_secondaryPropulsionText" title="@{secondaryPropulsionText}" cols="18" rows="3" maxlength="90" tabindex="54"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Vehicle power systems -->
|
|
<div class="item-characteristics-vehicle-power-systems">
|
|
<div class="item-characteristics-power-system">
|
|
<div class="item-characteristics-system-heading">
|
|
<div class="subitem-characterstics-system-heading-deletebox">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_mainPowerDelete">
|
|
<span class="checkmark" title="@{mainPowerDelete}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-characterstics-system-heading-text">
|
|
<input type="text" value="" placeholder="Main Power" name="attr_mainReserveLabel" title="@{mainReserveLabel}" maxlength="24" tabindex="55">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-power-system-block">
|
|
<div class="item-characteristics-power-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>END</h2>
|
|
<input type="number" value="0" name="attr_mainReserveEND" min ="0" step="4" tabindex="56" title="@{mainReserveEND}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-cost">
|
|
<h2>CP</h2>
|
|
<input type="text" value="0" name="attr_mainReserveCP" readonly tabindex="-1" title="@{mainReserveCP}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-power-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>REC</h2>
|
|
<input type="number" value="0" name="attr_mainReserveREC" min ="0" step="3" tabindex="57" title="@{mainReserveREC}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Lim</h2>
|
|
<input type="number" value="0" name="attr_mainReserveLIM" min ="0" step="0.25" tabindex="58" title="@{mainReserveLIM}"/>
|
|
</div>
|
|
</div>
|
|
<textarea placeholder="Limitations" name="attr_mainReserveText" title="@{mainReserveText}" cols="18" rows="2" maxlength="90" tabindex="59"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-power-system">
|
|
<div class="item-characteristics-system-heading">
|
|
<div class="subitem-characterstics-system-heading-deletebox">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_auxiliaryPowerDelete">
|
|
<span class="checkmark" title="@{auxiliaryPowerDelete}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-characterstics-system-heading-text">
|
|
<input type="text" value="" placeholder="Auxiliary Power" name="attr_auxiliaryReserveLabel" title="@{auxiliaryReserveLabel}" maxlength="24" tabindex="60">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-characteristics-power-system-block">
|
|
<div class="item-characteristics-power-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>END</h2>
|
|
<input type="number" value="0" name="attr_auxiliaryReserveEND" step="4" min ="0" tabindex="61" title="@{auxiliaryReserveEND}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-cost">
|
|
<h2>CP</h2>
|
|
<input type="text" value="0" name="attr_auxiliaryReserveCP" readonly tabindex="-1" title="@{auxiliaryReserveCP}"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-characteristics-power-system-row">
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>REC</h2>
|
|
<input type="number" value="0" name="attr_auxiliaryReserveREC" min ="0" step="3" tabindex="62" title="@{auxiliaryReserveREC}"/>
|
|
</div>
|
|
<div class="subitem-characteristics-system-value">
|
|
<h2>Lim</h2>
|
|
<input type="number" value="0" name="attr_auxiliaryReserveLIM" min ="0" step="0.25" tabindex="63" title="@{auxiliaryReserveLIM}"/>
|
|
</div>
|
|
</div>
|
|
<textarea placeholder="Limitations" name="attr_auxiliaryReserveText" title="@{auxiliaryReserveText}" cols="18" rows="2" maxlength="90" tabindex="64"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Vehicle systems power/END draw -->
|
|
<div class="item-characteristics-vehicle-power-draw">
|
|
<div class="item-characteristics-size-attributes-row">
|
|
<h2>Systems Power Draw</h2>
|
|
<input type="number" value="0" name="attr_systemsEND" step="1" tabindex="65" title="@{systemsEND}"/>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonSystemsEND" title="%{buttonSystemsEND} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="grid-container-characteristics-rightGrid">
|
|
<div class="item-characteristics-portrait">
|
|
|
|
<!-- Hidden variables for the portrait display slideshow -->
|
|
<input type="hidden" class="item-portrait-slideshow" name="attr_portraitSelection" value="0" min="0" step="1" max="2"/>
|
|
<input type="hidden" name="attr_totalNumberOfPortraits" value="2"/>
|
|
|
|
<!-- A set of portrait images or rule cards with the visible image selected by the user. -->
|
|
<!-- There are three cards: -->
|
|
<!-- (1) A welcome card that could be changed to something else. Increasing attr_totalNumberOfPortraits's maximum value (and updates to the CSS) would allow for more cards. -->
|
|
<!-- (2) The character's Avatar Portrait. -->
|
|
<!-- (3) A sticky note for more player notes. -->
|
|
|
|
<!-- The rule card: -->
|
|
<div class="item-portrait-00">
|
|
<h1>Welcome!</h1>
|
|
<div class="item-portrait-flex-container">
|
|
<div class="item-portrait-rule-description">
|
|
<h1>Starting Character Points</h1>
|
|
<p>Heroic characters are typically built on a base of 125 CP plus up to 50 CP that are offset with Complications. Use the Bonus CP input at the bottom of this sheet to account for free abilities.</p>
|
|
</div>
|
|
<div class="item-portrait-rule-description">
|
|
<h1>Portrait</h1>
|
|
<p>You may change this frame to your avatar or to space for more notes with the hidden side arrow buttons.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Avatar Portrait Image -->
|
|
<div class="item-portrait-01">
|
|
<img alt="Avatar Image" name="attr_theSheetAvatar" title="Sheet Avatar" style="width:250px;height:250px;">
|
|
</div>
|
|
|
|
<!-- Sticky Note -->
|
|
<div class="item-portrait-02">
|
|
<textarea placeholder="Sticky Note" name="attr_portraitStickyNote" maxlength="403"></textarea>
|
|
</div>
|
|
|
|
<!-- Portrait frame select buttons -->
|
|
<button type="action" name="act_left-arrow-button" tabindex="-1" class="button button-left-arrow">❮</button>
|
|
<button type="action" name="act_right-arrow-button" tabindex="-1" class="button button-right-arrow">❯</button>
|
|
</div>
|
|
|
|
<input type="hidden" class="sheet-health-display" name="attr_sheetHealthDisplay" value="standard"/>
|
|
<div class="item-characteristics-health">
|
|
<h2>BODY</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentBODY" title="@{CurrentBODY}" value="10" maxlength="3" pattern="[0-9]+" tabindex="70"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_bodyPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_bodyMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<h2>STUN</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentSTUN" title="@{CurrentSTUN}" value="20" maxlength="3" pattern="[0-9]+" tabindex="71"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_stunPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_stunMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<h2>END</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentEND" title="@{CurrentEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="72"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_endurancePlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_enduranceMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<button type="action" class="button buttonRecover" tabindex="-1" name="act_recoverHealth" title="%{recoverHealth}">Recover</button>
|
|
<button type="action" class="button buttonReset" tabindex="-1" name="act_resetHealth" title="%{resetHealth}">Reset</button>
|
|
</div>
|
|
|
|
<div class="item-characteristics-health">
|
|
<h2>BODY</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentBODY" title="@{CurrentBODY}" value="10" maxlength="3" pattern="[0-9]+" tabindex="80"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_bodyPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_bodyMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-health-selection-container">
|
|
<h2>END</h2>
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_reserveSelectChar" value="0" checked>
|
|
<span class="custom-radio-button-health"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentMainEND" title="@{CurrentMainEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="81"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_primaryPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_primaryMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-health-selection-container">
|
|
<h2>AUX</h2>
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_reserveSelectChar" value="1">
|
|
<span class="custom-radio-button-health"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentAuxiliaryEND" title="@{CurrentAuxiliaryEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="82"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_auxiliaryPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_auxiliaryMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<button type="action" class="button buttonRecover" tabindex="-1" name="act_recoverHealth" title="%{recoverHealth}">Recover</button>
|
|
<button type="action" class="button buttonReset" tabindex="-1" name="act_resetHealth" title="%{resetHealth}">Reset</button>
|
|
</div>
|
|
|
|
<div class="grid-container-container-turn-segments">
|
|
<label class="container-speed-indicator" >
|
|
<input type="checkbox" name="attr_speedIndicator01">
|
|
<span class="checkmark01" ></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator02">
|
|
<span class="checkmark02"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator03">
|
|
<span class="checkmark03"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator04">
|
|
<span class="checkmark04"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator05">
|
|
<span class="checkmark05"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator06" checked="true">
|
|
<span class="checkmark06"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator07">
|
|
<span class="checkmark07"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator08">
|
|
<span class="checkmark08"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator09">
|
|
<span class="checkmark09"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator10">
|
|
<span class="checkmark10"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator11">
|
|
<span class="checkmark11"></span>
|
|
</label>
|
|
<label class="container-speed-indicator">
|
|
<input type="checkbox" name="attr_speedIndicator12" checked="true">
|
|
<span class="checkmark12"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-characteristics-turn-tracker">
|
|
<button type="roll" class="button buttonTracker" tabindex="-1" name="roll_initiative" title="%{initiative}" value="&{template:custom} {{title=@{character_name}}} {{subtitle=Joins the Initiative}} {{Dexterity=[[(@{dexterity}[Dexterity]+(?{Modifiers|0})[Modifiers]) &{tracker}]]}}">Tracker</button>
|
|
</div>
|
|
|
|
<div class="item-characteristics-history">
|
|
<textarea name="attr_historyText" value="" placeholder="Biography" title="@{historyText}" maxlength="4440" tabindex="90"></textarea>
|
|
</div>
|
|
|
|
<!-- Perception Rolls -->
|
|
|
|
<div class="item-characteristics-perception">
|
|
<div class="subitem-characteristics-perception-row-container">
|
|
<div class="subitem-characteristics-perception-stat-container">
|
|
<h1>Perception</h1>
|
|
<div class="subitem-characteristics-perception-column-container-first">
|
|
<span><input type="text" name="attr_perceptionBase" title="@{perceptionBase}" value="11" readonly tabindex="-1">+<input type="number" name="attr_enhancedPerceptionModifier" title="@{enhancedPerceptionModifier}" value="0" min="-10" max="10" step="1" tabindex="71"></span>
|
|
|
|
<input type="text" name="attr_perceptionEnhanced" title="@{perceptionEnhanced}" value="11" readonly tabindex="-1">
|
|
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_perceptionRoll" title="%{perceptionRoll}" >Roll</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-characteristics-perception-stat-container">
|
|
<input type="text" value="" placeholder="Vision" name="attr_perceptionVisionLabel" title="@{perceptionVisionLabel}" maxlength="12" tabindex="72">
|
|
<div class="subitem-characteristics-perception-column-container">
|
|
<span>+<input type="number" name="attr_perceptionModifierVision" title="@{perceptionModifierVision}" value="0" min="-10" max="10" step="1" tabindex="73"></span>
|
|
|
|
<input type="text" name="attr_perceptionVision" title="@{perceptionVision}" value="11" readonly tabindex="-1">
|
|
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_perceptionRollVision" title="%{roll_perceptionRollVision}" >Roll</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-characteristics-perception-stat-container">
|
|
<input type="text" value="" placeholder="Hearing" name="attr_perceptionHearingLabel" title="@{perceptionHearingLabel}" maxlength="12" tabindex="74">
|
|
<div class="subitem-characteristics-perception-column-container">
|
|
<span>+<input type="number" name="attr_perceptionModifierHearing" title="@{perceptionModifierHearing}" value="0" min="-10" max="10" step="1" tabindex="75"></span>
|
|
|
|
<input type="text" name="attr_perceptionHearing" title="@{perceptionHearing}" value="11" readonly tabindex="-1">
|
|
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_perceptionRollHearing" title="%{roll_perceptionRollHearing}" >Roll</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-characteristics-perception-stat-container">
|
|
<input type="text" value="" placeholder="Smell" name="attr_perceptionSmellLabel" title="@{perceptionSmellLabel}" maxlength="12" tabindex="76">
|
|
<div class="subitem-characteristics-perception-column-container">
|
|
<span>+<input type="number" name="attr_perceptionModifierSmell" title="@{perceptionModifierSmell}" value="0" min="-10" max="10" step="1" tabindex="77"></span>
|
|
|
|
<input type="text" name="attr_perceptionSmell" title="@{perceptionSmell}" value="11" readonly tabindex="-1">
|
|
|
|
<button type="action" class="button buttonRoll" tabindex="-1" name="act_perceptionRollSmell" title="%{roll_perceptionRollSmell}" >Roll</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Gear, weapons, and armor tab -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<div class="sheet-gear">
|
|
<div class="grid-container-tab-gear">
|
|
<div class="item-tab-gear-flex-container-encumbrance">
|
|
|
|
<div class="subitem-tab-gear-flex-container-encumbrance">
|
|
<h1>Lift</h1>
|
|
<h1>Weight</h1>
|
|
<input type="text" name="attr_liftWeightDisplay" title="@{liftWeight}" value="100" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-encumbrance">
|
|
<h1>Free</h1>
|
|
<h1>Carry</h1>
|
|
<input type="text" name="attr_freeCarryDisplay" title="@{freeCarry}" value="10" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-encumbrance">
|
|
<h1>Carried</h1>
|
|
<h1>Load</h1>
|
|
<input type="text" name="attr_carriedWeightDisplay" title="@{carriedWeight}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-encumbrance">
|
|
<h1>END</h1>
|
|
<h1>per Turn</h1>
|
|
<input type="number" name="attr_weightEndPenalty" title="@{weightEndPenalty}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-encumbrance">
|
|
<h1>Movement</h1>
|
|
<h1>Penalty</h1>
|
|
<input type="number" name="attr_weightMovePenalty" title="@{weightMovePenalty}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-encumbrance">
|
|
<h1>DCV & DEX</h1>
|
|
<h1>Penalty</h1>
|
|
<input type="number" name="attr_weightDexDCVPenalty" title="@{weightDexDCVPenalty}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-encumbrance-bonus">
|
|
<h1>DCV</h1>
|
|
<h1>Modifier</h1>
|
|
<div class="subitem-tab-gear-plus-minus-enclosure">
|
|
<input type="text" name="attr_bonusDCVmodifier" title="@{bonusDCVmodifier}" value="0" maxlength="2" pattern="[0-9]+" tabindex="-1"/>
|
|
<div class="subitem-tab-gear-flex-container-stat">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_bonusDCVmodifierPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_bonusDCVmodifierMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-cv-status">
|
|
<div class="subitem-tab-gear-flex-container-ocv-status">
|
|
<div class="cv-status-label-container">
|
|
<h1>OCV*</h1>
|
|
</div>
|
|
<input type="number" name="attr_ephemeralOCV" title="@{ephemeralOCV}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-dcv-status">
|
|
<div class="cv-status-label-container">
|
|
<h1>DCV*</h1>
|
|
</div>
|
|
<input type="number" name="attr_ephemeralDCV" title="@{ephemeralDCV}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-tab-gear-grid-container-armor">
|
|
<div class="subitem-tab-gear-flex-container-armor">
|
|
<input type="hidden" class="armor-checks" name="attr_armorChecks" value="move"/>
|
|
|
|
<div class="subitem-tab-gear-flex-container-armor-heading">
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" name="attr_checkArmored">
|
|
<span class="checkmark-tiny" title="@{checkArmored}"></span>
|
|
</label>
|
|
<label class="tiny-xbox-dummy-container">
|
|
<div class="tiny-xbox-dummy">
|
|
</div>
|
|
</label>
|
|
|
|
<h1>Armor</h1>
|
|
<div class="set-AtoB-button">
|
|
<button type="action" name="act_armorSetAtoB" tabindex="-1" class="button button-gear-set"><div>A/B</div></button>
|
|
</div>
|
|
<h1>rPD</h1>
|
|
<h1>PD</h1>
|
|
<h1>rED</h1>
|
|
<h1>ED</h1>
|
|
<h1>END/T</h1>
|
|
<h1>ACT</h1>
|
|
<h1>‍</h1>
|
|
<h1>Locations</h1>
|
|
<h1>Mass</h1>
|
|
</div>
|
|
|
|
<!-- Armor Item 01 -->
|
|
<div class="subitem-tab-gear-flex-container-armor-row">
|
|
<div class="armor-mover-plus-minus-enclosure">
|
|
<div class="armor-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_armorUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_armorDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_armorCarried01">
|
|
<span class="checkmark-tiny" title="@{armorCarried01}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_armorDelete01">
|
|
<span class="checkmark" title="@{armorDelete01}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_armorName01" title="@{armorName01}" value="" maxlength="20" tabindex="1"/>
|
|
|
|
<input type="number" name="attr_armorPD01" title="@{armorPD01}" step="1" value="0" min="0" step="1" tabindex="2"/>
|
|
<input type="number" name="attr_totalPD01" title="@{totalPD01}" step="1" value="0" min="0" step="1" tabindex="3"/>
|
|
<input type="number" name="attr_armorED01" title="@{armorED01}" step="1" value="0" min="0" step="1" tabindex="4"/>
|
|
<input type="number" name="attr_totalED01" title="@{totalED01}" step="1" value="0" min="0" step="1" tabindex="5"/>
|
|
<div class="custom-select">
|
|
<select name="attr_armorEND01" title="@{armorEND01}" tabindex="-1">
|
|
<option value="5">5</option>
|
|
<option value="4">4</option>
|
|
<option value="3">3</option>
|
|
<option value="2">2</option>
|
|
<option value="1">1</option>
|
|
<option value="0" selected>0</option>
|
|
</select>
|
|
</div>
|
|
<div class="custom-select">
|
|
<select name="attr_armorActivation01" title="@{armorActivation01}" tabindex="-1">
|
|
<option value="15">15-</option>
|
|
<option value="14">14-</option>
|
|
<option value="13">13-</option>
|
|
<option value="12">12-</option>
|
|
<option value="11">11-</option>
|
|
<option value="10">10-</option>
|
|
<option value="9">9-</option>
|
|
<option value="8">8-</option>
|
|
<option value="18" selected>NA</option>
|
|
</select>
|
|
</div>
|
|
<button type="action" class="button buttonRollActivate" tabindex="-1" name="act_activateArmor01" title="%{activateArmor01}" >Roll</button>
|
|
<input type="text" class="armorLocationsText" name="attr_armorLocations01" title="@{armorLocations01}" maxlength="24" tabindex="6"/>
|
|
<input type="number" name="attr_armorMass01" title="@{armorMass01}" value="0" min="0" step="0.1" tabindex="7"/>
|
|
</div>
|
|
|
|
<!-- Armor Item 02 -->
|
|
<div class="subitem-tab-gear-flex-container-armor-row">
|
|
<div class="armor-mover-plus-minus-enclosure">
|
|
<div class="armor-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_armorUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_armorDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_armorCarried02">
|
|
<span class="checkmark-tiny" title="@{armorCarried02}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_armorDelete02">
|
|
<span class="checkmark" title="@{armorDelete02}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_armorName02" title="@{armorName02}" value="" maxlength="20" tabindex="11"/>
|
|
|
|
<input type="number" name="attr_armorPD02" title="@{armorPD02}" step="1" value="0" min="0" step="1" tabindex="12"/>
|
|
<input type="number" name="attr_totalPD02" title="@{totalPD02}" step="1" value="0" min="0" step="1" tabindex="13"/>
|
|
<input type="number" name="attr_armorED02" title="@{armorED02}" step="1" value="0" min="0" step="1" tabindex="14"/>
|
|
<input type="number" name="attr_totalED02" title="@{totalED02}" step="1" value="0" min="0" step="1" tabindex="15"/>
|
|
<div class="custom-select">
|
|
<select name="attr_armorEND02" title="@{armorEND02}" tabindex="-1">
|
|
<option value="5">5</option>
|
|
<option value="4">4</option>
|
|
<option value="3">3</option>
|
|
<option value="2">2</option>
|
|
<option value="1">1</option>
|
|
<option value="0" selected>0</option>
|
|
</select>
|
|
</div>
|
|
<div class="custom-select">
|
|
<select name="attr_armorActivation02" title="@{armorActivation02}" tabindex="-1">
|
|
<option value="15">15-</option>
|
|
<option value="14">14-</option>
|
|
<option value="13">13-</option>
|
|
<option value="12">12-</option>
|
|
<option value="11">11-</option>
|
|
<option value="10">10-</option>
|
|
<option value="9">9-</option>
|
|
<option value="8">8-</option>
|
|
<option value="18" selected>NA</option>
|
|
</select>
|
|
</div>
|
|
<button type="action" class="button buttonRollActivate" tabindex="-1" name="act_activateArmor02" title="%{activateArmor02}" >Roll</button>
|
|
<input type="text" class="armorLocationsText" name="attr_armorLocations02" title="@{armorLocations02}" maxlength="24" tabindex="16"/>
|
|
<input type="number" name="attr_armorMass02" title="@{armorMass02}" value="0" min="0" step="0.1" tabindex="17"/>
|
|
</div>
|
|
|
|
<!-- Armor Item 03 -->
|
|
<div class="subitem-tab-gear-flex-container-armor-row">
|
|
<div class="armor-mover-plus-minus-enclosure">
|
|
<div class="armor-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_armorUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_armorDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_armorCarried03">
|
|
<span class="checkmark-tiny" title="@{armorCarried03}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_armorDelete03">
|
|
<span class="checkmark" title="@{armorDelete03}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_armorName03" title="@{armorName03}" value="" maxlength="20" tabindex="21"/>
|
|
|
|
<input type="number" name="attr_armorPD03" title="@{armorPD03}" step="1" value="0" min="0" step="1" tabindex="22"/>
|
|
<input type="number" name="attr_totalPD03" title="@{totalPD03}" step="1" value="0" min="0" step="1" tabindex="23"/>
|
|
<input type="number" name="attr_armorED03" title="@{armorED03}" step="1" value="0" min="0" step="1" tabindex="24"/>
|
|
<input type="number" name="attr_totalED03" title="@{totalED03}" step="1" value="0" min="0" step="1" tabindex="25"/>
|
|
<div class="custom-select">
|
|
<select name="attr_armorEND03" title="@{armorEND03}" tabindex="-1">
|
|
<option value="5">5</option>
|
|
<option value="4">4</option>
|
|
<option value="3">3</option>
|
|
<option value="2">2</option>
|
|
<option value="1">1</option>
|
|
<option value="0" selected>0</option>
|
|
</select>
|
|
</div>
|
|
<div class="custom-select">
|
|
<select name="attr_armorActivation03" title="@{armorActivation03}" tabindex="-1">
|
|
<option value="15">15-</option>
|
|
<option value="14">14-</option>
|
|
<option value="13">13-</option>
|
|
<option value="12">12-</option>
|
|
<option value="11">11-</option>
|
|
<option value="10">10-</option>
|
|
<option value="9">9-</option>
|
|
<option value="8">8-</option>
|
|
<option value="18" selected>NA</option>
|
|
</select>
|
|
</div>
|
|
<button type="action" class="button buttonRollActivate" tabindex="-1" name="act_activateArmor03" title="%{activateArmor03}" >Roll</button>
|
|
<input type="text" class="armorLocationsText" name="attr_armorLocations03" title="@{armorLocations03}" maxlength="24" tabindex="26"/>
|
|
<input type="number" name="attr_armorMass03" title="@{armorMass03}" value="0" min="0" step="0.1" tabindex="27"/>
|
|
</div>
|
|
|
|
<!-- Armor Item 04 -->
|
|
<div class="subitem-tab-gear-flex-container-armor-row">
|
|
<div class="armor-mover-plus-minus-enclosure">
|
|
<div class="armor-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_armorUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_armorDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_armorCarried04">
|
|
<span class="checkmark-tiny" title="@{armorCarried04}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_armorDelete04">
|
|
<span class="checkmark" title="@{armorDelete04}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_armorName04" title="@{armorName04}" value="" maxlength="20" tabindex="31"/>
|
|
|
|
<input type="number" name="attr_armorPD04" title="@{armorPD04}" step="1" value="0" min="0" step="1" tabindex="32"/>
|
|
<input type="number" name="attr_totalPD04" title="@{totalPD04}" step="1" value="0" min="0" step="1" tabindex="33"/>
|
|
<input type="number" name="attr_armorED04" title="@{armorED04}" step="1" value="0" min="0" step="1" tabindex="34"/>
|
|
<input type="number" name="attr_totalED04" title="@{totalED04}" step="1" value="0" min="0" step="1" tabindex="35"/>
|
|
<div class="custom-select">
|
|
<select name="attr_armorEND04" title="@{armorEND04}" tabindex="-1">
|
|
<option value="5">5</option>
|
|
<option value="4">4</option>
|
|
<option value="3">3</option>
|
|
<option value="2">2</option>
|
|
<option value="1">1</option>
|
|
<option value="0" selected>0</option>
|
|
</select>
|
|
</div>
|
|
<div class="custom-select">
|
|
<select name="attr_armorActivation04" title="@{armorActivation04}" tabindex="-1">
|
|
<option value="15">15-</option>
|
|
<option value="14">14-</option>
|
|
<option value="13">13-</option>
|
|
<option value="12">12-</option>
|
|
<option value="11">11-</option>
|
|
<option value="10">10-</option>
|
|
<option value="9">9-</option>
|
|
<option value="8">8-</option>
|
|
<option value="18" selected>NA</option>
|
|
</select>
|
|
</div>
|
|
<button type="action" class="button buttonRollActivate" tabindex="-1" name="act_activateArmor04" title="%{activateArmor04}" >Roll</button>
|
|
<input type="text" class="armorLocationsText" name="attr_armorLocations04" title="@{armorLocations04}" maxlength="24" tabindex="36"/>
|
|
<input type="number" name="attr_armorMass04" title="@{armorMass04}" value="0" min="0" step="0.1" tabindex="37"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Shield -->
|
|
<div class="subitem-tab-gear-flex-container-shield">
|
|
|
|
<input type="hidden" class="shield-checks" name="attr_shieldChecks" value="carry"/>
|
|
|
|
<div class="subitem-tab-gear-flex-container-shield-checks">
|
|
<label class="tiny-xbox-dummy-container">
|
|
<div class="tiny-xbox-dummy">
|
|
</div>
|
|
</label>
|
|
<label class="tiny-xbox-empty-container">
|
|
<div class="tiny-xbox-empty">
|
|
</div>
|
|
</label>
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_shieldCarried">
|
|
<span class="checkmark-tiny" title="@{shieldCarried}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_weaponDelete06">
|
|
<span class="checkmark" title="@{weaponDelete06}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>Shield</h1>
|
|
<input type="text" name="attr_weaponName06" title="@{weaponName06}" value="" maxlength="20" tabindex="76"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>DCV</h1>
|
|
<input type="number" name="attr_shieldDCV" title="@{shieldDCV}" step="1" min="0" value="0" tabindex="77"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>Damage</h1>
|
|
<button type="action" class="button buttonSetDamage" tabindex="-1" name="act_setDamage06" value="0"><span name="attr_weaponAdjustedDamage06"></span></button>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>CSL</h1>
|
|
<input type="number" name="attr_weaponCSL06" title="@{weaponCSL06}" step="2" min="0" max="20" value="0" tabindex="79"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<input type="hidden" class="weapon-type06" name="attr_weaponType06" value="normal">
|
|
<h1>‍</h1>
|
|
<button type="action" class="button buttonRollAttack" tabindex="-1" name="act_attackWeapon06" title="%{attackWeapon06}">Roll</button>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>OCV</h1>
|
|
<input type="number" name="attr_weaponOCV06" title="@{weaponOCV06}" step="1" min="-10" value="0" tabindex="80"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>STUNx</h1>
|
|
<input type="number" name="attr_weaponStunMod06" title="@{weaponStunMod06}" value="0" min="0" max="2" step="1" tabindex="81"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>END</h1>
|
|
<input type="text" name="attr_weaponEndurance06" title="@{weaponEndurance06}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>BODY</h1>
|
|
<input type="number" name="attr_shieldBody" title="@{shieldBody}" step="1" min="0" value="0" tabindex="83"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>DEF</h1>
|
|
<input type="number" name="attr_shieldDefense" title="@{shieldDefense}" step="1" min="0" value="0" tabindex="84"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-shield-heading">
|
|
<h1>Mass</h1>
|
|
<input type="number" name="attr_shieldMass" title="@{shieldMass}" step="0.1" min="0" value="0" tabindex="85"/>
|
|
</div>
|
|
|
|
<input type="hidden" name="attr_weaponRangeMod06" value="0" readonly/>
|
|
<input type="hidden" name="attr_weaponAreaEffect06" value="0" readonly/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Set Weapon Damage -->
|
|
|
|
<input type="hidden" class="set-damage-toggle" name="attr_setDamageToggle" value="0">
|
|
<div class="item-tab-gear-set-damage">
|
|
|
|
<!-- Set Weapon 01 damage -->
|
|
<div class="item-tab-gear-flex-container-set-damage-01">
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<input type="text" name="attr_weaponName01" title="@{weaponName01}" value="" maxlength="20" tabindex="86"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DMG:</h2>
|
|
<input type="text" name="attr_weaponDamage01" title="@{weaponDamage01}" value="0" maxlength="16" tabindex="87"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Damage Type:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponDamageType01" tabindex="88">
|
|
<option value="killing" selected>Killing</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="mental">Mental</option>
|
|
<option value="power">Power</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Min:</h2>
|
|
<input type="number" name="attr_weaponStrengthMin01" title="@{weaponStrengthMin01}" step="1" min="0" value="1" tabindex="89"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Used:</h2>
|
|
<input type="number" name="attr_weaponStrength01" title="@{weaponStrength01}" step="1" min="1" value="1" tabindex="90"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DC:</h2>
|
|
<input type="number" name="attr_weaponDC01" title="@{weaponDC01}" readonly value="0" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Adjustments</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Range Based on STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_rangeBasedOnStr01">
|
|
<span class="checkmark-small" title="@{rangeBasedOnStr01}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>DMG Enhanced by STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponEnhancedByStr01">
|
|
<span class="checkmark-small" title="@{weaponEnhancedByStr01}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Advantage:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponAdvantage01" tabindex="91">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>CSLs Applied:</h2>
|
|
<input type="number" name="attr_weaponCSL01" title="@{weaponCSL01}" step="2" min="0" max="20" value="0" tabindex="91"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END Mod:</h2>
|
|
<input type="number" name="attr_weaponEndMod01" title="@{weaponEndMod01}" step="1" min="-20" max="20" value="0" tabindex="92"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Results</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Weapon DMG:</h2>
|
|
<input type="text" name="attr_weaponAdjustedDamage01" title="@{weaponAdjustedDamage01}" readonly value="0" maxlength="16" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Adjusted DC:</h2>
|
|
<input type="number" name="attr_weaponAdjustedDC01" title="@{weaponAdjustedDC01}" readonly step="1" min="0" value="0" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>OCV Penalty:</h2>
|
|
<input type="text" name="attr_weaponPenalty01" title="@{weaponPenalty01}" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END:</h2>
|
|
<input type="text" name="attr_weaponEndurance01" title="@{weaponEndurance01}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-button">
|
|
<button type="action" class="button buttonOK" tabindex="93" name="act_buttonSetOK">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Set Weapon 02 damage -->
|
|
<div class="item-tab-gear-flex-container-set-damage-02">
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<input type="text" name="attr_weaponName02" title="@{weaponName02}" value="" maxlength="20" tabindex="86"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DMG:</h2>
|
|
<input type="text" name="attr_weaponDamage02" title="@{weaponDamage02}" value="0" maxlength="16" tabindex="87"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Damage Type:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponDamageType02" tabindex="88">
|
|
<option value="killing" selected>Killing</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="mental">Mental</option>
|
|
<option value="power">Power</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Min:</h2>
|
|
<input type="number" name="attr_weaponStrengthMin02" title="@{weaponStrengthMin02}" step="1" min="0" value="1" tabindex="89"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Used:</h2>
|
|
<input type="number" name="attr_weaponStrength02" title="@{weaponStrength02}" step="1" min="1" value="1" tabindex="90"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DC:</h2>
|
|
<input type="number" name="attr_weaponDC02" title="@{weaponDC02}" readonly value="0" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Adjustments</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Range Based on STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_rangeBasedOnStr02">
|
|
<span class="checkmark-small" title="@{rangeBasedOnStr02}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>DMG Enhanced by STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponEnhancedByStr02">
|
|
<span class="checkmark-small" title="@{weaponEnhancedByStr02}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Advantage:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponAdvantage02" tabindex="91">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>CSLs Applied:</h2>
|
|
<input type="number" name="attr_weaponCSL02" title="@{weaponCSL02}" step="2" min="0" max="20" value="0" tabindex="91"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END Mod:</h2>
|
|
<input type="number" name="attr_weaponEndMod02" title="@{weaponEndMod02}" step="1" min="-20" max="20" value="0" tabindex="92"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Results</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Weapon DMG:</h2>
|
|
<input type="text" name="attr_weaponAdjustedDamage02" title="@{weaponAdjustedDamage02}" readonly value="0" maxlength="16" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Adjusted DC:</h2>
|
|
<input type="number" name="attr_weaponAdjustedDC02" title="@{weaponAdjustedDC02}" readonly step="1" min="0" value="0" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>OCV Penalty:</h2>
|
|
<input type="text" name="attr_weaponPenalty02" title="@{weaponPenalty02}" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END:</h2>
|
|
<input type="text" name="attr_weaponEndurance02" title="@{weaponEndurance02}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-button">
|
|
<button type="action" class="button buttonOK" tabindex="93" name="act_buttonSetOK">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Set Weapon 03 damage -->
|
|
<div class="item-tab-gear-flex-container-set-damage-03">
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<input type="text" name="attr_weaponName03" title="@{weaponName03}" value="" maxlength="20" tabindex="86"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DMG:</h2>
|
|
<input type="text" name="attr_weaponDamage03" title="@{weaponDamage03}" value="0" maxlength="16" tabindex="87"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Damage Type:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponDamageType03" tabindex="88">
|
|
<option value="killing" selected>Killing</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="mental">Mental</option>
|
|
<option value="power">Power</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Min:</h2>
|
|
<input type="number" name="attr_weaponStrengthMin03" title="@{weaponStrengthMin03}" step="1" min="0" value="1" tabindex="89"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Used:</h2>
|
|
<input type="number" name="attr_weaponStrength03" title="@{weaponStrength03}" step="1" min="1" value="1" tabindex="90"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DC:</h2>
|
|
<input type="number" name="attr_weaponDC03" title="@{weaponDC03}" readonly value="0" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Adjustments</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Range Based on STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_rangeBasedOnStr03">
|
|
<span class="checkmark-small" title="@{rangeBasedOnStr03}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>DMG Enhanced by STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponEnhancedByStr03">
|
|
<span class="checkmark-small" title="@{weaponEnhancedByStr03}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Advantage:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponAdvantage03" tabindex="91">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>CSLs Applied:</h2>
|
|
<input type="number" name="attr_weaponCSL03" title="@{weaponCSL03}" step="2" min="0" max="20" value="0" tabindex="91"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END Mod:</h2>
|
|
<input type="number" name="attr_weaponEndMod03" title="@{weaponEndMod03}" step="1" min="-20" max="20" value="0" tabindex="92"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Results</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Weapon DMG:</h2>
|
|
<input type="text" name="attr_weaponAdjustedDamage03" title="@{weaponAdjustedDamage03}" readonly value="0" maxlength="16" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Adjusted DC:</h2>
|
|
<input type="number" name="attr_weaponAdjustedDC03" title="@{weaponAdjustedDC03}" readonly step="1" min="0" value="0" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>OCV Penalty:</h2>
|
|
<input type="text" name="attr_weaponPenalty03" title="@{weaponPenalty03}" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END:</h2>
|
|
<input type="text" name="attr_weaponEndurance03" title="@{weaponEndurance03}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-button">
|
|
<button type="action" class="button buttonOK" tabindex="93" name="act_buttonSetOK">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Set Weapon 04 damage -->
|
|
<div class="item-tab-gear-flex-container-set-damage-04">
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<input type="text" name="attr_weaponName04" title="@{weaponName04}" value="" maxlength="20" tabindex="86"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DMG:</h2>
|
|
<input type="text" name="attr_weaponDamage04" title="@{weaponDamage04}" value="0" maxlength="16" tabindex="87"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Damage Type:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponDamageType04" tabindex="88">
|
|
<option value="killing" selected>Killing</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="mental">Mental</option>
|
|
<option value="power">Power</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Min:</h2>
|
|
<input type="number" name="attr_weaponStrengthMin04" title="@{weaponStrengthMin04}" step="1" min="0" value="1" tabindex="89"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Used:</h2>
|
|
<input type="number" name="attr_weaponStrength04" title="@{weaponStrength04}" step="1" min="1" value="1" tabindex="90"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DC:</h2>
|
|
<input type="number" name="attr_weaponDC04" title="@{weaponDC04}" readonly value="0" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Adjustments</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Range Based on STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_rangeBasedOnStr04">
|
|
<span class="checkmark-small" title="@{rangeBasedOnStr04}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>DMG Enhanced by STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponEnhancedByStr04">
|
|
<span class="checkmark-small" title="@{weaponEnhancedByStr04}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Advantage:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponAdvantage04" tabindex="91">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>CSLs Applied:</h2>
|
|
<input type="number" name="attr_weaponCSL04" title="@{weaponCSL04}" step="2" min="0" max="20" value="0" tabindex="91"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END Mod:</h2>
|
|
<input type="number" name="attr_weaponEndMod04" title="@{weaponEndMod04}" step="1" min="-20" max="20" value="0" tabindex="92"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Results</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Weapon DMG:</h2>
|
|
<input type="text" name="attr_weaponAdjustedDamage04" title="@{weaponAdjustedDamage04}" readonly value="0" maxlength="16" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Adjusted DC:</h2>
|
|
<input type="number" name="attr_weaponAdjustedDC04" title="@{weaponAdjustedDC04}" readonly step="1" min="0" value="0" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>OCV Penalty:</h2>
|
|
<input type="text" name="attr_weaponPenalty04" title="@{weaponPenalty04}" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END:</h2>
|
|
<input type="text" name="attr_weaponEndurance04" title="@{weaponEndurance04}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-button">
|
|
<button type="action" class="button buttonOK" tabindex="93" name="act_buttonSetOK">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Set Weapon 05 damage -->
|
|
<div class="item-tab-gear-flex-container-set-damage-05">
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<input type="text" name="attr_weaponName05" title="@{weaponName05}" value="" maxlength="20" tabindex="86"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DMG:</h2>
|
|
<input type="text" name="attr_weaponDamage05" title="@{weaponDamage05}" value="0" maxlength="16" tabindex="87"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Damage Type:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponDamageType05" tabindex="88">
|
|
<option value="killing" selected>Killing</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="mental">Mental</option>
|
|
<option value="power">Power</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Min:</h2>
|
|
<input type="number" name="attr_weaponStrengthMin05" title="@{weaponStrengthMin05}" step="1" min="0" value="1" tabindex="89"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Used:</h2>
|
|
<input type="number" name="attr_weaponStrength05" title="@{weaponStrength05}" step="1" min="1" value="1" tabindex="90"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DC:</h2>
|
|
<input type="number" name="attr_weaponDC05" title="@{weaponDC05}" readonly value="0" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Adjustments</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Range Based on STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_rangeBasedOnStr05">
|
|
<span class="checkmark-small" title="@{rangeBasedOnStr05}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>DMG Enhanced by STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponEnhancedByStr05">
|
|
<span class="checkmark-small" title="@{weaponEnhancedByStr05}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Advantage:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponAdvantage05" tabindex="91">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>CSLs Applied:</h2>
|
|
<input type="number" name="attr_weaponCSL05" title="@{weaponCSL05}" step="2" min="0" max="20" value="0" tabindex="91"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END Mod:</h2>
|
|
<input type="number" name="attr_weaponEndMod05" title="@{weaponEndMod05}" step="1" min="-20" max="20" value="0" tabindex="92"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Results</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Weapon DMG:</h2>
|
|
<input type="text" name="attr_weaponAdjustedDamage05" title="@{weaponAdjustedDamage05}" readonly value="0" maxlength="16" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Adjusted DC:</h2>
|
|
<input type="number" name="attr_weaponAdjustedDC05" title="@{weaponAdjustedDC05}" readonly step="1" min="0" value="0" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>OCV Penalty:</h2>
|
|
<input type="text" name="attr_weaponPenalty05" title="@{weaponPenalty05}" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END:</h2>
|
|
<input type="text" name="attr_weaponEndurance05" title="@{weaponEndurance05}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-button">
|
|
<button type="action" class="button buttonOK" tabindex="93" name="act_buttonSetOK">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Set Weapon 06 damage (shield)-->
|
|
<div class="item-tab-gear-flex-container-set-damage-06">
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<input type="text" name="attr_weaponName06" title="@{weaponName06}" value="" maxlength="20" tabindex="86"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DMG:</h2>
|
|
<input type="text" name="attr_weaponDamage06" title="@{weaponDamage06}" value="0" maxlength="16" tabindex="87"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Damage Type:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponDamageType06" tabindex="88">
|
|
<option value="killing" selected>Killing</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="mental">Mental</option>
|
|
<option value="power">Power</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Min:</h2>
|
|
<input type="number" name="attr_weaponStrengthMin06" title="@{weaponStrengthMin06}" step="1" min="0" value="1" tabindex="89"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>STR Used:</h2>
|
|
<input type="number" name="attr_weaponStrength06" title="@{weaponStrength06}" step="1" min="1" value="1" tabindex="90"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Base DC:</h2>
|
|
<input type="number" name="attr_weaponDC06" title="@{weaponDC06}" readonly value="0" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Adjustments</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>DMG Enhanced by STR:</h2>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponEnhancedByStr06">
|
|
<span class="checkmark-small" title="@{weaponEnhancedByStr06}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Advantage:</h2>
|
|
|
|
<div class="custom-select-gear">
|
|
<select name="attr_weaponAdvantage06" tabindex="91">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>CSLs Applied:</h2>
|
|
<input type="number" name="attr_weaponCSL06" title="@{weaponCSL06}" step="2" min="0" max="20" value="0" tabindex="91"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END Mod:</h2>
|
|
<input type="number" name="attr_weaponEndMod06" title="@{weaponEndMod06}" step="1" min="-20" max="20" value="0" tabindex="92"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-set-damage-column">
|
|
<div class="item-tab-gear-set-damage-title">
|
|
<h1>Results</h1>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Weapon DMG:</h2>
|
|
<input type="text" name="attr_weaponAdjustedDamage06" title="@{weaponAdjustedDamage06}" readonly value="0" maxlength="16" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>Adjusted DC:</h2>
|
|
<input type="number" name="attr_weaponAdjustedDC06" title="@{weaponAdjustedDC06}" readonly step="1" min="0" value="0" tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>OCV Penalty:</h2>
|
|
<input type="text" name="attr_weaponPenalty06" title="@{weaponPenalty06}" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-row">
|
|
<h2>END:</h2>
|
|
<input type="text" name="attr_weaponEndurance06" title="@{weaponEndurance06}" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="subitem-tab-gear-flex-container-set-damage-button">
|
|
<button type="action" class="button buttonOK" tabindex="93" name="act_buttonSetOK">OK</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-tab-gear-flex-container-weapons">
|
|
<!-- Hidden variables for ease of CSS coding Roll button colors -->
|
|
|
|
<input type="hidden" class="weapon-type01" name="attr_weaponType01" value="killing">
|
|
<input type="hidden" class="weapon-type02" name="attr_weaponType02" value="killing">
|
|
<input type="hidden" class="weapon-type03" name="attr_weaponType03" value="killing">
|
|
<input type="hidden" class="weapon-type04" name="attr_weaponType04" value="killing">
|
|
<input type="hidden" class="weapon-type05" name="attr_weaponType05" value="killing">
|
|
|
|
<input type="hidden" class="weapon-checks" name="attr_weaponChecks" value="move"/>
|
|
|
|
<!-- Weapon Heading -->
|
|
<div class="subitem-tab-gear-flex-container-weapon-heading">
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" name="attr_checkWielded">
|
|
<span class="checkmark-tiny" title="@{checkWielded}"></span>
|
|
</label>
|
|
<label class="tiny-xbox-dummy-container">
|
|
<div class="tiny-xbox-dummy">
|
|
</div>
|
|
</label>
|
|
<h1>Weapons</h1>
|
|
<div class="set-AtoB-button">
|
|
<button type="action" name="act_weaponSetAtoB" tabindex="-1" class="button button-gear-set"><div>A/B</div></button>
|
|
</div>
|
|
<h1>Damage</h1>
|
|
<h1>CSL</h1>
|
|
<h1>‍</h1>
|
|
<h1>OCV</h1>
|
|
<h1>STUNx</h1>
|
|
<h1>END</h1>
|
|
<h1>Range</h1>
|
|
<h1>RMod</h1>
|
|
<h1>Shots</h1>
|
|
<h1>AoE</h1>
|
|
<h1>Mass</h1>
|
|
</div>
|
|
|
|
<!-- Weapon 01 -->
|
|
<div class="subitem-tab-gear-flex-container-weapon-row">
|
|
<div class="weapon-mover-plus-minus-enclosure">
|
|
<div class="weapon-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_weaponUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_weaponDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_weaponCarried01">
|
|
<span class="checkmark-tiny" title="@{weaponCarried01}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_weaponDelete01">
|
|
<span class="checkmark" title="@{weaponDelete01}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_weaponName01" title="@{weaponName01}" value="" maxlength="20" tabindex="86"/>
|
|
|
|
<button type="action" class="button buttonSetDamage" tabindex="-1" name="act_setDamage01" value="0"><span name="attr_weaponAdjustedDamage01"></span></button>
|
|
<input type="number" name="attr_weaponCSL01" title="@{weaponCSL01}" step="2" min="0" max="20" value="0" tabindex="87"/>
|
|
<button type="action" class="button buttonRollAttack" tabindex="-1" name="act_attackWeapon01" title="%{attackWeapon01}">Roll</button>
|
|
<input type="number" name="attr_weaponOCV01" title="@{weaponOCV01}" step="1" value="0" tabindex="88"/>
|
|
<input type="number" name="attr_weaponStunMod01" title="@{weaponStunMod01}" value="0" min="0" max="2" step="1" tabindex="89"/>
|
|
<input type="text" name="attr_weaponEndurance01" title="@{weaponEndurance01}" value="0" readonly tabindex="-1"/>
|
|
<input type="number" name="attr_weaponRange01" title="@{weaponRange01}" step="1" min="0" value="0" tabindex="90"/>
|
|
<input type="number" name="attr_weaponRangeMod01" title="@{weaponRangeMod01}" step="1" value="0" tabindex="91"/>
|
|
<input type="number" name="attr_weaponShots01" title="@{weaponShots01}" step="1" min="0" value="0" tabindex="92"/>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponAreaEffect01">
|
|
<span class="checkmark-small" title="@{weaponAreaEffect01}"></span>
|
|
</label>
|
|
<input type="number" name="attr_weaponMass01" title="@{weaponMass01}" step="0.1" min="0" value="0" tabindex="93"/>
|
|
</div>
|
|
|
|
<!-- Weapon 02 -->
|
|
<div class="subitem-tab-gear-flex-container-weapon-row">
|
|
<div class="weapon-mover-plus-minus-enclosure">
|
|
<div class="weapon-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_weaponUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_weaponDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_weaponCarried02">
|
|
<span class="checkmark-tiny" title="@{weaponCarried02}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_weaponDelete02">
|
|
<span class="checkmark" title="@{weaponDelete02}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_weaponName02" title="@{weaponName02}" value="" maxlength="20" tabindex="94"/>
|
|
|
|
<button type="action" class="button buttonSetDamage" tabindex="-1" name="act_setDamage02" value="0"><span name="attr_weaponAdjustedDamage02"></span></button>
|
|
<input type="number" name="attr_weaponCSL02" title="@{weaponCSL02}" step="2" min="0" max="20" value="0" tabindex="95"/>
|
|
<button type="action" class="button buttonRollAttack" tabindex="-1" name="act_attackWeapon02" title="%{attackWeapon02}">Roll</button>
|
|
<input type="number" name="attr_weaponOCV02" title="@{weaponOCV02}" step="1" value="0" tabindex="96"/>
|
|
<input type="number" name="attr_weaponStunMod02" title="@{weaponStunMod02}" value="0" min="0" max="2" step="1" tabindex="97"/>
|
|
<input type="text" name="attr_weaponEndurance02" title="@{weaponEndurance02}" value="0" readonly tabindex="-1"/>
|
|
<input type="number" name="attr_weaponRange02" title="@{weaponRange02}" step="1" min="0" value="0" tabindex="98"/>
|
|
<input type="number" name="attr_weaponRangeMod02" title="@{weaponRangeMod02}" step="1" value="0" tabindex="99"/>
|
|
<input type="number" name="attr_weaponShots02" title="@{weaponShots02}" step="1" min="0" value="0" tabindex="100"/>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponAreaEffect02">
|
|
<span class="checkmark-small" title="@{weaponAreaEffect02}"></span>
|
|
</label>
|
|
<input type="number" name="attr_weaponMass02" title="@{weaponMass02}" step="0.1" min="0" value="0" tabindex="101"/>
|
|
</div>
|
|
|
|
<!-- Weapon 03 -->
|
|
<div class="subitem-tab-gear-flex-container-weapon-row">
|
|
<div class="weapon-mover-plus-minus-enclosure">
|
|
<div class="weapon-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_weaponUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_weaponDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_weaponCarried03">
|
|
<span class="checkmark-tiny" title="@{weaponCarried03}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_weaponDelete03">
|
|
<span class="checkmark" title="@{weaponDelete03}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_weaponName03" title="@{weaponName03}" value="" maxlength="20" tabindex="104"/>
|
|
|
|
<button type="action" class="button buttonSetDamage" tabindex="-1" name="act_setDamage03" value="0"><span name="attr_weaponAdjustedDamage03"></span></button>
|
|
<input type="number" name="attr_weaponCSL03" title="@{weaponCSL03}" step="2" min="0" max="20" value="0" tabindex="105"/>
|
|
<button type="action" class="button buttonRollAttack" tabindex="-1" name="act_attackWeapon03" title="%{attackWeapon03}">Roll</button>
|
|
<input type="number" name="attr_weaponOCV03" title="@{weaponOCV03}" step="1" value="0" tabindex="106"/>
|
|
<input type="number" name="attr_weaponStunMod03" title="@{weaponStunMod03}" value="0" min="0" max="2" step="1" tabindex="108"/>
|
|
<input type="text" name="attr_weaponEndurance03" title="@{weaponEndurance03}" value="0" readonly tabindex="-1"/>
|
|
<input type="number" name="attr_weaponRange03" title="@{weaponRange03}" step="1" min="0" value="0" tabindex="109"/>
|
|
<input type="number" name="attr_weaponRangeMod03" title="@{weaponRangeMod03}" step="1" value="0" tabindex="110"/>
|
|
<input type="number" name="attr_weaponShots03" title="@{weaponShots03}" step="1" min="0" value="0" tabindex="111`"/>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponAreaEffect03">
|
|
<span class="checkmark-small" title="@{weaponAreaEffect03}"></span>
|
|
</label>
|
|
<input type="number" name="attr_weaponMass03" title="@{weaponMass03}" step="0.1" min="0" value="0" tabindex="112"/>
|
|
</div>
|
|
|
|
<!-- Weapon 04 -->
|
|
<div class="subitem-tab-gear-flex-container-weapon-row">
|
|
<div class="weapon-mover-plus-minus-enclosure">
|
|
<div class="weapon-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_weaponUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_weaponDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_weaponCarried04">
|
|
<span class="checkmark-tiny" title="@{weaponCarried04}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_weaponDelete04">
|
|
<span class="checkmark" title="@{weaponDelete04}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_weaponName04" title="@{weaponName04}" value="" maxlength="20" tabindex="113"/>
|
|
|
|
<button type="action" class="button buttonSetDamage" tabindex="-1" name="act_setDamage04" value="0"><span name="attr_weaponAdjustedDamage04"></span></button>
|
|
<input type="number" name="attr_weaponCSL04" title="@{weaponCSL04}" step="2" min="0" max="20" value="0" tabindex="114"/>
|
|
<button type="action" class="button buttonRollAttack" tabindex="-1" name="act_attackWeapon04" title="@{attackWeapon04}">Roll</button>
|
|
<input type="number" name="attr_weaponOCV04" title="@{weaponOCV04}" step="1" value="0" tabindex="115"/>
|
|
<input type="number" name="attr_weaponStunMod04" title="@{weaponStunMod04}" value="0" min="0" max="2" step="1" tabindex="117"/>
|
|
<input type="text" name="attr_weaponEndurance04" title="@{weaponEndurance04}" value="0" readonly tabindex="-1"/>
|
|
<input type="number" name="attr_weaponRange04" title="@{weaponRange04}" step="1" min="0" value="0" tabindex="118"/>
|
|
<input type="number" name="attr_weaponRangeMod04" title="@{weaponRangeMod04}" step="1" value="0" tabindex="119"/>
|
|
<input type="number" name="attr_weaponShots04" title="@{weaponShots04}" step="1" min="0" value="0" tabindex="120"/>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponAreaEffect04">
|
|
<span class="checkmark-small" title="@{weaponAreaEffect04}"></span>
|
|
</label>
|
|
<input type="number" name="attr_weaponMass04" title="@{weaponMass04}" step="0.1" min="0" value="0" tabindex="121"/>
|
|
</div>
|
|
|
|
<!-- Weapon 05 -->
|
|
<div class="subitem-tab-gear-flex-container-weapon-row">
|
|
<div class="weapon-mover-plus-minus-enclosure">
|
|
<div class="weapon-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_weaponUp05">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_weaponDown05">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<label class="container-checkbox-tiny">
|
|
<input type="checkbox" checked="checked" name="attr_weaponCarried05">
|
|
<span class="checkmark-tiny" title="@{weaponCarried05}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_weaponDelete05">
|
|
<span class="checkmark" title="@{weaponDelete05}"></span>
|
|
</label>
|
|
|
|
<input type="text" name="attr_weaponName05" title="@{weaponName05}" vvalue="" maxlength="20" tabindex="122"/>
|
|
|
|
<button type="action" class="button buttonSetDamage" tabindex="-1" name="act_setDamage05" value="0"><span name="attr_weaponAdjustedDamage05"></span></button>
|
|
<input type="number" name="attr_weaponCSL05" title="@{weaponCSL05}" step="2" min="0" max="20" value="0" tabindex="123"/>
|
|
<button type="action" class="button buttonRollAttack" tabindex="-1" name="act_attackWeapon05" title="%{attackWeapon05}">Roll</button>
|
|
<input type="number" name="attr_weaponOCV05" title="@{weaponOCV05}" step="1" value="0" tabindex="124"/>
|
|
<input type="number" name="attr_weaponStunMod05" title="@{weaponStunMod05}" value="0" min="0" max="2" step="1" tabindex="126"/>
|
|
<input type="text" name="attr_weaponEndurance05" title="@{weaponEndurance05}" value="0" readonly tabindex="-1"/>
|
|
<input type="number" name="attr_weaponRange05" title="@{weaponRange05}" step="1" min="0" value="0" tabindex="127"/>
|
|
<input type="number" name="attr_weaponRangeMod05" title="@{weaponRangeMod05}" step="1" value="0" tabindex="128"/>
|
|
<input type="number" name="attr_weaponShots05" title="@{weaponShots05}" step="1" min="0" value="0" tabindex="129"/>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_weaponAreaEffect05">
|
|
<span class="checkmark-small" title="@{weaponAreaEffect05}"></span>
|
|
</label>
|
|
<input type="number" name="attr_weaponMass05" title="@{weaponMass05}" step="0.1" min="0" value="0" tabindex="130"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-tab-gear-flex-container-equipment">
|
|
<input type="hidden" class="equipment-checks" name="attr_equipmentChecks" value="move"/>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment-heading">
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" name="attr_checkCarried">
|
|
<span class="checkmark-tiny-light" title="@{checkCarried}"></span>
|
|
</label>
|
|
<label class="tiny-xbox-dummy-container">
|
|
<div class="tiny-xbox-dummy">
|
|
</div>
|
|
</label>
|
|
<h1>Equipment</h1>
|
|
<div class="set-AtoB-button-light">
|
|
<button type="action" name="act_equipSetAtoB" tabindex="-1" class="button button-gear-set"><div>A/B</div></button>
|
|
</div>
|
|
<h1>Mass</h1>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried01">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried01}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete01">
|
|
<span class="checkmark" title="@{equipDelete01}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText01" title="@{equipText01}" maxlength="30" tabindex="131"/>
|
|
<input type="number" name="attr_equipMass01" title="@{equipMass01}" min="0" step="0.1" tabindex="132"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried02">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried02}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete02">
|
|
<span class="checkmark" title="@{equipDelete02}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText02" title="@{equipText02}" maxlength="30" tabindex="134"/>
|
|
<input type="number" name="attr_equipMass02" title="@{equipMass02}" min="0" step="0.1" tabindex="135"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried03">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried03}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete03">
|
|
<span class="checkmark" title="@{equipDelete03}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText03" title="@{equipText03}" maxlength="30" tabindex="136"/>
|
|
<input type="number" name="attr_equipMass03" title="@{equipMass03}" min="0" step="0.1" tabindex="137"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried04">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried04}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete04">
|
|
<span class="checkmark" title="@{equipDelete04}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText04" title="@{equipText04}" maxlength="30" tabindex="138"/>
|
|
<input type="number" name="attr_equipMass04" title="@{equipMass04}" min="0" step="0.1" tabindex="139"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp05">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown05">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried05">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried05}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete05">
|
|
<span class="checkmark" title="@{equipDelete05}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText05" title="@{equipText05}" maxlength="30" tabindex="140"/>
|
|
<input type="number" name="attr_equipMass05" title="@{equipMass05}" min="0" step="0.1" tabindex="141"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp06">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown06">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried06">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried06}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete06">
|
|
<span class="checkmark" title="@{equipDelete06}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText06" title="@{equipText06}" maxlength="30" tabindex="142"/>
|
|
<input type="number" name="attr_equipMass06" title="@{equipMass06}" min="0" step="0.1" tabindex="143"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp07">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown07">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried07">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried07}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete07">
|
|
<span class="checkmark" title="@{equipDelete07}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText07" title="@{equipText07}" maxlength="30" tabindex="144"/>
|
|
<input type="number" name="attr_equipMass07" title="@{equipMass07}" min="0" step="0.1" tabindex="145"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp08">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown08">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried08">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried08}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete08">
|
|
<span class="checkmark" title="@{equipDelete08}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText08" title="@{equipText08}" maxlength="30" tabindex="146"/>
|
|
<input type="number" name="attr_equipMass08" title="@{equipMass08}" min="0" step="0.1" tabindex="147"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp09">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown09">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried09">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried09}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete09">
|
|
<span class="checkmark" title="@{equipDelete09}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText09" title="@{equipText09}" maxlength="30" tabindex="148"/>
|
|
<input type="number" name="attr_equipMass09" title="@{equipMass09}" min="0" step="0.1" tabindex="149"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp10">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown10">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried10">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried10}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete10">
|
|
<span class="checkmark" title="@{equipDelete10}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText10" title="@{equipText10}" maxlength="30" tabindex="150"/>
|
|
<input type="number" name="attr_equipMass10" title="@{equipMass10}" min="0" step="0.1" tabindex="151"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp11">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown11">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried11">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried11}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete11">
|
|
<span class="checkmark" title="@{equipDelete11}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText11" title="@{equipText11}" maxlength="30" tabindex="152"/>
|
|
<input type="number" name="attr_equipMass11" title="@{equipMass11}" min="0" step="0.1" tabindex="153"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp12">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown12">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried12">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried12}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete12">
|
|
<span class="checkmark" title="@{equipDelete12}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText12" title="@{equipText12}" maxlength="30" tabindex="154"/>
|
|
<input type="number" name="attr_equipMass12" title="@{equipMass12}" min="0" step="0.1" tabindex="155"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp13">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown13">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried13">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried13}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete13">
|
|
<span class="checkmark" title="@{equipDelete13}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText13" title="@{equipText13}" maxlength="30" tabindex="156"/>
|
|
<input type="number" name="attr_equipMass13" title="@{equipMass13}" min="0" step="0.1" tabindex="157"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp14">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown14">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried14">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried14}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete14">
|
|
<span class="checkmark" title="@{equipDelete14}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText14" title="@{equipText14}" maxlength="30" tabindex="158"/>
|
|
<input type="number" name="attr_equipMass14" title="@{equipMass14}" min="0" step="0.1" tabindex="159"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp15">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown15">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried15">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried15}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete15">
|
|
<span class="checkmark" title="@{equipDelete15}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText15" title="@{equipText15}" maxlength="30" tabindex="160"/>
|
|
<input type="number" name="attr_equipMass15" title="@{equipMass15}" min="0" step="0.1" tabindex="161"/>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-flex-container-equipment">
|
|
<div class="gear-mover-plus-minus-enclosure">
|
|
<div class="gear-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_equipUp16">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_equipDown16">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-checkbox-tiny-light">
|
|
<input type="checkbox" checked="checked" name="attr_equipCarried16">
|
|
<span class="checkmark-tiny-light" title="@{equipCarried16}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_equipDelete16">
|
|
<span class="checkmark" title="@{equipDelete16}"></span>
|
|
</label>
|
|
<input type="text" name="attr_equipText16" title="@{equipText16}" maxlength="30" tabindex="162"/>
|
|
<input type="number" name="attr_equipMass16" title="@{equipText16}" min="0" step="0.1" tabindex="163"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Tab Gear Health Status -->
|
|
|
|
<input type="hidden" class="sheet-health-display" name="attr_sheetHealthDisplay" value="standard"/>
|
|
<div class="item-gear-health">
|
|
<h2>BODY</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentBODY" title="@{CurrentBODY}" value="10" maxlength="3" pattern="[0-9]+" tabindex="200"/>
|
|
<div class="item-health-stat-plus-minus-enclosure ">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_bodyPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_bodyMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<h2>STUN</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentSTUN" title="@{CurrentSTUN}" value="20" maxlength="3" pattern="[0-9]+" tabindex="201"/>
|
|
<div class="item-health-stat-plus-minus-enclosure ">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_stunPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_stunMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<h2>END</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentEND" title="@{CurrentEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="202"/>
|
|
<div class="item-health-stat-plus-minus-enclosure ">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_endurancePlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_enduranceMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<button type="action" class="button buttonRecover" tabindex="-1" name="act_recoverHealth" title="%{recoverHealth}" title="%{recoverHealth}">Recover</button>
|
|
<button type="action" class="button buttonReset" tabindex="-1" name="act_resetHealth" title="%{resetHealth}">Reset</button>
|
|
</div>
|
|
|
|
<div class="item-gear-health">
|
|
<h2>BODY</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentBODY" title="@{CurrentBODY}" value="10" maxlength="3" pattern="[0-9]+" tabindex="201"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_bodyPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_bodyMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-health-selection-container">
|
|
<h2>END</h2>
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_reserveSelectGear" value="0" checked>
|
|
<span class="custom-radio-button-health"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentMainEND" title="@{CurrentMainEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="202"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_primaryPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_primaryMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-health-selection-container">
|
|
<h2>AUX</h2>
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_reserveSelectGear" value="1">
|
|
<span class="custom-radio-button-health"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentAuxiliaryEND" title="@{CurrentAuxiliaryEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="203"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_auxiliaryPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_auxiliaryMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<button type="action" class="button buttonRecover" tabindex="-1" name="act_recoverHealth" title="%{recoverHealth}">Recover</button>
|
|
<button type="action" class="button buttonReset" tabindex="-1" name="act_resetHealth" title="%{resetHealth}">Reset</button>
|
|
</div>
|
|
|
|
<!-- Maneuvers Container -->
|
|
<div class="item-tab-gear-slide-container">
|
|
<input type="hidden" class="item-gear-slide-selection" name="attr_gearSlideSelection" value="gearManeuvers"/>
|
|
<input type="hidden" class="maneuver-checks" name="attr_maneuverChecks" value="hide"/>
|
|
|
|
<button type="action" name="act_gearHitLocations" tabindex="-1" class="button button-gear-slide"><div class="container"><div class="circle"><div class="spot"></div></div></div></button>
|
|
<button type="action" name="act_gearManeuvers" tabindex="-1" class="button button-gear-slide"><div>S</div></button>
|
|
<button type="action" name="act_gearMartialManeuvers" tabindex="-1" class="button button-gear-slide"><div>M</div></button>
|
|
<button type="action" name="act_gearTreasures" tabindex="-1" class="button button-gear-slide"><div>T</div></button>
|
|
|
|
<div class="item-tab-gear-slide-flex-container-maneuvers">
|
|
<!-- Slide showing basic Hero combat maneuvers a flex container for rows of flex columns -->
|
|
|
|
<div class="flex-container-maneuvers-heading">
|
|
<h1>Standard Maneuvers</h1>
|
|
</div>
|
|
|
|
<div class="flex-container-maneuvers">
|
|
<input type="hidden" class="item-maneuver-selection" name="attr_maneuverSelection" value="strike"/>
|
|
|
|
<div class="flex-container-maneuver-selectors">
|
|
<button type="action" name="act_block" >Block</button>
|
|
<button type="action" name="act_disarm" >Disarm</button>
|
|
<button type="action" name="act_dodge" >Dodge</button>
|
|
<button type="action" name="act_grab" >Grab</button>
|
|
<button type="action" name="act_grabBy" >Grab By</button>
|
|
<button type="action" name="act_haymaker" >Haymaker</button>
|
|
<button type="action" name="act_moveBy" >Move By</button>
|
|
<button type="action" name="act_moveThrough" >Move Through</button>
|
|
<button type="action" name="act_multipleAttack" >Multiple Attack</button>
|
|
<button type="action" name="act_set" >Set</button>
|
|
<button type="action" name="act_shove" >Shove</button>
|
|
<button type="action" name="act_strike" >Strike</button>
|
|
<button type="action" name="act_throw" >Throw</button>
|
|
<button type="action" name="act_trip" >Trip</button>
|
|
</div>
|
|
|
|
<div class="flex-container-maneuver-slides">
|
|
<div class="item-maneuver-block">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Block</h1>
|
|
<!-- <p>6E2 57</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-special-row">
|
|
<h2>OCV:</h2><input type="number" name="attr_variableOCVmod" title="@{variableOCVmod}" value="0" step="2" min="-10" max="0" tabindex="173"/><h2>+</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: +0 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Block HTH attacks with successful OCV vs. OCV roll. Additional blocks suffer cumulative -2 OCV penalties. Gives priority over standard initiative order on next attack. May abort next phase to use.</p>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonDefense" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Unarmed</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-disarm">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Disarm</h1>
|
|
<!-- <p>6E2 60</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: -2 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: +0 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Disarm opponent if attack roll and a STR vs STR contest succeed. Additional OCV modifiers may apply (0 to -3 for HTH and more for ranged).</p>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-dark" title="@{checkBrace}"></span>
|
|
</label>
|
|
<p>Brace for +2 RMod at 1/2 DCV.</p>
|
|
</div>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-dark" title="@{checkSet}"></span>
|
|
</label>
|
|
<p>Set adds +1 OCV to ranged attacks.</p>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Unarmed</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-dodge">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Dodge</h1>
|
|
<!-- <p>6E2 61</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: —</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: +3 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Increase DCV against non-AoE attacks until next phase. Counts as attack action. May Abort next phase to use.</p>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonDefense" tabindex="-1" name="act_maneuverDodge" title="@{maneuverDodge}">Dodge</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-grab">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Grab</h1>
|
|
<!-- <p>6E2 62</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: -1* +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: -2* +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Grab opponent with two limbs with successful attack roll, who may attempt escape. May follow with Squeeze, Slam, or Throw. *Success causes both characters to be at 1/2 DCV and each suffers various OCV penalties.</p>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Grab</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-grabBy">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Grab By</h1>
|
|
<!-- <p>6E2 67</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: -3 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: -4 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Grab object while making a Full Move. Adds velocity/10 to STR for the purpose of making Strength checks.</p>
|
|
<div class ="item-maneuver-line-flex">
|
|
<p>Velocity:</p>
|
|
<input type="number" name="attr_velocity" title="@{velocity}" step="1" min="1" max="100" value="12" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Grab By</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-haymaker">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Haymaker</h1>
|
|
<!-- <p>6E2 68</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase*</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: +0 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: -5 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Add +4 DC to any attack (with GM discretion) at the cost of -5 DCV. Attack lands at the end of the following segment. Can be aborted. Fails if the target moves.</p>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-dark" title="@{checkBrace}"></span>
|
|
</label>
|
|
<p>Brace for +2 RMod at 1/2 DCV.</p>
|
|
</div>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-dark" title="@{checkSet}"></span>
|
|
</label>
|
|
<p>Set adds +1 OCV to ranged attacks.</p>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Unarmed</button>
|
|
<h2>+</h2>
|
|
<div class="item-maneuver-modifier">
|
|
<input type="text" inputmode="numeric" pattern="[0-9]+" name="attr_maneuverDamageCSL" title="@{maneuverDamageCSL}" value="0" maxlength="2" tabindex="176"/>
|
|
<input type = "text" value="CSL" readonly tabindex="-1"/>
|
|
<div class="modifier-plus-minus-enclosure">
|
|
<div class="modifier-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_damagePlus">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_damageMinus">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-moveBy">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Move By</h1>
|
|
<!-- <p>6E2 70</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: -2 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: -2 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Attack while making a Full Move past opponent. Strength is halved, but maneuver adds (velocity/10) DCs. Attacker or weapon takes 1/3 of this damage.</p>
|
|
<div class ="item-maneuver-line-flex">
|
|
<p>Velocity:</p>
|
|
<input type="number" name="attr_velocity" title="@{velocity}" step="1" min="2" max="100" value="12" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Unarmed</button>
|
|
<h2>+</h2>
|
|
<div class="item-maneuver-modifier">
|
|
<input type="text" inputmode="numeric" pattern="[0-9]+" name="attr_maneuverDamageCSL" title="@{maneuverDamageCSL}" value="0" maxlength="2" tabindex="176"/>
|
|
<input type = "text" value="CSL" readonly tabindex="-1"/>
|
|
<div class="modifier-plus-minus-enclosure">
|
|
<div class="modifier-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_damagePlus">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_damageMinus">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-moveThrough">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Move Through</h1>
|
|
<!-- <p>6E2 70</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: -v/10 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: -3 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Collide with opponent at the end of a Full or Half Move. Does full STR or weapon at half STR plus (velocity/6) DCs. Attacker takes 1/2 damage or full damage if attack does no Knockback or Knockdown.</p>
|
|
<div class ="item-maneuver-line-flex">
|
|
<p>Velocity:</p>
|
|
<input type="number" name="attr_velocity" title="@{velocity}" step="1" min="1" max="99" value="12" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Unarmed</button>
|
|
<h2>+</h2>
|
|
<div class="item-maneuver-modifier">
|
|
<input type="text" inputmode="numeric" pattern="[0-9]+" name="attr_maneuverDamageCSL" title="@{maneuverDamageCSL}" value="0" maxlength="2" tabindex="176"/>
|
|
<input type = "text" value="CSL" readonly tabindex="-1"/>
|
|
<div class="modifier-plus-minus-enclosure">
|
|
<div class="modifier-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_damagePlus">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_damageMinus">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-multipleAttack">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Multiple Attack</h1>
|
|
<!-- <p>6E2 73</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>Full Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-special-row">
|
|
<h2>OCV:</h2><input type="number" name="attr_variableOCVmod" title="@{variableOCVmod}" value="0" step="2" min="-10" max="0" tabindex="173"/><h2>+</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/><h2>CSLs</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: 1/2 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/><h2>CSLs</h2>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Attack multiple times. Each attack after the first suffers a cumulative -2 OCV. Miss ends sequence.</p>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-dark" title="@{checkBrace}"></span>
|
|
</label>
|
|
<p>Brace for +2 RMod at 1/2 DCV.</p>
|
|
</div>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-dark" title="@{checkSet}"></span>
|
|
</label>
|
|
<p>Set adds +1 OCV to ranged attacks.</p>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Unarmed</button>
|
|
<h2>+</h2>
|
|
<div class="item-maneuver-modifier">
|
|
<input type="text" inputmode="numeric" pattern="[0-9]+" name="attr_maneuverDamageCSL" title="@{maneuverDamageCSL}" value="0" maxlength="2" tabindex="176"/>
|
|
<input type = "text" value="CSL" readonly tabindex="-1"/>
|
|
<div class="modifier-plus-minus-enclosure">
|
|
<div class="modifier-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_damagePlus">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_damageMinus">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-set">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Set</h1>
|
|
<!-- <p>6E2 79</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>Full Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: +1*</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: +0</h2>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Spend a phase to add +1 OCV to ranged attacks against selected target.</p>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverSet" title="@{maneuverSet}">Set</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-shove">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Shove</h1>
|
|
<!-- <p>6E2 79</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: -1 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: -1 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Push target up to 1 meter per 5 STR used, which target may resist. A collision does STR damage, but is limited to object PD plus BODY.</p>
|
|
<div class ="item-maneuver-line-flex">
|
|
<p>DC Limit:</p>
|
|
<input type="number" name="attr_maneuverDCLimit" title="@{maneuverDCLimit}" step="1" min="1" max="20" value="5" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Shove</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-strike">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Strike</h1>
|
|
<!-- <p>6E2 80</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: +0 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: +0 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Standard attack, which does damage by STR or weapon.</p>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-dark" title="@{checkBrace}"></span>
|
|
</label>
|
|
<p>Brace for +2 RMod at 1/2 DCV.</p>
|
|
</div>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-dark" title="@{checkSet}"></span>
|
|
</label>
|
|
<p>Set adds +1 OCV to ranged attacks.</p>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Unarmed</button>
|
|
<h2>+</h2>
|
|
<div class="item-maneuver-modifier">
|
|
<input type="text" inputmode="numeric" pattern="[0-9]+" name="attr_maneuverDamageCSL" title="@{maneuverDamageCSL}" value="0" maxlength="2" tabindex="176"/>
|
|
<input type = "text" value="CSL" readonly tabindex="-1"/>
|
|
<div class="modifier-plus-minus-enclosure">
|
|
<div class="modifier-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_damagePlus">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_damageMinus">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-throw">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Throw</h1>
|
|
<!-- <p>6E2 80</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: +0 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: +0 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Throw object or character. STR damage limited to object PD plus BODY.</p>
|
|
<div class ="item-maneuver-line-flex">
|
|
<p>DC Limit:</p>
|
|
<input type="number" name="attr_maneuverDCLimit" title="@{maneuverDCLimit}" step="1" min="1" max="20" value="5" tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-dark" title="@{checkBrace}"></span>
|
|
</label>
|
|
<p>Brace for +2 RMod at 1/2 DCV.</p>
|
|
</div>
|
|
<div class ="item-maneuver-line">
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-dark" title="@{checkSet}"></span>
|
|
</label>
|
|
<p>Set adds +1 OCV to ranged attacks.</p>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Throw</button>
|
|
<h2>+</h2>
|
|
<div class="item-maneuver-modifier">
|
|
<input type="text" inputmode="numeric" pattern="[0-9]+" name="attr_maneuverDamageCSL" title="@{maneuverDamageCSL}" value="0" maxlength="2" tabindex="176"/>
|
|
<input type = "text" value="CSL" readonly tabindex="-1"/>
|
|
<div class="modifier-plus-minus-enclosure">
|
|
<div class="modifier-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_damagePlus">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_damageMinus">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-trip">
|
|
<div class ="item-maneuver-block-heading">
|
|
<h1>Trip</h1>
|
|
<!-- <p>6E2 83</p> -->
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>1/2 Phase</h2>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>OCV: -1 +</h2><input type="number" name="attr_maneuverOCVmod" title="@{maneuverOCVmod}" value="0" step="1" min="0" max="10" tabindex="174"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-standard-row">
|
|
<h2>DCV: -2 +</h2><input type="number" name="attr_maneuverDCVmod" title="@{maneuverDCVmod}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class ="item-maneuver-block-text">
|
|
<p>Knock target down prone (half DCV) with a successful attack roll. A moving target takes (velocity/20)d6 damage.</p>
|
|
<div class ="item-maneuver-line-flex">
|
|
<p>Velocity:</p>
|
|
<input type="number" name="attr_velocity" title="@{velocity}" step="1" min="0" max="100" value="0" tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-button-line">
|
|
<button type="action" class="button buttonAttackStrength" tabindex="-1" name="act_attackStrength" title="@{attackStrength}">Trip</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Range Modifier Table -->
|
|
<div class="subitem-tab-gear-slide-flex-container-range-modifiers">
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>Range (m)</h2>
|
|
<h2>OCV Mod:</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeManeuver" value="0" checked>
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>0-8</h2>
|
|
<h2>0</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeManeuver" value="9">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>9-16</h2>
|
|
<h2>-2</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeManeuver" value="17">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>17-32</h2>
|
|
<h2>-4</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeManeuver" value="33">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>33-64</h2>
|
|
<h2>-6</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeManeuver" value="65">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>65-125</h2>
|
|
<h2>-8</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-tab-gear-slide-flex-container-martial-maneuvers">
|
|
|
|
<!-- Slide showing special martial arts maneuvers. Entries need to be supplied by the user. -->
|
|
<div class="subitem-tab-gear-slide-flex-container-martial-maneuvers-heading">
|
|
<h1>Martial and Custom Maneuvers</h1>
|
|
</div>
|
|
|
|
<!-- Martial skill delete buttons -->
|
|
<div class="item-martial-skill-delete-panel">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete01">
|
|
<span class="checkmark" title="@{martialManeuverDelete01}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete02">
|
|
<span class="checkmark" title="@{martialManeuverDelete02}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete03">
|
|
<span class="checkmark" title="@{martialManeuverDelete03}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete04">
|
|
<span class="checkmark" title="@{martialManeuverDelete04}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete05">
|
|
<span class="checkmark" title="@{martialManeuverDelete05}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete06">
|
|
<span class="checkmark" title="@{martialManeuverDelete06}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete07">
|
|
<span class="checkmark" title="@{martialManeuverDelete07}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete08">
|
|
<span class="checkmark" title="@{martialManeuverDelete08}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete09">
|
|
<span class="checkmark" title="@{martialManeuverDelete09}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_martialManeuverDelete10">
|
|
<span class="checkmark" title="@{martialManeuverDelete10}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<!-- Martial skill slides and selection buttons -->
|
|
|
|
<div class="flex-container-maneuvers">
|
|
<input type="hidden" class="item-martial-maneuver-selection" name="attr_martialManeuverSelection" value="martialManeuver01"/>
|
|
|
|
<div class="flex-container-maneuver-selectors">
|
|
<button type="action" name="act_martialManeuver01" ><span name="attr_martialManeuverName01"></span></button>
|
|
<button type="action" name="act_martialManeuver02" ><span name="attr_martialManeuverName02"></span></button>
|
|
<button type="action" name="act_martialManeuver03" ><span name="attr_martialManeuverName03"></span></button>
|
|
<button type="action" name="act_martialManeuver04" ><span name="attr_martialManeuverName04"></span></button>
|
|
<button type="action" name="act_martialManeuver05" ><span name="attr_martialManeuverName05"></span></button>
|
|
<button type="action" name="act_martialManeuver06" ><span name="attr_martialManeuverName06"></span></button>
|
|
<button type="action" name="act_martialManeuver07" ><span name="attr_martialManeuverName07"></span></button>
|
|
<button type="action" name="act_martialManeuver08" ><span name="attr_martialManeuverName08"></span></button>
|
|
<button type="action" name="act_martialManeuver09" ><span name="attr_martialManeuverName09"></span></button>
|
|
<button type="action" name="act_martialManeuver10" ><span name="attr_martialManeuverName10"></span></button>
|
|
</div>
|
|
|
|
<div class="flex-container-maneuver-slides">
|
|
|
|
<div class="item-martial-maneuver01">
|
|
<input type="hidden" class="maneuver-type01" name="attr_martialManeuverTypeIndicator01" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP01" title="@{martialManeuverCP01}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName01" title="@{martialManeuverName01}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV01" title="@{martialManeuverOCV01}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod01" title="@{martialManeuverOCVmod01}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType01" title="@martialManeuverType01">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV01" title="@{martialManeuverDCV01}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod01" title="@{martialManeuverDCVmod01}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase01" title="@{martialManeuverPhase01}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display01" name="attr_martialDamageDisplay01" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type01">
|
|
<div class="item-maneuver-block-stats-attack01">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage01" title="@{martialManeuverDamage01}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance01" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod01" title="@{martialManeuverCSLmod01}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal01">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal01}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod01" title="@{martialManeuverStunMod01}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense01">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV01">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance01" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest01">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod01" title="@{martialManeuverStrMod01}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance01" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack01">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC01" title="@{martialManeuverDC01}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod01" title="@{martialManeuverCSLmod01}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance01" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod01" title="@{martialManeuverRNGmod01}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest01">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod01" title="@{martialManeuverStrMod01}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance01" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod01" title="@{martialManeuverRNGmod01}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect01" title="@{martialManeuverEffect01}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND01" title="%{buttonManeuverEND01}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack01" title="%{maneuverAttack01}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll01" title="%{showManeuverRoll01}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver02">
|
|
<input type="hidden" class="maneuver-type02" name="attr_martialManeuverTypeIndicator02" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP02" title="@{martialManeuverCP02}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName02" title="@{martialManeuverName02}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV02" title="@{martialManeuverOCV02}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod02" title="@{martialManeuverOCVmod02}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType02" title="@martialManeuverType02">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV02" title="@{martialManeuverDCV02}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod02" title="@{martialManeuverDCVmod02}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase02" title="@{martialManeuverPhase02}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display02" name="attr_martialDamageDisplay02" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type02">
|
|
<div class="item-maneuver-block-stats-attack02">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage02" title="@{martialManeuverDamage02}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance02" title="@{martialManeuverEndurance02}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod02" title="@{martialManeuverCSLmod02}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal02">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal02}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod02" title="@{martialManeuverStunMod02}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense02">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV02">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance02" title="@{martialManeuverEndurance02}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest02">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod02" title="@{martialManeuverStrMod02}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance02" title="@{martialManeuverEndurance02}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack02">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC02" title="@{martialManeuverDC02}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod02" title="@{martialManeuverCSLmod02}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance02" title="@{martialManeuverEndurance02}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod02" title="@{martialManeuverRNGmod02}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest02">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod02" title="@{martialManeuverStrMod02}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance02" title="@{martialManeuverEndurance02}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect02" title="@{martialManeuverEffect02}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND02" title="%{buttonManeuverEND02}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack02" title="%{maneuverAttack02}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll02" title="%{showManeuverRoll02}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver03">
|
|
<input type="hidden" class="maneuver-type03" name="attr_martialManeuverTypeIndicator03" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP03" title="@{martialManeuverCP03}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName03" title="@{martialManeuverName03}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV03" title="@{martialManeuverOCV03}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod03" title="@{martialManeuverOCVmod03}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType03" title="@martialManeuverType03">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV03" title="@{martialManeuverDCV03}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod03" title="@{martialManeuverDCVmod03}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase03" title="@{martialManeuverPhase03}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display03" name="attr_martialDamageDisplay03" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type03">
|
|
<div class="item-maneuver-block-stats-attack03">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage03" title="@{martialManeuverDamage03}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance03" title="@{martialManeuverEndurance03}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod03" title="@{martialManeuverCSLmod03}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal03">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal03}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod03" title="@{martialManeuverStunMod03}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense03">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV03">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance03" title="@{martialManeuverEndurance03}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest03">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod03" title="@{martialManeuverStrMod03}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance03" title="@{martialManeuverEndurance03}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack03">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC03" title="@{martialManeuverDC03}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod03" title="@{martialManeuverCSLmod03}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance03" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod03" title="@{martialManeuverRNGmod03}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest03">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod03" title="@{martialManeuverStrMod03}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance03" title="@{martialManeuverEndurance03}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect03" title="@{martialManeuverEffect03}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND03" title="%{buttonManeuverEND03}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack03" title="%{maneuverAttack03}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll03" title="%{showManeuverRoll03}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver04">
|
|
<input type="hidden" class="maneuver-type04" name="attr_martialManeuverTypeIndicator04" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP04" title="@{martialManeuverCP04}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName04" title="@{martialManeuverName04}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV04" title="@{martialManeuverOCV04}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod04" title="@{martialManeuverOCVmod04}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType04" title="@martialManeuverType04">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV04" title="@{martialManeuverDCV04}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod04" title="@{martialManeuverDCVmod04}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase04" title="@{martialManeuverPhase04}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display04" name="attr_martialDamageDisplay04" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type04">
|
|
<div class="item-maneuver-block-stats-attack04">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage04" title="@{martialManeuverDamage04}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance04" title="@{martialManeuverEndurance04}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod04" title="@{martialManeuverCSLmod04}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal04">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal04}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod04" title="@{martialManeuverStunMod04}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense04">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV04">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance04" title="@{martialManeuverEndurance04}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest04">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod04" title="@{martialManeuverStrMod04}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance04" title="@{martialManeuverEndurance04}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack04">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC04" title="@{martialManeuverDC04}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod04" title="@{martialManeuverCSLmod04}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance04" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod04" title="@{martialManeuverRNGmod04}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest04">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod04" title="@{martialManeuverStrMod04}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance04" title="@{martialManeuverEndurance04}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect04" title="@{martialManeuverEffect04}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND04" title="%{buttonManeuverEND04}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack04" title="%{maneuverAttack04}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll04" title="%{showManeuverRoll04}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver05">
|
|
<input type="hidden" class="maneuver-type05" name="attr_martialManeuverTypeIndicator05" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP05" title="@{martialManeuverCP05}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName05" title="@{martialManeuverName05}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp05">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown05">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV05" title="@{martialManeuverOCV05}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod05" title="@{martialManeuverOCVmod05}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType05" title="@martialManeuverType05">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV05" title="@{martialManeuverDCV05}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod05" title="@{martialManeuverDCVmod05}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase05" title="@{martialManeuverPhase05}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display05" name="attr_martialDamageDisplay05" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type05">
|
|
<div class="item-maneuver-block-stats-attack05">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage05" title="@{martialManeuverDamage05}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance05" title="@{martialManeuverEndurance05}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod05" title="@{martialManeuverCSLmod05}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal05">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal05}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod05" title="@{martialManeuverStunMod05}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense05">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV05">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance05" title="@{martialManeuverEndurance05}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest05">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod05" title="@{martialManeuverStrMod05}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance05" title="@{martialManeuverEndurance05}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack05">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC05" title="@{martialManeuverDC05}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod05" title="@{martialManeuverCSLmod05}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance05" title="@{martialManeuverEndurance01}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod05" title="@{martialManeuverRNGmod05}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest05">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod05" title="@{martialManeuverStrMod05}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance05" title="@{martialManeuverEndurance05}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect05" title="@{martialManeuverEffect05}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND05" title="%{buttonManeuverEND05}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack05" title="%{maneuverAttack05}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll05" title="%{showManeuverRoll05}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver06">
|
|
<input type="hidden" class="maneuver-type06" name="attr_martialManeuverTypeIndicator06" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP06" title="@{martialManeuverCP06}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName06" title="@{martialManeuverName06}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp06">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown06">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV06" title="@{martialManeuverOCV06}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod06" title="@{martialManeuverOCVmod06}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType06" title="@martialManeuverType06">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV06" title="@{martialManeuverDCV06}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod06" title="@{martialManeuverDCVmod06}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase06" title="@{martialManeuverPhase06}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display06" name="attr_martialDamageDisplay06" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type06">
|
|
<div class="item-maneuver-block-stats-attack06">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage06" title="@{martialManeuverDamage06}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance06" title="@{martialManeuverEndurance06}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod06" title="@{martialManeuverCSLmod06}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal06">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal06}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod06" title="@{martialManeuverStunMod06}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense06">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV06">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance06" title="@{martialManeuverEndurance06}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest06">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod06" title="@{martialManeuverStrMod06}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance06" title="@{martialManeuverEndurance06}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack06">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC06" title="@{martialManeuverDC06}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod06" title="@{martialManeuverCSLmod06}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance06" title="@{martialManeuverEndurance06}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod06" title="@{martialManeuverRNGmod06}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest06">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod06" title="@{martialManeuverStrMod06}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance06" title="@{martialManeuverEndurance06}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect06" title="@{martialManeuverEffect06}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND06" title="%{buttonManeuverEND06}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack06" title="%{maneuverAttack06}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll06" title="%{showManeuverRoll06}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver07">
|
|
<input type="hidden" class="maneuver-type07" name="attr_martialManeuverTypeIndicator07" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP07" title="@{martialManeuverCP07}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName07" title="@{martialManeuverName07}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp07">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown07">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV07" title="@{martialManeuverOCV07}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod07" title="@{martialManeuverOCVmod07}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType07" title="@martialManeuverType07">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV07" title="@{martialManeuverDCV07}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod07" title="@{martialManeuverDCVmod07}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase07" title="@{martialManeuverPhase07}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display07" name="attr_martialDamageDisplay07" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type07">
|
|
<div class="item-maneuver-block-stats-attack07">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage07" title="@{martialManeuverDamage07}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance07" title="@{martialManeuverEndurance07}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod07" title="@{martialManeuverCSLmod07}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal07">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal07}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod07" title="@{martialManeuverStunMod07}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense07">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV07">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance07" title="@{martialManeuverEndurance07}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest07">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod07" title="@{martialManeuverStrMod07}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance07" title="@{martialManeuverEndurance07}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack07">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC07" title="@{martialManeuverDC07}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod07" title="@{martialManeuverCSLmod07}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance07" title="@{martialManeuverEndurance07}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod07" title="@{martialManeuverRNGmod07}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest07">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod07" title="@{martialManeuverStrMod07}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance07" title="@{martialManeuverEndurance07}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect07" title="@{martialManeuverEffect07}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND07" title="%{buttonManeuverEND07}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack07" title="%{maneuverAttack07}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll07" title="%{showManeuverRoll07}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver08">
|
|
<input type="hidden" class="maneuver-type08" name="attr_martialManeuverTypeIndicator08" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP08" title="@{martialManeuverCP08}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName08" title="@{martialManeuverName08}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp08">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown08">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV08" title="@{martialManeuverOCV08}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod08" title="@{martialManeuverOCVmod08}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType08" title="@martialManeuverType08">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV08" title="@{martialManeuverDCV08}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod08" title="@{martialManeuverDCVmod08}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase08" title="@{martialManeuverPhase08}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display08" name="attr_martialDamageDisplay08" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type08">
|
|
<div class="item-maneuver-block-stats-attack08">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage08" title="@{martialManeuverDamage08}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance08" title="@{martialManeuverEndurance08}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod08" title="@{martialManeuverCSLmod08}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal08">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal08}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod08" title="@{martialManeuverStunMod08}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense08">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV08">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance08" title="@{martialManeuverEndurance08}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest08">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod08" title="@{martialManeuverStrMod08}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance08" title="@{martialManeuverEndurance08}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack08">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC08" title="@{martialManeuverDC08}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod08" title="@{martialManeuverCSLmod08}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance08" title="@{martialManeuverEndurance08}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod08" title="@{martialManeuverRNGmod08}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest08">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod08" title="@{martialManeuverStrMod08}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance08" title="@{martialManeuverEndurance08}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect08" title="@{martialManeuverEffect08}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND08" title="%{buttonManeuverEND08}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack08" title="%{maneuverAttack08}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll08" title="%{showManeuverRoll08}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver09">
|
|
<input type="hidden" class="maneuver-type09" name="attr_martialManeuverTypeIndicator09" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP09" title="@{martialManeuverCP09}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName09" title="@{martialManeuverName09}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp09">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown09">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV09" title="@{martialManeuverOCV09}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod09" title="@{martialManeuverOCVmod09}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType09" title="@martialManeuverType09">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV09" title="@{martialManeuverDCV09}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod09" title="@{martialManeuverDCVmod09}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase09" title="@{martialManeuverPhase09}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display09" name="attr_martialDamageDisplay09" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type09">
|
|
<div class="item-maneuver-block-stats-attack09">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage09" title="@{martialManeuverDamage09}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance09" title="@{martialManeuverEndurance09}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod09" title="@{martialManeuverCSLmod09}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal09">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal09}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod09" title="@{martialManeuverStunMod09}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense09">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV09">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance09" title="@{martialManeuverEndurance09}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest09">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod09" title="@{martialManeuverStrMod09}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance09" title="@{martialManeuverEndurance09}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack09">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC09" title="@{martialManeuverDC09}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod09" title="@{martialManeuverCSLmod09}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance09" title="@{martialManeuverEndurance09}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod09" title="@{martialManeuverRNGmod09}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest09">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod09" title="@{martialManeuverStrMod09}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance09" title="@{martialManeuverEndurance09}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect09" title="@{martialManeuverEffect09}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND09" title="%{buttonManeuverEND09}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack09" title="%{maneuverAttack09}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll09" title="%{showManeuverRoll09}" >Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-martial-maneuver10">
|
|
<input type="hidden" class="maneuver-type10" name="attr_martialManeuverTypeIndicator10" value="normal">
|
|
|
|
<div class ="item-maneuver-block-heading">
|
|
<div class="item-maneuver-block-heading-container">
|
|
<h1>CP</h1>
|
|
<input type="number" name="attr_martialManeuverCP10" title="@{martialManeuverCP10}" dir="ltr" value="0" min="0" step="1" tabindex="170"/>
|
|
</div>
|
|
|
|
<input type="text" name="attr_martialManeuverName10" title="@{martialManeuverName10}" placeholder="Maneuver" value="" maxlength="16" tabindex="171"/>
|
|
|
|
<div class="item-maneuver-block-heading-container">
|
|
<div class="maneuver-mover-plus-minus-enclosure">
|
|
<div class="maneuver-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_martialManeuverUp10">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_martialManeuverDown10">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-martial-maneuver-block-stats">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>OCV:</h1>
|
|
<input type="number" name="attr_martialManeuverOCV10" title="@{martialManeuverOCV10}" value="0" step="1" tabindex="172"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverOCVmod10" title="@{martialManeuverOCVmod10}" value="0" step="1" min="0" max="10" tabindex="173"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialManeuverType10" title="@martialManeuverType10">
|
|
<option value="attack" selected>Attack</option>
|
|
<option value="block">Block</option>
|
|
<option value="contest">Contest</option>
|
|
<option value="dodge">Defense</option>
|
|
<option value="weaponAttack">WP Attack</option>
|
|
<option value="weaponBlock">WP Block</option>
|
|
<option value="weaponContest">WP Contest</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<input type="number" name="attr_martialManeuverDCV10" title="@{martialManeuverDCV10}" value="0" step="1" tabindex="174"/>
|
|
<h1>+</h1>
|
|
<input type="number" name="attr_martialManeuverDCVmod10" title="@{martialManeuverDCVmod10}" value="0" step="1" min="0" max="10" tabindex="175"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Phase:</h1>
|
|
<input type="text" name="attr_martialManeuverPhase10" title="@{martialManeuverPhase10}" value="1/2" tabindex="180"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rows that change by type selection. -->
|
|
<input type="hidden" class="martial-damage-display10" name="attr_martialDamageDisplay10" value="attack"/>
|
|
|
|
<div class="item-maneuver-block-type10">
|
|
<div class="item-maneuver-block-stats-attack10">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DMG:</h1>
|
|
<input type="text" name="attr_martialManeuverDamage10" title="@{martialManeuverDamage10}" value="0" maxlength="9" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance10" title="@{martialManeuverEndurance10}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod10" title="@{martialManeuverCSLmod10}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>N:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" checked="checked" name="attr_martialManeuverNormal10">
|
|
<span class="checkmark-small-light" title="@{martialManeuverNormal10}"></span>
|
|
</label>
|
|
<h1>STUNx:</h1>
|
|
<input type="number" name="attr_martialManeuverStunMod10" title="@{martialManeuverStunMod10}" value="0" min="0" max="2" step="1" tabindex="182"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-defense10">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_martialConcentrationDCV10">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance10" title="@{martialManeuverEndurance10}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-contest10">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod10" title="@{martialManeuverStrMod10}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance10" title="@{martialManeuverEndurance10}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row-empty">
|
|
<h1>‍</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-attack10">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>DC:</h1>
|
|
<input type="number" name="attr_martialManeuverDC10" title="@{martialManeuverDC10}" value="0" min="-9" max="9" tabindex="176"/>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_martialManeuverCSLmod10" title="@{martialManeuverCSLmod10}" value="0" min="0" max="20" step="2" tabindex="177"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance10" title="@{martialManeuverEndurance10}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>R Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverRNGmod10" title="@{martialManeuverRNGmod10}" value="0" min="0" max="10" step="1" tabindex="178"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-maneuver-block-stats-wp-contest10">
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>STR Mod:</h1>
|
|
<input type="number" name="attr_martialManeuverStrMod10" title="@{martialManeuverStrMod10}" value="0" min="0" max="99" tabindex="176"/>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row-alt">
|
|
<h1>END Mod:</h1>
|
|
<input type="number" value="0" step="1" min="0" name="attr_martialManeuverEndurance10" title="@{martialManeuverEndurance10}" tabindex="181"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-row">
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>‍</h1>
|
|
</div>
|
|
<div class="item-maneuver-block-stats-half-row">
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-light" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-light" title="@{checkSet}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-martial-maneuver-block-text">
|
|
<textarea name="attr_martialManeuverEffect10" title="@{martialManeuverEffect10}" maxlength="100" tabindex="183" placeholder="Description"></textarea>
|
|
</div>
|
|
<div class ="item-martial-maneuver-button-line">
|
|
<button type="action" class="button buttonManeuverEND" tabindex="-1" name="act_buttonManeuverEND10" title="%{buttonManeuverEND10}">END</button>
|
|
<button type="action" class="button buttonManeuver" tabindex="-1" name="act_maneuverAttack10" title="%{maneuverAttack10}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showManeuverRoll10" title="%{showManeuverRoll10}" >Show</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Range Modifier Table -->
|
|
<div class="subitem-tab-gear-slide-flex-container-range-modifiers">
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>Range (m)</h2>
|
|
<h2>OCV Mod:</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeMartial" value="0" checked>
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>0-8</h2>
|
|
<h2>0</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeMartial" value="9">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>9-16</h2>
|
|
<h2>-2</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeMartial" value="17">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>17-32</h2>
|
|
<h2>-4</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeMartial" value="33">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>33-64</h2>
|
|
<h2>-6</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangeMartial" value="65">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>65-125</h2>
|
|
<h2>-8</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-tab-gear-slide-flex-container-hit-locations">
|
|
<div class="item-gear-slide-container-hit-locations-flex-row">
|
|
<!-- Special target locations -->
|
|
<div class="item-gear-slide-flex-container-hit-locations-special">
|
|
<div class="subitem-gear-slide-flex-container-hit-locations-special-heading">
|
|
<h1>Target</h1>
|
|
<h1>Roll</h1>
|
|
<h1>Location</h1>
|
|
<h1>OCV</h1>
|
|
</div>
|
|
<div class="subitem-gear-slide-flex-container-hit-locations-special-top-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="1" checked>
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>3d6</h1>
|
|
<h1>Any</h1>
|
|
<h1>0</h1>
|
|
</div>
|
|
<div class="subitem-gear-slide-flex-container-hit-locations-special-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="12">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>1d6+3</h1>
|
|
<h1>Head Shot</h1>
|
|
<h1>-4</h1>
|
|
</div>
|
|
<div class="subitem-gear-slide-flex-container-hit-locations-special-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="13">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>2d6+1</h1>
|
|
<h1>High Shot</h1>
|
|
<h1>-2</h1>
|
|
</div>
|
|
<div class="subitem-gear-slide-flex-container-hit-locations-special-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="14">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>2d6+4</h1>
|
|
<h1>Body Shot</h1>
|
|
<h1>-1</h1>
|
|
</div>
|
|
<div class="subitem-gear-slide-flex-container-hit-locations-special-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="15">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>2d6+7</h1>
|
|
<h1>Low Shot</h1>
|
|
<h1>-2</h1>
|
|
</div>
|
|
<div class="subitem-gear-slide-flex-container-hit-locations-special-bottom-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="16">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>1d6+12</h1>
|
|
<h1>Leg Shot</h1>
|
|
<h1>-4</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Targeting Options -->
|
|
<div class="item-gear-slide-container-hit-locations-options">
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-options-top">
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_halveTargetOCVpenalty">
|
|
<span class="checkmark-small-light" title="@{halveTargetOCVpenalty}"></span>
|
|
</label>
|
|
<h1>Half Penalty</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-options-bottom">
|
|
<h1>Apply PSL</h1>
|
|
<input type="number" name="attr_penaltySkillLevels" title="@{penaltySkillLevels}" value="0" min="0" step="1" tabindex="200"/>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Standard Hit Location Table -->
|
|
<div class="item-gear-slide-container-hit-locations-table">
|
|
<div class="subitem-gear-slide-container-hit-locations-table-heading">
|
|
<h1>Target</h1>
|
|
<h1>Roll</h1>
|
|
<h1>Location</h1>
|
|
<h1>STUNx</h1>
|
|
<h1>N STUN</h1>
|
|
<h1>BODYx</h1>
|
|
<h1>OCV</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-top-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="2">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>3-5</h1>
|
|
<h1>Head</h1>
|
|
<h1>x5</h1>
|
|
<h1>x2</h1>
|
|
<h1>x2</h1>
|
|
<h1>-8</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="3">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>6</h1>
|
|
<h1>Hands</h1>
|
|
<h1>x1</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>-6</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="4">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>7-8</h1>
|
|
<h1>Arms</h1>
|
|
<h1>x2</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>-5</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="5">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>9</h1>
|
|
<h1>Shoulders</h1>
|
|
<h1>x3</h1>
|
|
<h1>x1</h1>
|
|
<h1>x1</h1>
|
|
<h1>-5</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="6">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>10-11</h1>
|
|
<h1>Chest</h1>
|
|
<h1>x3</h1>
|
|
<h1>x1</h1>
|
|
<h1>x1</h1>
|
|
<h1>-3</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="7">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>12</h1>
|
|
<h1>Stomach</h1>
|
|
<h1>x4</h1>
|
|
<h1>x3/2</h1>
|
|
<h1>x1</h1>
|
|
<h1>-7</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="8">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>13</h1>
|
|
<h1>Vitals</h1>
|
|
<h1>x4</h1>
|
|
<h1>x3/2</h1>
|
|
<h1>x2</h1>
|
|
<h1>-8</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="9">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>14</h1>
|
|
<h1>Thighs</h1>
|
|
<h1>x2</h1>
|
|
<h1>x1</h1>
|
|
<h1>x1</h1>
|
|
<h1>-4</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-middle-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="10">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>15-16</h1>
|
|
<h1>Legs</h1>
|
|
<h1>x2</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>-6</h1>
|
|
</div>
|
|
|
|
<div class="subitem-gear-slide-container-hit-locations-table-bottom-row">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_targetSelection" value="11">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
<h1>17-18</h1>
|
|
<h1>Feet</h1>
|
|
<h1>x1</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>x1/2</h1>
|
|
<h1>-8</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Slide for text -->
|
|
<div class="item-tab-gear-slide-treasure-text">
|
|
<textarea name="attr_treasures" title="@{treasures}" maxlength="8192" tabindex="260"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Skills tab -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<div class="sheet-skills">
|
|
<div class="grid-container-skills-tab">
|
|
<input type="hidden" class="skill-checks" name="attr_skillChecks" value="move"/>
|
|
<div class="flex-container-skills-left">
|
|
<div class="item-skillsTab-flex-container-cap">
|
|
<!-- Left side skills heading -->
|
|
<div class="subitem-skillsTab-grid-container-skills-heading-left">
|
|
<label class="tiny-xbox-dummy-container">
|
|
<div class="tiny-xbox-dummy">
|
|
</div>
|
|
</label>
|
|
|
|
<div class="subitem-skillsTab-grid-container-skills-heading-left-name">
|
|
<h1>Skills</h1>
|
|
</div>
|
|
<div class="subitem-skillsTab-grid-container-skills-heading-left-type">
|
|
<h1>Type</h1>
|
|
</div>
|
|
<div class="subitem-skillsTab-grid-container-skills-heading-left-roll">
|
|
<h1>Roll</h1>
|
|
</div>
|
|
<div class="subitem-skillsTab-grid-container-skills-heading-left-cost">
|
|
<h1>CP</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- <div class="item-skillsTab-flex-container-skills-group01"> -->
|
|
<div class="item-flex-container-skill-list">
|
|
<!-- Skill 01 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName01" maxlength="22" tabindex="300"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete01">
|
|
<span class="checkmark" title="@{skillDelete01}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-01" name="attr_selectSkillState01" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType01">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="text" value="0" name="attr_skillRollChance01" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill01" title="%{testSkill01}" tabindex="-1">Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP01" tabindex="301"/>
|
|
</div>
|
|
|
|
<!-- Skill 02 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName02" maxlength="22" tabindex="302"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete02">
|
|
<span class="checkmark" title="@{skillDelete02}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-02" name="attr_selectSkillState02" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType02">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance02" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill02" tabindex="-1" title="%{testSkill02}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP02" tabindex="303"/>
|
|
</div>
|
|
|
|
<!-- Skill 03 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName03" maxlength="22" tabindex="304"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete03">
|
|
<span class="checkmark" title="@{skillDelete03}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-03" name="attr_selectSkillState03" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType03">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance03" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill03" tabindex="-1" title="%{testSkill03}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP03" tabindex="305"/>
|
|
</div>
|
|
|
|
<!-- Skill 04 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName04" maxlength="22" tabindex="306"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete04">
|
|
<span class="checkmark" title="@{skillDelete04}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-04" name="attr_selectSkillState04" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType04">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance04" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill04" tabindex="-1" title="%{testSkill04}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP04" tabindex="307"/>
|
|
</div>
|
|
|
|
<!-- Skill 05 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName05" maxlength="22" tabindex="308"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp05">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown05">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete05">
|
|
<span class="checkmark" title="@{skillDelete05}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-05" name="attr_selectSkillState05" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType05">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance05" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill05" tabindex="-1" title="%{testSkill05}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP05" tabindex="309"/>
|
|
</div>
|
|
|
|
<!-- Skill 06 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName06" maxlength="22" tabindex="310"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp06">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown06">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete06">
|
|
<span class="checkmark" title="@{skillDelete06}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-06" name="attr_selectSkillState06" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType06">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance06" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill06" tabindex="-1" title="%{testSkill06}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP06" tabindex="311"/>
|
|
</div>
|
|
|
|
<!-- Skill 07 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName07" maxlength="22" tabindex="312"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp07">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown07">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete07">
|
|
<span class="checkmark" title="@{skillDelete07}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-07" name="attr_selectSkillState07" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType07">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance07" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill07" tabindex="-1" title="%{testSkill07}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP07" tabindex="313"/>
|
|
</div>
|
|
|
|
<!-- Skill 08 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName08" maxlength="22" tabindex="314"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp08">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown08">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete08">
|
|
<span class="checkmark" title="@{skillDelete08}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-08" name="attr_selectSkillState08" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType08">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance08" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill08" tabindex="-1" title="%{testSkill08}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP08" tabindex="315"/>
|
|
</div>
|
|
|
|
<!-- Skill 09 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName09" maxlength="22" tabindex="316"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp09">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown09">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete09">
|
|
<span class="checkmark" title="@{skillDelete09}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-09" name="attr_selectSkillState09" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType09">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance09" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill09" tabindex="-1" title="%{testSkill09}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP09" tabindex="317"/>
|
|
</div>
|
|
|
|
<!-- Skill 10 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName10" maxlength="22" tabindex="318"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp10">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown10">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete10">
|
|
<span class="checkmark" title="@{skillDelete10}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-10" name="attr_selectSkillState10" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType10">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance10" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill10" tabindex="-1" title="%{testSkill10}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP10" tabindex="319"/>
|
|
</div>
|
|
|
|
<!-- Skill Group 02-->
|
|
<!-- Skill 11 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName11" maxlength="22" tabindex="320"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp11">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown11">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete11">
|
|
<span class="checkmark" title="@{skillDelete11}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-11" name="attr_selectSkillState11" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType11">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance11" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill11" tabindex="-1" title="%{testSkill11}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP11" tabindex="321"/>
|
|
</div>
|
|
|
|
<!-- Skill 12 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName12" maxlength="22" tabindex="322"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp12">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown12">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete12">
|
|
<span class="checkmark" title="@{skillDelete12}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-12" name="attr_selectSkillState12" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType12">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance12" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill12" tabindex="-1" title="%{testSkill12}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP12" tabindex="323"/>
|
|
</div>
|
|
|
|
<!-- Skill 13 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName13" maxlength="22" tabindex="324"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp13">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown13">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete13">
|
|
<span class="checkmark" title="@{skillDelete13}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-13" name="attr_selectSkillState13" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType13">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance13" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill13" tabindex="-1" title="%{testSkill13}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP13" tabindex="325"/>
|
|
</div>
|
|
|
|
<!-- Skill 14 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName14" maxlength="22" tabindex="326"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp14">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown14">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete14">
|
|
<span class="checkmark" title="@{skillDelete14}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-14" name="attr_selectSkillState14" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType14">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance14" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill14" tabindex="-1" title="%{testSkill14}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP14" tabindex="327"/>
|
|
</div>
|
|
|
|
<!-- Skill 15 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName15" maxlength="22" tabindex="328"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp15">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown15">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete15">
|
|
<span class="checkmark" title="@{skillDelete15}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-15" name="attr_selectSkillState15" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType15">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance15" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill15" tabindex="-1" title="%{testSkill15}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP15" tabindex="329"/>
|
|
</div>
|
|
|
|
<!-- Skill 16 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName16" maxlength="22" tabindex="330"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp16">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown16">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete16">
|
|
<span class="checkmark" title="@{skillDelete16}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-16" name="attr_selectSkillState16" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType16">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance16" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill16" tabindex="-1" title="%{testSkill16}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP16" tabindex="331"/>
|
|
</div>
|
|
|
|
<!-- Skill 17 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName17" maxlength="22" tabindex="332"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp17">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown17">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete17">
|
|
<span class="checkmark" title="@{skillDelete17}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-17" name="attr_selectSkillState17" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType17">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance17" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill17" tabindex="-1" title="%{testSkill17}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP17" tabindex="333"/>
|
|
</div>
|
|
|
|
<!-- Skill 18 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName18" maxlength="22" tabindex="334"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp18">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown18">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete18">
|
|
<span class="checkmark" title="@{skillDelete18}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-18" name="attr_selectSkillState18" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType18">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance18" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill18" tabindex="-1" title="%{testSkill18}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP18" tabindex="335"/>
|
|
</div>
|
|
|
|
<!-- Skill 19 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName19" maxlength="22" tabindex="336"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp19">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown19">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete19">
|
|
<span class="checkmark" title="@{skillDelete19}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-19" name="attr_selectSkillState19" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType19">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance19" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill19" tabindex="-1" title="%{testSkill19}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP19" tabindex="337"/>
|
|
</div>
|
|
|
|
<!-- Skill 20 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName20" maxlength="22" tabindex="338"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp20">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown20">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete20">
|
|
<span class="checkmark" title="@{skillDelete20}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-20" name="attr_selectSkillState20" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType20">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance20" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill20" tabindex="-1" title="%{testSkill20}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP20" tabindex="339"/>
|
|
</div>
|
|
|
|
<!-- Skill 21 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName21" maxlength="22" tabindex="340"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp21">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown21">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete21">
|
|
<span class="checkmark" title="@{skillDelete21}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-21" name="attr_selectSkillState21" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType21">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="tf">TF</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance21" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill21" tabindex="-1" title="%{testSkill21}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP21" tabindex="341"/>
|
|
</div>
|
|
|
|
<!-- Skill 22 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName22" maxlength="22" tabindex="342"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp22">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown22">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete22">
|
|
<span class="checkmark" title="@{skillDelete22}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-22" name="attr_selectSkillState22" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType22">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance22" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill22" tabindex="-1" title="%{testSkill22}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP22" tabindex="343"/>
|
|
</div>
|
|
|
|
<!-- Skill 23 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName23" maxlength="22" tabindex="344"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp23">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown23">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete23">
|
|
<span class="checkmark" title="@{skillDelete23}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-23" name="attr_selectSkillState23" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType23">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance23" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill23" tabindex="-1" title="%{testSkill23}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP23" tabindex="345"/>
|
|
</div>
|
|
|
|
<!-- Skill 24 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName24" maxlength="22" tabindex="346"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp24">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown24">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete24">
|
|
<span class="checkmark" title="@{skillDelete24}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-24" name="attr_selectSkillState24" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType24">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance24" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill24" tabindex="-1" title="%{testSkill24}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP24" tabindex="347"/>
|
|
</div>
|
|
|
|
<!-- Skill 25 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName25" maxlength="22" tabindex="348"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp25">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown25">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete25">
|
|
<span class="checkmark" title="@{skillDelete25}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-25" name="attr_selectSkillState25" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType25">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance25" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill25" tabindex="-1" title="%{testSkill25}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP25" tabindex="349"/>
|
|
</div>
|
|
|
|
<!-- Skill 26 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName26" maxlength="22" tabindex="350"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp26">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown26">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete26">
|
|
<span class="checkmark" title="@{skillDelete26}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-26" name="attr_selectSkillState26" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType26">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance26" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill26" tabindex="-1" title="%{testSkill26}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP26" tabindex="351"/>
|
|
</div>
|
|
|
|
<!-- Skill 27 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName27" maxlength="22" tabindex="352"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp27">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown27">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete27">
|
|
<span class="checkmark" title="@{skillDelete27}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-27" name="attr_selectSkillState27" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType27">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance27" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill27" tabindex="-1" title="%{testSkill27}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP27" tabindex="353"/>
|
|
</div>
|
|
|
|
<!-- Skill 28 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName28" maxlength="22" tabindex="354"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp28">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown28">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete28">
|
|
<span class="checkmark" title="@{skillDelete28}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-28" name="attr_selectSkillState28" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType28">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance28" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill28" tabindex="-1" title="%{testSkill28}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP28" tabindex="355"/>
|
|
</div>
|
|
|
|
<!-- Skill 29 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName29" maxlength="22" tabindex="356"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp29">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown29">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete29">
|
|
<span class="checkmark" title="@{skillDelete29}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-29" name="attr_selectSkillState29" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType29">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance29" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill29" tabindex="-1" title="%{testSkill29}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP29" tabindex="357"/>
|
|
</div>
|
|
|
|
<!-- Skill 30 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName30" maxlength="22" tabindex="358"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp30">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown30">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete30">
|
|
<span class="checkmark" title="@{skillDelete30}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-30" name="attr_selectSkillState30" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType30">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance30" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill30" tabindex="-1" title="%{testSkill30}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP30" tabindex="359"/>
|
|
</div>
|
|
|
|
<!-- Skill Group 04-->
|
|
<!-- Skill 31 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName31" maxlength="22" tabindex="360"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp31">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown31">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete31">
|
|
<span class="checkmark" title="@{skillDelete31}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-31" name="attr_selectSkillState31" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType31">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance31" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill31" tabindex="-1" title="%{testSkill31}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP31" tabindex="361"/>
|
|
</div>
|
|
|
|
<!-- Skill 32 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName32" maxlength="22" tabindex="362"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp32">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown32">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete32">
|
|
<span class="checkmark" title="@{skillDelete32}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-32" name="attr_selectSkillState32" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType32">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance32" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill32" tabindex="-1" title="%{testSkill32}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP32" tabindex="363"/>
|
|
</div>
|
|
|
|
<!-- Skill 33 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName33" maxlength="22" tabindex="364"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp33">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown33">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete33">
|
|
<span class="checkmark" title="@{skillDelete33}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-33" name="attr_selectSkillState33" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType33">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance33" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill33" tabindex="-1" title="%{testSkill33}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP33" tabindex="365"/>
|
|
</div>
|
|
|
|
<!-- Skill 34 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName34" maxlength="22" tabindex="366"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp34">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown34">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete34">
|
|
<span class="checkmark" title="@{skillDelete34}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-34" name="attr_selectSkillState34" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType34">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance34" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill34" tabindex="-1" title="%{testSkill34}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP34" tabindex="367"/>
|
|
</div>
|
|
|
|
<!-- Skill 35 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName35" maxlength="22" tabindex="368"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp35">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown35">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete35">
|
|
<span class="checkmark" title="@{skillDelete35}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-35" name="attr_selectSkillState35" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType35">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance35" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill35" tabindex="-1" title="%{testSkill35}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP35" tabindex="369"/>
|
|
</div>
|
|
|
|
<!-- Skill 36 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName36" maxlength="22" tabindex="370"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp36">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown36">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete36">
|
|
<span class="checkmark" title="@{skillDelete36}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-36" name="attr_selectSkillState36" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType36">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance36" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill36" tabindex="-1" title="%{testSkill36}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP36" tabindex="371"/>
|
|
</div>
|
|
|
|
<!-- Skill 37 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName37" maxlength="22" tabindex="372"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp37">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown37">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete37">
|
|
<span class="checkmark" title="@{skillDelete37}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-37" name="attr_selectSkillState37" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType37">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance37" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill37" tabindex="-1" title="%{testSkill37}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP37" tabindex="373"/>
|
|
</div>
|
|
|
|
<!-- Skill 38 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName38" maxlength="22" tabindex="374"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp38">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown38">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete38">
|
|
<span class="checkmark" title="@{skillDelete38}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-38" name="attr_selectSkillState38" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType38">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance38" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill38" tabindex="-1" title="%{testSkill38}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP38" tabindex="375"/>
|
|
</div>
|
|
|
|
<!-- Skill 39 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName39" maxlength="22" tabindex="376"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp39">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown39">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete39">
|
|
<span class="checkmark" title="@{skillDelete39}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-39" name="attr_selectSkillState39" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType39">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance39" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill39" tabindex="-1" title="%{testSkill39}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP39" tabindex="377"/>
|
|
</div>
|
|
|
|
<!-- Skill 40 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName40" maxlength="40" tabindex="378"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp40">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown40">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete40">
|
|
<span class="checkmark" title="@{skillDelete40}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-40" name="attr_selectSkillState40" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType40">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance40" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill40" tabindex="-1" title="%{testSkill40}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP40" tabindex="379"/>
|
|
</div>
|
|
|
|
<!-- Skill Group 05-->
|
|
<!-- Skill 41 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName41" maxlength="22" tabindex="380"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp41">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown41">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete41">
|
|
<span class="checkmark" title="@{skillDelete41}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-41" name="attr_selectSkillState41" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType41">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance41" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill41" tabindex="-1" title="%{testSkill41}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP41" tabindex="381"/>
|
|
</div>
|
|
|
|
<!-- Skill 42 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName42" maxlength="22" tabindex="382"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp42">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown42">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete42">
|
|
<span class="checkmark" title="@{skillDelete42}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-42" name="attr_selectSkillState42" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType42">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance42" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill42" tabindex="-1" title="%{testSkill42}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP42" tabindex="383"/>
|
|
</div>
|
|
|
|
<!-- Skill 43 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName43" maxlength="22" tabindex="384"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp43">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown43">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete43">
|
|
<span class="checkmark" title="@{skillDelete43}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-43" name="attr_selectSkillState43" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType43">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance43" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill43" tabindex="-1" title="%{testSkill43}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP43" tabindex="385"/>
|
|
</div>
|
|
|
|
<!-- Skill 44 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName44" maxlength="22" tabindex="386"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp44">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown44">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete44">
|
|
<span class="checkmark" title="@{skillDelete44}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-44" name="attr_selectSkillState44" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType44">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance44" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill44" tabindex="-1" title="%{testSkill44}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP44" tabindex="387"/>
|
|
</div>
|
|
|
|
<!-- Skill 45 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName45" maxlength="22" tabindex="388"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp45">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown45">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete45">
|
|
<span class="checkmark" title="@{skillDelete45}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-45" name="attr_selectSkillState45" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType45">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance45" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill45" tabindex="-1" title="%{testSkill45}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP45" tabindex="389"/>
|
|
</div>
|
|
|
|
<!-- Skill 46 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName46" maxlength="22" tabindex="390"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp46">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown46">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete46">
|
|
<span class="checkmark" title="@{skillDelete46}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-46" name="attr_selectSkillState46" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType46">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance46" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill46" tabindex="-1" title="%{testSkill46}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP46" tabindex="391"/>
|
|
</div>
|
|
|
|
<!-- Skill 47 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName47" maxlength="22" tabindex="392"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp47">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown47">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete47">
|
|
<span class="checkmark" title="@{skillDelete47}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-47" name="attr_selectSkillState47" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType47">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance47" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill47" tabindex="-1" title="%{testSkill47}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP47" tabindex="393"/>
|
|
</div>
|
|
|
|
<!-- Skill 48 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName48" maxlength="22" tabindex="394"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp48">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown48">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete48">
|
|
<span class="checkmark" title="@{skillDelete48}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-48" name="attr_selectSkillState48" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType48">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance48" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill48" tabindex="-1" title="%{testSkill48}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP48" tabindex="395"/>
|
|
</div>
|
|
|
|
<!-- Skill 49 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName49" maxlength="22" tabindex="396"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp49">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown49">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete49">
|
|
<span class="checkmark" title="@{skillDelete49}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-49" name="attr_selectSkillState49" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType49">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance49" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill49" tabindex="-1" title="%{testSkill49}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP49" tabindex="397"/>
|
|
</div>
|
|
|
|
<!-- Skill 50 -->
|
|
<div class="subitem-skillsTab-flex-container-skill">
|
|
<input type="text" value="" name="attr_skillName50" maxlength="50" tabindex="398"/>
|
|
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp50">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown50">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete50">
|
|
<span class="checkmark" title="@{skillDelete50}"></span>
|
|
</label>
|
|
|
|
<input type="hidden" class="select-skill-state-50" name="attr_selectSkillState50" value="0"/>
|
|
<div class="custom-select-skill">
|
|
<select name="attr_skillType50">
|
|
<option value="everyman">Every</option>
|
|
<option value="everymanPS">Every PS</option>
|
|
<option value="none" selected>-</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>
|
|
<option value="ak">AK</option>
|
|
<option value="intAK">AK (INT)</option>
|
|
<option value="ck">CK</option>
|
|
<option value="intCK">CK (INT)</option>
|
|
<option value="cuk">CuK</option>
|
|
<option value="intCuK">CuK (INT)</option>
|
|
<option value="ks">KS</option>
|
|
<option value="intKS">KS (INT)</option>
|
|
<option value="ps">PS</option>
|
|
<option value="intPS">PS (INT)</option>
|
|
<option value="dexPS">PS (DEX)</option>
|
|
<option value="ss">SS</option>
|
|
<option value="intSS">SS (INT)</option>
|
|
<option value="tf">TF</option>
|
|
<option value="combat">Combat</option>
|
|
<option value="sp1">SP1 (INT)</option>
|
|
<option value="sp2">SP2 (INT)</option>
|
|
<option value="sp3">SP3 (INT)</option>
|
|
<option value="sp4">SP4 (INT)</option>
|
|
<option value="sp5">SP5 (INT)</option>
|
|
<option value="sp6">SP6 (INT)</option>
|
|
<option value="other">Other</option>
|
|
<option value="group">Group</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" value="0" name="attr_skillRollChance50" readonly tabindex="-1"/>
|
|
<button type="action" class='button buttonRoll' name="act_testSkill50" tabindex="-1" title="%{testSkill50}" >Roll</button>
|
|
<input type="number" value="0" min="0" name="attr_skillCP50" tabindex="399"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-skillsTab-flex-container-base">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex-container-skills-right">
|
|
<!-- Combat skills section -->
|
|
<input type="hidden" class="combat-skills-extension" name="attr_combatSkillsExtension" value="false"/>
|
|
|
|
<div class="item-skillsTab-flex-container-combat-skills">
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<h1>Combat Skills</h1>
|
|
<label class="tiny-xbox-dummy-container">
|
|
<div class="tiny-xbox-dummy">
|
|
</div>
|
|
</label>
|
|
<h1>Type</h1>
|
|
<h1>Levels</h1>
|
|
<h1>CP</h1>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName61" maxlength="23" tabindex="400"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp61">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown61">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete61">
|
|
<span class="checkmark" title="@{skillDelete61}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType61">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels61" tabindex="401"/>
|
|
<input type="text" value="0" name="attr_skillCP61" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName62" maxlength="23" tabindex="402"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp62">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown62">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete62">
|
|
<span class="checkmark" title="@{skillDelete62}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType62">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels62" tabindex="403"/>
|
|
<input type="text" value="0" name="attr_skillCP62" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName63" maxlength="23" tabindex="404"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp63">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown63">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete63">
|
|
<span class="checkmark" title="@{skillDelete63}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType63">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels63" tabindex="405"/>
|
|
<input type="text" value="0" name="attr_skillCP63" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName64" maxlength="23" tabindex="406"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp64">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown64">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete64">
|
|
<span class="checkmark" title="@{skillDelete64}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType64">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels64" tabindex="407"/>
|
|
<input type="text" value="0" name="attr_skillCP64" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName65" maxlength="23" tabindex="408"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp65">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown65">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete65">
|
|
<span class="checkmark" title="@{skillDelete65}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType65">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels65" tabindex="409"/>
|
|
<input type="text" value="0" name="attr_skillCP65" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName66" maxlength="23" tabindex="410"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp66">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown66">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete66">
|
|
<span class="checkmark" title="@{skillDelete66}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType66">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels66" tabindex="411"/>
|
|
<input type="text" value="0" name="attr_skillCP66" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName67" maxlength="23" tabindex="412"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp67">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown67">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete67">
|
|
<span class="checkmark" title="@{skillDelete67}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType67">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels67" tabindex="413"/>
|
|
<input type="text" value="0" name="attr_skillCP67" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="item-flex-container-combat-skills-extension">
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName68" maxlength="23" tabindex="414"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp68">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown68">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete68">
|
|
<span class="checkmark" title="@{skillDelete68}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType68">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels68" tabindex="415"/>
|
|
<input type="text" value="0" name="attr_skillCP68" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName69" maxlength="23" tabindex="416"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp69">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown69">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete69">
|
|
<span class="checkmark" title="@{skillDelete69}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType69">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels69" tabindex="417"/>
|
|
<input type="text" value="0" name="attr_skillCP69" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName70" maxlength="23" tabindex="418"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp70">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown70">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete70">
|
|
<span class="checkmark" title="@{skillDelete70}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType70">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels70" tabindex="419"/>
|
|
<input type="text" value="0" name="attr_skillCP70" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName71" maxlength="23" tabindex="420"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp71">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown71">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete71">
|
|
<span class="checkmark" title="@{skillDelete71}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType71">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels71" tabindex="421"/>
|
|
<input type="text" value="0" name="attr_skillCP71" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill">
|
|
<input type="text" value="" name="attr_skillName72" maxlength="23" tabindex="422"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-skill-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp72">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown72">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete72">
|
|
<span class="checkmark" title="@{skillDelete72}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillType72">
|
|
<option value="none" selected>-</option>
|
|
<option value="Fam1">WF1</option>
|
|
<option value="Fam2">WF2</option>
|
|
<option value="ELM">ELM</option>
|
|
<option value="CSL2">CSL2</option>
|
|
<option value="CSL3">CSL3</option>
|
|
<option value="CSL5">CSL5</option>
|
|
<option value="CSL8">CSL8</option>
|
|
<option value="MCSL1">MCSL1</option>
|
|
<option value="MCSL3">MCSL3</option>
|
|
<option value="MCSL6">MCSL6</option>
|
|
<option value="PSL1">PSL1</option>
|
|
<option value="PSL2">PSL2</option>
|
|
<option value="PSL3">PSL3</option>
|
|
</select>
|
|
</div>
|
|
|
|
<input type="number" value="0" min="0" name="attr_skillLevels72" tabindex="423"/>
|
|
<input type="text" value="0" name="attr_skillCP72" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-levels">
|
|
<h1>All HTH Levels</h1>
|
|
<input type="number" value="0" min="0" name="attr_skillLevels73" tabindex="424"/>
|
|
<input type="text" value="0" name="attr_skillCP73" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-levels">
|
|
<h1>All Range Levels</h1>
|
|
<input type="number" value="0" min="0" name="attr_skillLevels74" tabindex="425"/>
|
|
<input type="text" value="0" name="attr_skillCP74" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-combat-levels">
|
|
<h1>All Combat Levels</h1>
|
|
<input type="number" value="0" min="0" name="attr_skillLevels75" tabindex="426"/>
|
|
<input type="text" value="0" name="attr_skillCP75" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Language skills section -->
|
|
<input type="hidden" class="language-skills-extension" name="attr_languageSkillsExtension" value="true"/>
|
|
<div class="item-skillsTab-flex-container-languages">
|
|
|
|
<!-- Language skills heading -->
|
|
<div class="subitem-skillsTab-flex-container-language-heading">
|
|
<h1>Languages</h1>
|
|
<label class="tiny-xbox-dummy-container">
|
|
<div class="tiny-xbox-dummy">
|
|
</div>
|
|
</label>
|
|
<h1>Fluency</h1>
|
|
<h1>Lit.</h1>
|
|
<h1>CP</h1>
|
|
</div>
|
|
|
|
<!-- Language skill 01 (76 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName76" maxlength="23" tabindex="431"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp76">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown76">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete76">
|
|
<span class="checkmark" title="@{skillDelete76}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency76">
|
|
<option value="native" selected >Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none">-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy76">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP76" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- Language skill 02 (77 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName77" maxlength="23" tabindex="432"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp77">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown77">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete77">
|
|
<span class="checkmark" title="@{skillDelete77}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency77">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy77">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP77" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- Language skill 03 (78 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName78" maxlength="23" tabindex="433"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp78">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown78">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete78">
|
|
<span class="checkmark" title="@{skillDelete78}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency78">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy78">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP78" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- Language skill 04 (79 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName79" maxlength="23" tabindex="434"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp79">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown79">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete79">
|
|
<span class="checkmark" title="@{skillDelete79}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency79">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy79">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP79" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- This block of skills can be used as combat skills if optionFewerLanguages is true. -->
|
|
<div class="item-flex-container-language-block-extension">
|
|
<!-- Language skill 05 (80 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName80" maxlength="23" tabindex="435"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp80">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown80">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete80">
|
|
<span class="checkmark" title="@{skillDelete80}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency80">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy80">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP80" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- Language skill 06 (81 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName81" maxlength="23" tabindex="436"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp81">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown81">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete81">
|
|
<span class="checkmark" title="@{skillDelete81}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency81">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy81">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP81" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- Language skill 07 (82 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName82" maxlength="23" tabindex="437"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp82">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown82">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete82">
|
|
<span class="checkmark" title="@{skillDelete82}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency82">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy82">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP82" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- Language skill 08 (83 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName83" maxlength="23" tabindex="438"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp83">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown83">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete83">
|
|
<span class="checkmark" title="@{skillDelete83}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency83">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy83">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP83" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<!-- Language skill 09 ( 84 overall) -->
|
|
<div class="subitem-skillsTab-flex-container-language">
|
|
<input type="text" value="" name="attr_skillName84" maxlength="23" tabindex="439"/>
|
|
|
|
<div class="subitem-skillsTab-flex-container-language-movers">
|
|
<div class="skill-mover-plus-minus-enclosure">
|
|
<div class="skill-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_skillUp84">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_skillDown84">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_skillDelete84">
|
|
<span class="checkmark" title="@{skillDelete84}"></span>
|
|
</label>
|
|
|
|
<div class="custom-select">
|
|
<select name="attr_skillFluency84">
|
|
<option value="native">Native</option>
|
|
<option value="nativePlus">Native +</option>
|
|
<option value="none" selected >-</option>
|
|
<option value="basic" >Basic</option>
|
|
<option value="fluent" >Fluent</option>
|
|
<option value="accent" >Accent</option>
|
|
<option value="idiomatic">Idiomatic</option>
|
|
<option value="imitate" >Imitate</option>
|
|
</select>
|
|
</div>
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_skillLiteracy84">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<input type="text" value="0" name="attr_skillCP84" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Enhancers and Levels -->
|
|
<div class="item-skillsTab-flex-container-enhancers">
|
|
<div class="subitem-skillsTab-flex-container-enhancers-heading">
|
|
<h1>Enhancers</h1>
|
|
<h1>CP</h1>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-enhancers-row">
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_enhancerJack">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<h1>Jack of all Trades</h1>
|
|
<input type="text" value="0" name="attr_enhancerJackCP" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-enhancers-row">
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_enhancerLing">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<h1>Linguist</h1>
|
|
<input type="text" value="0" name="attr_enhancerLingCP" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-enhancers-row">
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_enhancerSch">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<h1>Scholar</h1>
|
|
<input type="text" value="0" name="attr_enhancerSchCP" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-enhancers-row">
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_enhancerSci">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<h1>Scientist</h1>
|
|
<input type="text" value="0" name="attr_enhancerSciCP" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-enhancers-row">
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_enhancerTrav">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<h1>Traveler</h1>
|
|
<input type="text" value="0" name="attr_enhancerTravCP" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-enhancers-row">
|
|
<label class="container-checkbox-small">
|
|
<input type="checkbox" name="attr_enhancerWell">
|
|
<span class="checkmark-small"></span>
|
|
</label>
|
|
<h1>Well-Connected</h1>
|
|
<input type="text" value="0" name="attr_enhancerWellCP" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-levels-row">
|
|
<h1>Interaction Skill Levels</h1>
|
|
<input type="number" name="attr_interactionLevels" min="0" value="0" tabindex="440"/>
|
|
<input type="text" name="attr_interactionLevelsCP" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-levels-row">
|
|
<h1>Intellect Skill Levels</h1>
|
|
<input type="number" name="attr_intellectLevels" min="0" value="0" tabindex="441"/>
|
|
<input type="text" name="attr_intellectLevelsCP" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-levels-row">
|
|
<h1>Agility Skill Levels</h1>
|
|
<input type="number" name="attr_agilityLevels" min="0" value="0" tabindex="442"/>
|
|
<input type="text" name="attr_agilityLevelsCP" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-levels-row">
|
|
<h1>Non-combat Skill Levels</h1>
|
|
<input type="number" name="attr_noncombatLevels" min="0" value="0" tabindex="443"/>
|
|
<input type="text" name="attr_noncombatLevelsCP" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
|
|
<div class="subitem-skillsTab-flex-container-levels-row">
|
|
<h1>Overall Levels</h1>
|
|
<input type="number" name="attr_overallLevels" min="0" value="0" tabindex="444"/>
|
|
<input type="text" name="attr_overallLevelsCP" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Powers Tab -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<div class="sheet-powers">
|
|
<div class="grid-container-powers">
|
|
<!-- Power Combat Mods -->
|
|
<div class="item-powers-combat-mods">
|
|
<!-- Range Maneuvers -->
|
|
<div class="item-powers-range-mods">
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerManeuver" title="@oowerManeuver">
|
|
<option value="haymaker">Haymaker</option>
|
|
<option value="multipleAttack">Multiple Atk</option>
|
|
<option value="strike" selected>Strike</option>
|
|
</select>
|
|
</div>
|
|
<h1>CSL:</h1>
|
|
<input type="number" name="attr_powerCSL" title="@{powerCSL}" step="2" min="0" max="20" value="0" tabindex="-1"/>
|
|
<h1>Braced:</h1>
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkBrace">
|
|
<span class="checkmark-small-dark" title="@{checkBrace}"></span>
|
|
</label>
|
|
<h1>Set:</h1>
|
|
<label class="container-checkbox-small-dark">
|
|
<input type="checkbox" name="attr_checkSet">
|
|
<span class="checkmark-small-dark" title="@{checkSet}"></span>
|
|
</label>
|
|
<button type="action" class="button buttonRollPowerArmor" tabindex="-1" name="act_activateArmor01" title="%{activateArmor01}">Armor</button>
|
|
</div>
|
|
|
|
<!-- Range Modifier Table -->
|
|
<div class="subitem-tab-gear-slide-flex-container-range-modifiers">
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>Range (m)</h2>
|
|
<h2>OCV Mod:</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangePower" value="0" checked>
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>0-8</h2>
|
|
<h2>0</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangePower" value="9">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>9-16</h2>
|
|
<h2>-2</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangePower" value="17">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>17-32</h2>
|
|
<h2>-4</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangePower" value="33">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>33-64</h2>
|
|
<h2>-6</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="subitem-tab-gear-slide-range-modifier-container">
|
|
<div class="subitem-range-modifier-button-container">
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_rangePower" value="65">
|
|
<span class="custom-radio-button"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="subitem-range-modifier-container-column">
|
|
<h2>65-125</h2>
|
|
<h2>-8</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power Health Status -->
|
|
<input type="hidden" class="sheet-health-display" name="attr_sheetHealthDisplay" value="standard"/>
|
|
<div class="item-powers-health">
|
|
<div class="item-health-stat-enclosure">
|
|
<h2>BODY</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentBODY" title="@{CurrentBODY}" value="10" maxlength="3" pattern="[0-9]+" tabindex="-1"/>
|
|
<div class="item-health-stat-plus-minus-enclosure ">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_bodyPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_bodyMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-health-stat-enclosure">
|
|
<h2>STUN</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentSTUN" title="@{CurrentSTUN}" value="20" maxlength="3" pattern="[0-9]+" tabindex="-1"/>
|
|
<div class="item-health-stat-plus-minus-enclosure ">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_stunPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_stunMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-health-stat-enclosure">
|
|
<h2>END</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentEND" title="@{CurrentEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="-1"/>
|
|
<div class="item-health-stat-plus-minus-enclosure ">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_endurancePlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_enduranceMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-health-stat-enclosure">
|
|
<button type="action" class="button buttonRecover" tabindex="-1" name="act_recoverHealth" title="%{recoverHealth}">Recover</button>
|
|
<button type="action" class="button buttonReset" tabindex="-1" name="act_resetHealth" title="%{resetHealth}">Reset</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-powers-health">
|
|
<div class="item-health-stat-enclosure">
|
|
<h2>BODY</h2>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentBODY" title="@{CurrentBODY}" value="10" maxlength="3" pattern="[0-9]+" tabindex="50"/>
|
|
<div class="item-health-stat-plus-minus-enclosure ">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_bodyPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_bodyMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-health-stat-enclosure">
|
|
<div class="item-health-selection-container">
|
|
<h2>END</h2>
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_reserveSelectPowers" value="0" checked>
|
|
<span class="custom-radio-button-health"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentMainEND" title="@{CurrentMainEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="51"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_primaryPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_primaryMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-health-stat-enclosure">
|
|
<div class="item-health-selection-container">
|
|
<h2>AUX</h2>
|
|
<label class="custom-radio-button-container">
|
|
<input type="radio" name="attr_reserveSelectPowers" value="1">
|
|
<span class="custom-radio-button-health"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-health-stat">
|
|
<input type="text" name="attr_CurrentAuxiliaryEND" title="@{CurrentAuxiliaryEND}" value="20" maxlength="3" pattern="[0-9]+" tabindex="52"/>
|
|
<div class="item-health-stat-plus-minus-enclosure">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_auxiliaryPlus">
|
|
<span>❯</span>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_auxiliaryMinus">
|
|
<span>❮</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-health-stat-enclosure">
|
|
<button type="action" class="button buttonRecover" tabindex="-1" name="act_recoverHealth" title="%{recoverHealth}">Recover</button>
|
|
<button type="action" class="button buttonReset" tabindex="-1" name="act_resetHealth" title="%{resetHealth}">Reset</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Upper set of powers (01-10) -->
|
|
<div class="flex-container-upper-powers">
|
|
<input type="hidden" class="item-upper-power-selection" name="attr_upperPowerSelection" value="power01"/>
|
|
<input type="hidden" class="upper-power-checks" name="attr_upperPowerChecks" value="hide"/>
|
|
|
|
<!-- Lower power delete buttons -->
|
|
<div class="item-upper-power-delete-panel">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete01">
|
|
<span class="checkmark" title="@{powerDelete01}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete02">
|
|
<span class="checkmark" title="@{powerDelete02}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete03">
|
|
<span class="checkmark" title="@{powerDelete03}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete04">
|
|
<span class="checkmark" title="@{powerDelete04}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete05">
|
|
<span class="checkmark" title="@{powerDelete05}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete06">
|
|
<span class="checkmark" title="@{powerDelete06}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete07">
|
|
<span class="checkmark" title="@{powerDelete07}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete08">
|
|
<span class="checkmark" title="@{powerDelete08}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete09">
|
|
<span class="checkmark" title="@{powerDelete09}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete10">
|
|
<span class="checkmark" title="@{powerDelete10}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="flex-container-power-actions">
|
|
|
|
<input type="hidden" class="item-upper-power-action01" name="attr_powerAction01" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action02" name="attr_powerAction02" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action03" name="attr_powerAction03" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action04" name="attr_powerAction04" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action05" name="attr_powerAction05" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action06" name="attr_powerAction06" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action07" name="attr_powerAction07" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action08" name="attr_powerAction08" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action09" name="attr_powerAction09" value="false"/>
|
|
<input type="hidden" class="item-upper-power-action10" name="attr_powerAction10" value="false"/>
|
|
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action01">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll01" title="%powerRoll01">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND01" title="%{buttonPowerEND01} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action02">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll02" title="%powerRoll02">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND02" title="%{buttonPowerEND02} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action03">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll03" title="%powerRoll03">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND03" title="%{buttonPowerEND03} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action04">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll04" title="%powerRoll04">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND04" title="%{buttonPowerEND04} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action05">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll05" title="%powerRoll05">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND05" title="%{buttonPowerEND05} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action06">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll06" title="%powerRoll06">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND06" title="%{buttonPowerEND06} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action07">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll07" title="%powerRoll07">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND07" title="%{buttonPowerEND07} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action08">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll08" title="%powerRoll08">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND08" title="%{buttonPowerEND08} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action09">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll09" title="%powerRoll09">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND09" title="%{buttonPowerEND09} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action10">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll10" title="%powerRoll00">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND10" title="%{buttonPowerEND10} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex-container-power-selectors">
|
|
<button type="action" name="act_power01" ><span name="attr_powerName01"></span></button>
|
|
<button type="action" name="act_power02" ><span name="attr_powerName02"></span></button>
|
|
<button type="action" name="act_power03" ><span name="attr_powerName03"></span></button>
|
|
<button type="action" name="act_power04" ><span name="attr_powerName04"></span></button>
|
|
<button type="action" name="act_power05" ><span name="attr_powerName05"></span></button>
|
|
<button type="action" name="act_power06" ><span name="attr_powerName06"></span></button>
|
|
<button type="action" name="act_power07" ><span name="attr_powerName07"></span></button>
|
|
<button type="action" name="act_power08" ><span name="attr_powerName08"></span></button>
|
|
<button type="action" name="act_power09" ><span name="attr_powerName09"></span></button>
|
|
<button type="action" name="act_power10" ><span name="attr_powerName10"></span></button>
|
|
</div>
|
|
|
|
<!-- Power Slides -->
|
|
<div class="grid-container-power-slides">
|
|
|
|
<!-- Power 01 -->
|
|
<div class="item-power-slide01">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP01" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName01" title="@{powerName01}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType01" title="@powerType01">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect01" title="@powerEffect01" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice01" title="@powerDice01" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType01">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack01">
|
|
<span class="checkmark-small-light" title="@{powerAttack01}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage01">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod01" title="@powerStunMod01" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate01">
|
|
<span class="checkmark-small-light" title="@{powerActivate01}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll01" title="@{powerSkillRoll01}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE01">
|
|
<span class="checkmark-small-light" title="@{powerAoE01}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV01">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod01">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND01">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND01" title="@powerEND01" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages01" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations01" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost01" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost01" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText01" placeholder="Power description" title="@powerText01" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 02 -->
|
|
<div class="item-power-slide02">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP02" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName02" title="@{powerName02}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType02" title="@powerType02">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect02" title="@powerEffect02" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice02" title="@powerDice02" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType02">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack02">
|
|
<span class="checkmark-small-light" title="@{powerAttack02}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage02">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod02" title="@powerStunMod02" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate02">
|
|
<span class="checkmark-small-light" title="@{powerActivate02}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll02" title="@{powerSkillRoll02}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE02">
|
|
<span class="checkmark-small-light" title="@{powerAoE02}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV02">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod02">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND02">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND02" title="@powerEND02" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages02" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations02" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost02" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost02" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText02" placeholder="Power description" title="@powerText02" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 03 -->
|
|
<div class="item-power-slide03">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP03" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName03" title="@{powerName03}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType03" title="@powerType03">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect03" title="@powerEffect03" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice03" title="@powerDice03" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType03">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack03">
|
|
<span class="checkmark-small-light" title="@{powerAttack03}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage03">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod03" title="@powerStunMod03" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate03">
|
|
<span class="checkmark-small-light" title="@{powerActivate03}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll03" title="@{powerSkillRoll03}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE03">
|
|
<span class="checkmark-small-light" title="@{powerAoE03}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV03">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod03">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND03">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND03" title="@powerEND03" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages03" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations03" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost03" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost03" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText03" placeholder="Power description" title="@powerText03" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 04 -->
|
|
<div class="item-power-slide04">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP04" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName04" title="@{powerName04}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType04" title="@powerType04">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect04" title="@powerEffect04" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice04" title="@powerDice04" value="0" maxlength="16" tabindex="402"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType04">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack04">
|
|
<span class="checkmark-small-light" title="@{powerAttack04}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage04">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod04" title="@powerStunMod04" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate04">
|
|
<span class="checkmark-small-light" title="@{powerActivate04}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll04" title="@{powerSkillRoll04}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE04">
|
|
<span class="checkmark-small-light" title="@{powerAoE04}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV04">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod04">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND04">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND04" title="@powerEND04" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages04" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations04" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost04" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost04" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText04" placeholder="Power description" title="@powerText04" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 05 -->
|
|
<div class="item-power-slide05">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP05" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName05" title="@{powerName05}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp05">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown05">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType05" title="@powerType05">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect05" title="@powerEffect05" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice05" title="@powerDice05" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType05">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack05">
|
|
<span class="checkmark-small-light" title="@{powerAttack05}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage05">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod05" title="@powerStunMod05" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate05">
|
|
<span class="checkmark-small-light" title="@{powerActivate05}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll05" title="@{powerSkillRoll05}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE05">
|
|
<span class="checkmark-small-light" title="@{powerAoE05}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV05">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod05">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND05">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND05" title="@powerEND05" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages05" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations05" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost05" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost05" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText05" placeholder="Power description" title="@powerText05" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 06 -->
|
|
<div class="item-power-slide06">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP06" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName06" title="@{powerName06}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp06">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown06">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType06" title="@powerType06">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect06" title="@powerEffect06" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice06" title="@powerDice06" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType06">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack06">
|
|
<span class="checkmark-small-light" title="@{powerAttack06}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage06">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod06" title="@powerStunMod06" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate06">
|
|
<span class="checkmark-small-light" title="@{powerActivate06}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll06" title="@{powerSkillRoll06}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE06">
|
|
<span class="checkmark-small-light" title="@{powerAoE06}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV06">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod06">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND06">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND06" title="@powerEND06" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages06" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations06" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost06" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost06" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText06" placeholder="Power description" title="@powerText06" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 07 -->
|
|
<div class="item-power-slide07">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP07" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName07" title="@{powerName07}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp07">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown07">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType07" title="@powerType07">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect07" title="@powerEffect07" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice07" title="@powerDice07" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType07">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack07">
|
|
<span class="checkmark-small-light" title="@{powerAttack07}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage07">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod07" title="@powerStunMod07" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate07">
|
|
<span class="checkmark-small-light" title="@{powerActivate07}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll07" title="@{powerSkillRoll07}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE07">
|
|
<span class="checkmark-small-light" title="@{powerAoE07}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV07">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod07">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND07">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND07" title="@powerEND07" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages07" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations07" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost07" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost07" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText07" placeholder="Power description" title="@powerText07" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 08 -->
|
|
<div class="item-power-slide08">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP08" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName08" title="@{powerName08}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp08">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown08">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType08" title="@powerType08">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect08" title="@powerEffect08" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice08" title="@powerDice08" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType08">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack08">
|
|
<span class="checkmark-small-light" title="@{powerAttack08}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage08">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod08" title="@powerStunMod08" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate08">
|
|
<span class="checkmark-small-light" title="@{powerActivate08}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll08" title="@{powerSkillRoll08}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE08">
|
|
<span class="checkmark-small-light" title="@{powerAoE08}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV08">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod08">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND08">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND08" title="@powerEND08" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages08" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations08" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost08" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost08" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText08" placeholder="Power description" title="@powerText08" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 09 -->
|
|
<div class="item-power-slide09">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP09" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName09" title="@{powerName09}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp09">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown09">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType09" title="@powerType09">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect09" title="@powerEffect09" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice09" title="@powerDice09" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType09">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack09">
|
|
<span class="checkmark-small-light" title="@{powerAttack09}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage09">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod09" title="@powerStunMod09" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate09">
|
|
<span class="checkmark-small-light" title="@{powerActivate09}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll09" title="@{powerSkillRoll09}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE09">
|
|
<span class="checkmark-small-light" title="@{powerAoE09}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV09">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod09">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND09">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND09" title="@powerEND09" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages09" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations09" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost09" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost09" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText09" placeholder="Power description" title="@powerText09" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 10 -->
|
|
<div class="item-power-slide10">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP10" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName10" title="@{powerName10}" placeholder="Power" value="" maxlength="21" tabindex="450"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp10">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown10">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType10" title="@powerType10">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect10" title="@powerEffect10" maxlength="25" tabindex="451"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice10" title="@powerDice10" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType10">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack10">
|
|
<span class="checkmark-small-light" title="@{powerAttack10}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage10">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod10" title="@powerStunMod10" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate10">
|
|
<span class="checkmark-small-light" title="@{powerActivate10}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll10" title="@{powerSkillRoll10}" value="18" min="0" max="30" tabindex="454"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE10">
|
|
<span class="checkmark-small-light" title="@{powerAoE10}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV10">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod10">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND10">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND10" title="@powerEND10" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages10" min="0" value="0" step="0.25" tabindex="455"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations10" min="0" value="0" step="0.25" tabindex="456"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost10" min="0" value="0" tabindex="457"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost10" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText10" placeholder="Power description" title="@powerText10" maxlength="512" tabindex="458"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Lower set of powers (11-20) -->
|
|
<div class="flex-container-lower-powers">
|
|
<input type="hidden" class="item-lower-power-selection" name="attr_lowerPowerSelection" value="power11"/>
|
|
<input type="hidden" class="lower-power-checks" name="attr_lowerPowerChecks" value="hide"/>
|
|
|
|
<!-- Lower power delete buttons -->
|
|
<div class="item-lower-power-delete-panel">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete11">
|
|
<span class="checkmark" title="@{powerDelete11}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete12">
|
|
<span class="checkmark" title="@{powerDelete12}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete13">
|
|
<span class="checkmark" title="@{powerDelete13}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete14">
|
|
<span class="checkmark" title="@{powerDelete14}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete15">
|
|
<span class="checkmark" title="@{powerDelete15}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete16">
|
|
<span class="checkmark" title="@{powerDelete16}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete17">
|
|
<span class="checkmark" title="@{powerDelete17}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete18">
|
|
<span class="checkmark" title="@{powerDelete18}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete19">
|
|
<span class="checkmark" title="@{powerDelete19}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_powerDelete20">
|
|
<span class="checkmark" title="@{powerDelete20}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="flex-container-power-actions">
|
|
|
|
<input type="hidden" class="item-lower-power-action11" name="attr_powerAction11" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action12" name="attr_powerAction12" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action13" name="attr_powerAction13" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action14" name="attr_powerAction14" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action15" name="attr_powerAction15" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action16" name="attr_powerAction16" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action17" name="attr_powerAction17" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action18" name="attr_powerAction18" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action19" name="attr_powerAction19" value="false"/>
|
|
<input type="hidden" class="item-lower-power-action20" name="attr_powerAction20" value="false"/>
|
|
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action11">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll11" title="%powerRoll11">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND11" title="%{buttonPowerEND11} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action12">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll12" title="%powerRoll12">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND12" title="%{buttonPowerEND12} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action13">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll13" title="%powerRoll13">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND13" title="%{buttonPowerEND13} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action14">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll14" title="%powerRoll14">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND14" title="%{buttonPowerEND14} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action15">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll15" title="%powerRoll15">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND15" title="%{buttonPowerEND15} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action16">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll16" title="%powerRoll16">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND16" title="%{buttonPowerEND16} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action17">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll17" title="%powerRoll17">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND17" title="%{buttonPowerEND17} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action18">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll18" title="%powerRoll18">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND18" title="%{buttonPowerEND18} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action19">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll19" title="%powerRoll19">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND19" title="%{buttonPowerEND19} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-action-block">
|
|
<div class="item-power-action20">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_powerRoll20" title="%powerRoll20">Roll</button>
|
|
<button type="action" class="button button-Power-END" tabindex="-1" name="act_buttonPowerEND20" title="%{buttonPowerEND20} " tabindex="-1">END</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex-container-power-selectors">
|
|
<button type="action" name="act_power11" ><span name="attr_powerName11"></span></button>
|
|
<button type="action" name="act_power12" ><span name="attr_powerName12"></span></button>
|
|
<button type="action" name="act_power13" ><span name="attr_powerName13"></span></button>
|
|
<button type="action" name="act_power14" ><span name="attr_powerName14"></span></button>
|
|
<button type="action" name="act_power15" ><span name="attr_powerName15"></span></button>
|
|
<button type="action" name="act_power16" ><span name="attr_powerName16"></span></button>
|
|
<button type="action" name="act_power17" ><span name="attr_powerName17"></span></button>
|
|
<button type="action" name="act_power18" ><span name="attr_powerName18"></span></button>
|
|
<button type="action" name="act_power19" ><span name="attr_powerName19"></span></button>
|
|
<button type="action" name="act_power20" ><span name="attr_powerName20"></span></button>
|
|
</div>
|
|
|
|
<div class="grid-container-power-slides">
|
|
<!-- Power 11 -->
|
|
<div class="item-power-slide11">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP11" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName11" title="@{powerName11}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp11">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown11">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType11" title="@powerType11">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect11" title="@powerEffect11" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice11" title="@powerDice11" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType11">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack11">
|
|
<span class="checkmark-small-light" title="@{powerAttack11}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage11">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod11" title="@powerStunMod11" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate11">
|
|
<span class="checkmark-small-light" title="@{powerActivate11}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll11" title="@{powerSkillRoll11}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE11">
|
|
<span class="checkmark-small-light" title="@{powerAoE11}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV11">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod11">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND11">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND11" title="@powerEND11" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages11" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations11" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost11" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost11" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText11" placeholder="Power description" title="@powerText11" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 12 -->
|
|
<div class="item-power-slide12">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP12" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName12" title="@{powerName12}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp12">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown12">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType12" title="@powerType12">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect12" title="@powerEffect12" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice12" title="@powerDice12" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType12">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack12">
|
|
<span class="checkmark-small-light" title="@{powerAttack12}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage12">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod12" title="@powerStunMod12" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate12">
|
|
<span class="checkmark-small-light" title="@{powerActivate12}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll12" title="@{powerSkillRoll12}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE12">
|
|
<span class="checkmark-small-light" title="@{powerAoE12}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV12">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod12">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND12">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND12" title="@powerEND12" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages12" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations12" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost12" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost12" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText12" placeholder="Power description" title="@powerText12" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 13 -->
|
|
<div class="item-power-slide13">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP13" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName13" title="@{powerName13}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp13">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown13">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType13" title="@powerType13">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect13" title="@powerEffect13" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice13" title="@powerDice13" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType13">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack13">
|
|
<span class="checkmark-small-light" title="@{powerAttack13}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage13">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod13" title="@powerStunMod13" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate13">
|
|
<span class="checkmark-small-light" title="@{powerActivate13}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll13" title="@{powerSkillRoll13}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE13">
|
|
<span class="checkmark-small-light" title="@{powerAoE13}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV13">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod13">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND13">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND13" title="@powerEND13" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages13" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations13" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost13" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost13" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText13" placeholder="Power description" title="@powerText13" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 14 -->
|
|
<div class="item-power-slide14">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP14" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName14" title="@{powerName14}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp14">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown14">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType14" title="@powerType14">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect14" title="@powerEffect14" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice14" title="@powerDice14" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType14">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack14">
|
|
<span class="checkmark-small-light" title="@{powerAttack14}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage14">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod14" title="@powerStunMod14" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate14">
|
|
<span class="checkmark-small-light" title="@{powerActivate14}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll14" title="@{powerSkillRoll14}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE14">
|
|
<span class="checkmark-small-light" title="@{powerAoE14}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV14">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod14">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND14">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND14" title="@powerEND14" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages14" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations14" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost14" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost14" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText14" placeholder="Power description" title="@powerText14" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 15 -->
|
|
<div class="item-power-slide15">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP15" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName15" title="@{powerName15}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp15">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown15">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType15" title="@powerType15">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect15" title="@powerEffect15" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice15" title="@powerDice15" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType15">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack15">
|
|
<span class="checkmark-small-light" title="@{powerAttack15}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage15">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod15" title="@powerStunMod15" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate15">
|
|
<span class="checkmark-small-light" title="@{powerActivate15}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll15" title="@{powerSkillRoll15}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE15">
|
|
<span class="checkmark-small-light" title="@{powerAoE15}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV15">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod15">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND15">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND15" title="@powerEND15" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages15" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations15" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost15" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost15" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText15" placeholder="Power description" title="@powerText15" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 16 -->
|
|
<div class="item-power-slide16">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP16" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName16" title="@{powerName16}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp16">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown16">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType16" title="@powerType16">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect16" title="@powerEffect16" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice16" title="@powerDice16" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType16">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack16">
|
|
<span class="checkmark-small-light" title="@{powerAttack16}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage16">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod16" title="@powerStunMod16" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate16">
|
|
<span class="checkmark-small-light" title="@{powerActivate16}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll16" title="@{powerSkillRoll16}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE16">
|
|
<span class="checkmark-small-light" title="@{powerAoE16}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV16">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod16">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND16">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND16" title="@powerEND16" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages16" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations16" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost16" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost16" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText16" placeholder="Power description" title="@powerText16" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 17 -->
|
|
<div class="item-power-slide17">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP17" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName17" title="@{powerName17}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp17">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown17">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType17" title="@powerType17">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect17" title="@powerEffect17" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice17" title="@powerDice17" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType17">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack17">
|
|
<span class="checkmark-small-light" title="@{powerAttack17}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage17">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod17" title="@powerStunMod17" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate17">
|
|
<span class="checkmark-small-light" title="@{powerActivate17}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll17" title="@{powerSkillRoll17}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE17">
|
|
<span class="checkmark-small-light" title="@{powerAoE17}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV17">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod17">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND17">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND17" title="@powerEND17" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages17" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations17" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost17" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost17" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText17" placeholder="Power description" title="@powerText17" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 18 -->
|
|
<div class="item-power-slide18">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP18" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName18" title="@{powerName18}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp18">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown18">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType18" title="@powerType18">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect18" title="@powerEffect18" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice18" title="@powerDice18" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType18">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack18">
|
|
<span class="checkmark-small-light" title="@{powerAttack18}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage18">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod18" title="@powerStunMod18" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate18">
|
|
<span class="checkmark-small-light" title="@{powerActivate18}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll18" title="@{powerSkillRoll18}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE18">
|
|
<span class="checkmark-small-light" title="@{powerAoE18}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV18">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod18">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND18">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND18" title="@powerEND18" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages18" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations18" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost18" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost18" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText18" placeholder="Power description" title="@powerText18" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 19 -->
|
|
<div class="item-power-slide19">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP19" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName19" title="@{powerName19}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp19">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown19">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType19" title="@powerType19">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect19" title="@powerEffect19" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice19" title="@powerDice19" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType19">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack19">
|
|
<span class="checkmark-small-light" title="@{powerAttack19}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage19">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod19" title="@powerStunMod19" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate19">
|
|
<span class="checkmark-small-light" title="@{powerActivate19}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll19" title="@{powerSkillRoll19}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE19">
|
|
<span class="checkmark-small-light" title="@{powerAoE19}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV19">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod19">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND19">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND19" title="@powerEND19" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages19" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations19" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost19" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost19" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText19" placeholder="Power description" title="@powerText19" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Power 20 -->
|
|
<div class="item-power-slide20">
|
|
<div class ="item-power-block-heading">
|
|
<div class="item-power-block-heading-container">
|
|
<input type="text" name="attr_powerCP20" value="0" readonly tabindex="-1"/>
|
|
<h1>CP</h1>
|
|
</div>
|
|
<input type="text" name="attr_powerName20" title="@{powerName20}" placeholder="Power" value="" maxlength="21" tabindex="460"/>
|
|
<div class="item-power-block-heading-container">
|
|
<div class="power-mover-plus-minus-enclosure">
|
|
<div class="power-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_powerUp20">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_powerDown20">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block">
|
|
<div class="item-power-block-stats">
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Power Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerType20" title="@powerType20">
|
|
<option value="single" selected>Single Power</option>
|
|
<option value="multipower">Multipower</option>
|
|
<option value="variableSlot">Variable Slot</option>
|
|
<option value="fixedSlot">Fixed Slot</option>
|
|
<option value="powerPool">VPP Pool</option>
|
|
<option value="powerControl">VPP Control</option>
|
|
<option value="compound">Compound</option>
|
|
<option value="unified">Unified</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>Effect:</h1>
|
|
<input type="text" name="attr_powerEffect20" title="@powerEffect20" maxlength="25" tabindex="461"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_powerDice20" title="@powerDice20" value="0" maxlength="16" tabindex="462"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageType20">
|
|
<option value="power" selected>Power</option>
|
|
<option value="normal">Normal</option>
|
|
<option value="killing">Killing</option>
|
|
<option value="HTH">HTH</option>
|
|
<option value="HKA">HKA</option>
|
|
<option value="mental">Mental</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>ATK?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAttack20">
|
|
<span class="checkmark-small-light" title="@{powerAttack20}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>DA:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDamageAdvantage20">
|
|
<option value="0" selected>0</option>
|
|
<option value="0.25">0.25</option>
|
|
<option value="0.5">0.50</option>
|
|
<option value="0.75">0.75</option>
|
|
<option value="1">1</option>
|
|
<option value="1.25">1.25</option>
|
|
<option value="1.5">1.50</option>
|
|
<option value="1.75">1.75</option>
|
|
<option value="2">2</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Sx:</h1>
|
|
<input type="number" name="attr_powerStunMod20" title="@powerStunMod20" value="0" maxlength="1" min="-2" max="2" step="1" tabindex="463"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-quarter-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerActivate20">
|
|
<span class="checkmark-small-light" title="@{powerActivate20}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>Skill:</h1>
|
|
<input type="number" name="attr_powerSkillRoll20" title="@{powerSkillRoll20}" value="18" min="0" max="30" tabindex="464"/>
|
|
</div>
|
|
|
|
<div class="item-power-block-stats-thirds-row">
|
|
<h1>AoE?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_powerAoE20">
|
|
<span class="checkmark-small-light" title="@{powerAoE20}"></span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>DCV:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerDCV20">
|
|
<option value="full" selected>Full</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>RMod:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerRMod20">
|
|
<option value="standard" selected>STD</option>
|
|
<option value="half">Half</option>
|
|
<option value="zero">Zero</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<h1>END:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_powerReducedEND20">
|
|
<option value="noEND">None</option>
|
|
<option value="costsENDhalf">Costs END (half)</option>
|
|
<option value="costsENDfull">Costs END (full)</option>
|
|
<option value="zeroENDAF">Zero (AF)</option>
|
|
<option value="zeroEND">Zero</option>
|
|
<option value="reducedENDAF">Reduced (AF)</option>
|
|
<option value="reducedEND">Reduced</option>
|
|
<option value="standardEND" selected>Standard</option>
|
|
<option value="increasedENDx2">Increase x2</option>
|
|
<option value="increasedENDx3">Increase x3</option>
|
|
<option value="increasedENDx4">Increase x4</option>
|
|
<option value="increasedENDx5">Increase x5</option>
|
|
<option value="increasedENDx6">Increase x6</option>
|
|
<option value="increasedENDx7">Increase x7</option>
|
|
<option value="increasedENDx8">Increase x8</option>
|
|
<option value="increasedENDx9">Increase x9</option>
|
|
<option value="increasedENDx10">Increase x10</option>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_powerEND20" title="@powerEND20" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Adv:</h1>
|
|
<input type="number" name="attr_powerAdvantages20" min="0" value="0" step="0.25" tabindex="465"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Lim:</h1>
|
|
<input type="number" name="attr_powerLimitations20" min="0" value="0" step="0.25" tabindex="466"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-power-block-stats-row">
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Base:</h1>
|
|
<input type="number" name="attr_powerBaseCost20" min="0" value="0" tabindex="467"/>
|
|
</div>
|
|
<div class="item-power-block-stats-half-row">
|
|
<h1>Active:</h1>
|
|
<input type="text" name="attr_powerActiveCost20" value="0" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class ="item-power-block-text">
|
|
<textarea name="attr_powerText20" placeholder="Power description" title="@powerText20" maxlength="512" tabindex="468"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Perks, Talents, and Complications tab -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<div class="sheet-complications">
|
|
<div class="grid-container-complications-talents">
|
|
<div class="flex-container-talents-title">
|
|
<h2> Perks and Talents</h2>
|
|
</div>
|
|
|
|
<div class="flex-container-talents">
|
|
<input type="hidden" class="item-talent-selection" name="attr_talentSelection" value="talent01"/>
|
|
<input type="hidden" class="talent-checks" name="attr_talentChecks" value="hide"/>
|
|
|
|
<!-- Talent delete buttons -->
|
|
<div class="item-talent-delete-panel">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete01">
|
|
<span class="checkmark" title="@{talentDelete01}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete02">
|
|
<span class="checkmark" title="@{talentDelete02}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete03">
|
|
<span class="checkmark" title="@{talentDelete03}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete04">
|
|
<span class="checkmark" title="@{talentDelete04}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete05">
|
|
<span class="checkmark" title="@{talentDelete05}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete06">
|
|
<span class="checkmark" title="@{talentDelete06}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete07">
|
|
<span class="checkmark" title="@{talentDelete07}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete08">
|
|
<span class="checkmark" title="@{talentDelete08}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete09">
|
|
<span class="checkmark" title="@{talentDelete09}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_talentDelete10">
|
|
<span class="checkmark" title="@{talentDelete10}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<!-- Talent selection buttons -->
|
|
|
|
<div class="flex-container-talent-selectors">
|
|
<button type="action" name="act_talent01" ><span name="attr_talentName01"></span></button>
|
|
<button type="action" name="act_talent02" ><span name="attr_talentName02"></span></button>
|
|
<button type="action" name="act_talent03" ><span name="attr_talentName03"></span></button>
|
|
<button type="action" name="act_talent04" ><span name="attr_talentName04"></span></button>
|
|
<button type="action" name="act_talent05" ><span name="attr_talentName05"></span></button>
|
|
<button type="action" name="act_talent06" ><span name="attr_talentName06"></span></button>
|
|
<button type="action" name="act_talent07" ><span name="attr_talentName07"></span></button>
|
|
<button type="action" name="act_talent08" ><span name="attr_talentName08"></span></button>
|
|
<button type="action" name="act_talent09" ><span name="attr_talentName09"></span></button>
|
|
<button type="action" name="act_talent10" ><span name="attr_talentName10"></span></button>
|
|
</div>
|
|
|
|
<div class="container-talent-slides">
|
|
|
|
<!-- Talent 1 -->
|
|
<div class="item-talent-slide01">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName01" maxlength="26" title="@{talentName01}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP01" title="@{talentCP01}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice01" title="@talentDice01" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate01">
|
|
<span class="checkmark-small-light" title="@{talentActivate01}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance01" title="@{talentRollChance01}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll01" title="@{talentRoll01}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll01" title="%{showTalentRoll01}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText01" placeholder="Description" title="@talentText01" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 2 -->
|
|
<div class="item-talent-slide02">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName02" maxlength="26" title="@{talentName02}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP02" title="@{talentCP02}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice02" title="@talentDice02" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate02">
|
|
<span class="checkmark-small-light" title="@{talentActivate02}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance02" title="@{talentRollChance02}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll02" title="@{talentRoll02}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll02" title="%{showTalentRoll02}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText02" placeholder="Description" title="@talentText02" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 3 -->
|
|
<div class="item-talent-slide03">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName03" maxlength="26" title="@{talentName03}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP03" title="@{talentCP03}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice03" title="@talentDice03" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate03">
|
|
<span class="checkmark-small-light" title="@{talentActivate03}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance03" title="@{talentRollChance03}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll03" title="@{talentRoll03}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll03" title="%{showTalentRoll03}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText03" placeholder="Description" title="@talentText03" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 4 -->
|
|
<div class="item-talent-slide04">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName04" maxlength="26" title="@{talentName04}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP04" title="@{talentCP04}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice04" title="@talentDice04" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate04">
|
|
<span class="checkmark-small-light" title="@{talentActivate04}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance04" title="@{talentRollChance04}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll04" title="@{talentRoll04}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll04" title="%{showTalentRoll04}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText04" placeholder="Description" title="@talentText04" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 5 -->
|
|
<div class="item-talent-slide05">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName05" maxlength="26" title="@{talentName05}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp05">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown05">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP05" title="@{talentCP05}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice05" title="@talentDice05" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate05">
|
|
<span class="checkmark-small-light" title="@{talentActivate05}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance05" title="@{talentRollChance05}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll05" title="@{talentRoll05}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll05" title="%{showTalentRoll05}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText05" placeholder="Description" title="@talentText05" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 6 -->
|
|
<div class="item-talent-slide06">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName06" maxlength="26" title="@{talentName06}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp06">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown06">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP06" title="@{talentCP06}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice06" title="@talentDice06" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate06">
|
|
<span class="checkmark-small-light" title="@{talentActivate06}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance06" title="@{talentRollChance06}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll06" title="@{talentRoll06}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll06" title="%{showTalentRoll06}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText06" placeholder="Description" title="@talentText06" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 7 -->
|
|
<div class="item-talent-slide07">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName07" maxlength="26" title="@{talentName07}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp07">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown07">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP07" title="@{talentCP07}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice07" title="@talentDice07" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate07">
|
|
<span class="checkmark-small-light" title="@{talentActivate07}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance07" title="@{talentRollChance07}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll07" title="@{talentRoll07}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll07" title="%{showTalentRoll07}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText07" placeholder="Description" title="@talentText07" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 8 -->
|
|
<div class="item-talent-slide08">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName08" maxlength="26" title="@{talentName08}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp08">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown08">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP08" title="@{talentCP08}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice08" title="@talentDice08" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate08">
|
|
<span class="checkmark-small-light" title="@{talentActivate08}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance08" title="@{talentRollChance08}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll08" title="@{talentRoll08}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll08" title="%{showTalentRoll08}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText08" placeholder="Description" title="@talentText08" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 9 -->
|
|
<div class="item-talent-slide09">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName09" maxlength="26" title="@{talentName09}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp09">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown09">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP09" title="@{talentCP09}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice09" title="@talentDice09" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate09">
|
|
<span class="checkmark-small-light" title="@{talentActivate09}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance09" title="@{talentRollChance09}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll09" title="@{talentRoll09}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll09" title="%{showTalentRoll09}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText09" placeholder="Description" title="@talentText09" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Talent 10 -->
|
|
<div class="item-talent-slide10">
|
|
<div class ="item-talent-block-heading">
|
|
<input type="text" name="attr_talentName10" maxlength="26" title="@{talentName10}" placeholder="Talent" value="" tabindex="450"/>
|
|
<div class="item-talent-block-heading-container">
|
|
<div class="talent-mover-plus-minus-enclosure">
|
|
<div class="talent-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_talentUp10">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_talentDown10">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-stats">
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_talentCP10" title="@{talentCP10}" value="0" min="0" tabindex="451"/>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_talentDice10" title="@talentDice10" value="0" maxlength="16" tabindex="452"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_talentActivate10">
|
|
<span class="checkmark-small-light" title="@{talentActivate10}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-talent-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_talentRollChance10" title="@{talentRollChance10}" value="18" min="0" max="30" tabindex="453"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-talent-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_talentRoll10" title="@{talentRoll10}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showTalentRoll10" title="%{showTalentRoll10}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-talent-block-text">
|
|
<textarea name="attr_talentText10" placeholder="Description" title="@talentText10" maxlength="512" tabindex="454"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex-container-talents-notes">
|
|
<div class="container-talents-text">
|
|
<textarea name="attr_complicationsTextLeft" title="@{complicationsTextLeft}" maxlength="2048" tabindex="670"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex-container-complications-title">
|
|
<h2> Complications</h2>
|
|
</div>
|
|
|
|
<div class="flex-container-complications">
|
|
<input type="hidden" class="item-complication-selection" name="attr_complicationSelection" value="complication01"/>
|
|
<input type="hidden" class="complication-checks" name="attr_complicationChecks" value="hide"/>
|
|
|
|
<!-- complication delete buttons -->
|
|
<div class="item-complication-delete-panel">
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete01">
|
|
<span class="checkmark" title="@{complicationDelete01}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete02">
|
|
<span class="checkmark" title="@{complicationDelete02}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete03">
|
|
<span class="checkmark" title="@{complicationDelete03}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete04">
|
|
<span class="checkmark" title="@{complicationDelete04}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete05">
|
|
<span class="checkmark" title="@{complicationDelete05}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete06">
|
|
<span class="checkmark" title="@{complicationDelete06}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete07">
|
|
<span class="checkmark" title="@{complicationDelete07}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete08">
|
|
<span class="checkmark" title="@{complicationDelete08}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete09">
|
|
<span class="checkmark" title="@{complicationDelete09}"></span>
|
|
</label>
|
|
<label class="container-xbox-tiny">
|
|
<input type="checkbox" name="attr_complicationDelete10">
|
|
<span class="checkmark" title="@{complicationDelete10}"></span>
|
|
</label>
|
|
</div>
|
|
|
|
<!-- Complication selection buttons -->
|
|
|
|
<div class="flex-container-complication-selectors">
|
|
<button type="action" name="act_complication01" ><span name="attr_complicationName01"></span></button>
|
|
<button type="action" name="act_complication02" ><span name="attr_complicationName02"></span></button>
|
|
<button type="action" name="act_complication03" ><span name="attr_complicationName03"></span></button>
|
|
<button type="action" name="act_complication04" ><span name="attr_complicationName04"></span></button>
|
|
<button type="action" name="act_complication05" ><span name="attr_complicationName05"></span></button>
|
|
<button type="action" name="act_complication06" ><span name="attr_complicationName06"></span></button>
|
|
<button type="action" name="act_complication07" ><span name="attr_complicationName07"></span></button>
|
|
<button type="action" name="act_complication08" ><span name="attr_complicationName08"></span></button>
|
|
<button type="action" name="act_complication09" ><span name="attr_complicationName09"></span></button>
|
|
<button type="action" name="act_complication10" ><span name="attr_complicationName10"></span></button>
|
|
</div>
|
|
|
|
<div class="container-complication-slides">
|
|
|
|
<!-- Complication 1 -->
|
|
<div class="item-complication-slide01">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName01" maxlength="26" placeholder="Complication" title="@{complicationName01}" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp01">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown01">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType01" title="@complicationType01">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP01" title="@{complicationCP01}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice01" title="@complicationDice01" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate01">
|
|
<span class="checkmark-small-light" title="@{complicationActivate01}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance01" title="@{complicationRollChance01}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll01" title="@{complicationRoll01}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll01" title="%{showcomplicationRoll01}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText01" placeholder="Description" title="@complicationText01" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 2 -->
|
|
<div class="item-complication-slide02">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName02" maxlength="26" title="@{complicationName02}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp02">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown02">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType02" title="@complicationType02">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP02" title="@{complicationCP02}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice02" title="@complicationDice02" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate02">
|
|
<span class="checkmark-small-light" title="@{complicationActivate02}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance02" title="@{complicationRollChance02}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll02" title="@{complicationRoll02}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll02" title="%{showcomplicationRoll02}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText02" placeholder="Description" title="@complicationText02" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 3 -->
|
|
<div class="item-complication-slide03">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName03" maxlength="26" title="@{complicationName03}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp03">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown03">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType03" title="@complicationType03">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP03" title="@{complicationCP03}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice03" title="@complicationDice03" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate03">
|
|
<span class="checkmark-small-light" title="@{complicationActivate03}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance03" title="@{complicationRollChance03}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll03" title="@{complicationRoll03}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll03" title="%{showcomplicationRoll03}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText03" title="@complicationText03" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 4 -->
|
|
<div class="item-complication-slide04">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName04" maxlength="26" title="@{complicationName04}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp04">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown04">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType04" title="@complicationType04">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP04" title="@{complicationCP04}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice04" title="@complicationDice04" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate04">
|
|
<span class="checkmark-small-light" title="@{complicationActivate04}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance04" title="@{complicationRollChance04}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll04" title="@{complicationRoll04}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll04" title="%{showcomplicationRoll04}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText04" placeholder="Description" title="@complicationText04" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 5 -->
|
|
<div class="item-complication-slide05">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName05" maxlength="26" title="@{complicationName05}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp05">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown05">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType05" title="@complicationType05">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP05" title="@{complicationCP05}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice05" title="@complicationDice05" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate05">
|
|
<span class="checkmark-small-light" title="@{complicationActivate05}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance05" title="@{complicationRollChance05}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll05" title="@{complicationRoll05}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll05" title="%{showcomplicationRoll05}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText05" placeholder="Description" title="@complicationText05" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 6 -->
|
|
<div class="item-complication-slide06">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName06" maxlength="26" title="@{complicationName06}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp06">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown06">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType06" title="@complicationType06">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP06" title="@{complicationCP06}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice06" title="@complicationDice06" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate06">
|
|
<span class="checkmark-small-light" title="@{complicationActivate06}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance06" title="@{complicationRollChance06}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll06" title="@{complicationRoll06}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll06" title="%{showcomplicationRoll06}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText06" placeholder="Description" title="@complicationText06" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 7 -->
|
|
<div class="item-complication-slide07">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName07" maxlength="26" title="@{complicationName07}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp07">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown07">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType07" title="@complicationType07">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP07" title="@{complicationCP07}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice07" title="@complicationDice07" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate07">
|
|
<span class="checkmark-small-light" title="@{complicationActivate07}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance07" title="@{complicationRollChance07}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll07" title="@{complicationRoll07}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll07" title="%{showcomplicationRoll07}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText07" placeholder="Description" title="@complicationText07" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 8 -->
|
|
<div class="item-complication-slide08">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName08" maxlength="26" title="@{complicationName08}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp08">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown08">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType08" title="@complicationType08">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP08" title="@{complicationCP08}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice08" title="@complicationDice08" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate08">
|
|
<span class="checkmark-small-light" title="@{complicationActivate08}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance08" title="@{complicationRollChance08}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll08" title="@{complicationRoll08}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll08" title="%{showcomplicationRoll08}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText08" placeholder="Description" title="@complicationText08" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 9 -->
|
|
<div class="item-complication-slide09">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName09" maxlength="26" title="@{complicationName09}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp09">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown09">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType09" title="@complicationType09">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP09" title="@{complicationCP09}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice09" title="@complicationDice09" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate09">
|
|
<span class="checkmark-small-light" title="@{complicationActivate09}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance09" title="@{complicationRollChance09}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll09" title="@{complicationRoll09}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll09" title="%{showcomplicationRoll09}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText09" placeholder="Description" title="@complicationText09" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Complication 10 -->
|
|
<div class="item-complication-slide10">
|
|
<div class ="item-complication-block-heading">
|
|
<input type="text" name="attr_complicationName10" maxlength="26" title="@{complicationName10}" placeholder="Complication" value="" tabindex="460"/>
|
|
<div class="item-complication-block-heading-container">
|
|
<div class="complication-mover-plus-minus-enclosure">
|
|
<div class="complication-mover-plus-minus-button">
|
|
<button type="action" class="button buttonPlus" tabindex="-1" name="act_complicationUp10">
|
|
<div class="upArrow"></div>
|
|
</button>
|
|
<button type="action" class="button buttonMinus" tabindex="-1" name="act_complicationDown10">
|
|
<div class="downArrow"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-stats">
|
|
<div class="item-complication-block-stats-row">
|
|
<h1>Type:</h1>
|
|
<div class="custom-select-alternate">
|
|
<select name="attr_complicationType10" title="@complicationType10">
|
|
<option value="none" selected>—</option>
|
|
<option value="accidental">Accidental Change</option>
|
|
<option value="dependence">Dependence</option>
|
|
<option value="dependent">Dependent NPC</option>
|
|
<option value="distinctive">Distinctive Features</option>
|
|
<option value="enraged">Enraged/Berserk</option>
|
|
<option value="hunted">Hunted</option>
|
|
<option value="reputation">Negative Reputation</option>
|
|
<option value="physical">Physical Complication</option>
|
|
<option value="psychological">Psychological Complication</option>
|
|
<option value="rival">Rival</option>
|
|
<option value="social">Social Complication</option>
|
|
<option value="susceptibility">Susceptibility</option>
|
|
<option value="unluck">Unluck</option>
|
|
<option value="vulnerability">Vulnerability</option>
|
|
<option value="custom">Custom</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>CP:</h1>
|
|
<input type="number" name="attr_complicationCP10" title="@{complicationCP10}" value="0" min="0" step="5" tabindex="463"/>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Dice:</h1>
|
|
<input type="text" name="attr_complicationDice10" title="@complicationDice10" value="0" maxlength="16" tabindex="464"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Roll?</h1>
|
|
<label class="container-checkbox-small-light">
|
|
<input type="checkbox" name="attr_complicationActivate10">
|
|
<span class="checkmark-small-light" title="@{complicationActivate10}"></span>
|
|
</label>
|
|
</div>
|
|
<div class="item-complication-block-stats-half-row">
|
|
<h1>Activation:</h1>
|
|
<input type="number" name="attr_complicationRollChance10" title="@{complicationRollChance10}" value="18" min="0" max="30" tabindex="465"/>
|
|
</div>
|
|
</div>
|
|
<div class="item-complication-block-stats-row">
|
|
<button type="action" class="button buttonRollPower" tabindex="-1" name="act_complicationRoll10" title="@{complicationRoll10}">Roll</button>
|
|
<button type="action" class="button buttonRollShow" tabindex="-1" name="act_showcomplicationRoll10" title="%{showcomplicationRoll10}">Show</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-complication-block-text">
|
|
<textarea name="attr_complicationText10" placeholder="Description" title="@complicationText10" maxlength="512" tabindex="466"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex-container-complications-notes">
|
|
<div class="container-complications-text">
|
|
<textarea name="attr_complicationsTextRight" title="@{complicationsTextRight}" maxlength="2048" tabindex="671"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Options tab -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<div class="sheet-options">
|
|
<div class="grid-container-tab-options">
|
|
<div class="item-options">
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_useCharacteristicMaximums">
|
|
<span class="checkmark" title="@{useCharacteristicMaximums}"></span>
|
|
</label>
|
|
<h1>Use Characteristic Maximums</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_optionLiteracyCostsPoints">
|
|
<span class="checkmark" title="@{optionLiteracyCostsPoints}"></span>
|
|
</label>
|
|
<h1>Literacy costs Character Points</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_optionFewerLanguages">
|
|
<span class="checkmark" title="@{optionFewerLanguages}"></span>
|
|
</label>
|
|
<h1>More Combat Skills; Fewer Languages</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_optionTakesNoSTUN">
|
|
<span class="checkmark" title="@{optionTakesNoSTUN}"></span>
|
|
</label>
|
|
<h1>Takes No STUN</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_optionUntiring">
|
|
<span class="checkmark" title="@{optionUntiring}"></span>
|
|
</label>
|
|
<h1>Untiring (STR uses Zero END)</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_optionSuperHeroicEndurance">
|
|
<span class="checkmark" title="@{optionSuperHeroicEndurance}"></span>
|
|
</label>
|
|
<h1>Superheroic Campaign Endurance</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_optionWeaponDamageCap">
|
|
<span class="checkmark" title="@{optionWeaponDamageCap}"></span>
|
|
</label>
|
|
<h1>Weapon Damage limited to 2x Base Damage</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_optionD6MinusOne">
|
|
<span class="checkmark" title="@{optionD6MinusOne}"></span>
|
|
</label>
|
|
<h1>Choose d6-1 over d3 when Adjusted Damage is ambiguous</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_optionCarryAllSets">
|
|
<span class="checkmark" title="@{optionCarryAllSets}"></span>
|
|
</label>
|
|
<h1>Carry all Gear Sets</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_useVehicleAttributes">
|
|
<span class="checkmark" title="@{useVehicleAttributes}"></span>
|
|
</label>
|
|
<h1>Use Vehicle Attributes</h1>
|
|
</div>
|
|
|
|
<div class="item-thematic-break">
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_displayDegreeOfSuccess">
|
|
<span class="checkmark" title="@{displayDegreeOfSuccess}"></span>
|
|
</label>
|
|
<h1>Display Degree of Success</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_optionHitLocationSystem">
|
|
<span class="checkmark" title="@{optionHitLocationSystem}"></span>
|
|
</label>
|
|
<h1>Use Hit Location System</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_optionResetTargeting">
|
|
<span class="checkmark" title="@{optionResetTargeting}"></span>
|
|
</label>
|
|
<h1>Health Reset Buttons reset Combat Choices</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" name="attr_optionResetCSLs">
|
|
<span class="checkmark" title="@{optionResetCSLs}"></span>
|
|
</label>
|
|
<h1>Health Reset Buttons reset applied CSLs</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_optionAutoSubtractEND">
|
|
<span class="checkmark" title="@{optionAutoSubtractEND}"></span>
|
|
</label>
|
|
<h1>Attack and Power Buttons apply END Costs</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_showPowerDescriptions">
|
|
<span class="checkmark" title="@{showPowerDescriptions}"></span>
|
|
</label>
|
|
<h1>Show Power Descriptions in Chat</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_showTallyBar">
|
|
<span class="checkmark" title="@{showTallyBar}"></span>
|
|
</label>
|
|
<h1>Show Tally Bar</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-checkbox">
|
|
<input type="checkbox" checked="checked" name="attr_useTallyNet">
|
|
<span class="checkmark" title="@{useTallyNet}"></span>
|
|
</label>
|
|
<h1>Tally Net CP instead of Spent CP</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<input type="text" value="❖" maxlength= 1 name="attr_dingbat" title="@{dingbat}"/>
|
|
<h1>Name-Title Separator</h1>
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<div class="custom-select-option">
|
|
<select name="attr_whisperToGM">
|
|
<option value="" selected>Never</option>
|
|
<option value="/w GM ">Always</option>
|
|
<option value="?{Whisper to GM|No,|Yes,/w GM }">Prompt</option>
|
|
</select>
|
|
</div>
|
|
<h1>Whisper Rolls to GM</h1>
|
|
</div>
|
|
|
|
<div class="item-thematic-break-alt">
|
|
</div>
|
|
|
|
<div class="item-options-row">
|
|
<label class="container-xbox">
|
|
<input type="checkbox" name="attr_activateDeleteChecks">
|
|
<span class="checkmark" title="@{activateDeleteChecks}"></span>
|
|
</label>
|
|
<h1>Activate Item Delete Mode. Deactivate to complete Deletion. </h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="item-version-row">
|
|
<div class="item-version-label">
|
|
<h2>Version:</h2>
|
|
</div>
|
|
|
|
<div class="item-version-information">
|
|
<!-- Update version before release. -->
|
|
<input type="text" value="4.51" name="attr_version" title="@{version}" readonly tabindex="-1"/>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Hidden button used for chat damage. -->
|
|
<button type="action" class="button hiddenButton" tabindex="-1" name="act_hiddenDamageRoll" title="%{hiddenDamageRoll}">Roll</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Tally bar that appears below all tabs to keep track of point totals -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<div class = "sheet-tallybar">
|
|
<div class="sheet-flex-tallybar">
|
|
|
|
<input class="tally-method" type="hidden" name="attr_tallyMethod" value="net"/>
|
|
|
|
<span>Char:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_characteristicsCost title="@{characteristicsCost}" readonly="true" tabindex="-1"/></span>
|
|
<span>Skills:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_skillsCost title="@{skillsCost}" readonly="true" tabindex="-1"/></span>
|
|
<span>Powers:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_powersPerksTalentsCost title="@{powersPerksTalentsCost}" readonly="true" tabindex="-1"/></span>
|
|
<div class="tally-spent">
|
|
<span>Spent:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_spentCharacterCost title="@{spentCharacterCost}" readonly="true" tabindex="-1"/></span>
|
|
</div>
|
|
<span>Complications:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_complicationsBenefit title="@{complicationsBenefit}" readonly="true" tabindex="-1"/></span>
|
|
<span>Bonus:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_bonusBenefit title="@{bonusBenefit}" tabindex="-1"/></span>
|
|
<span>EXP:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_experienceBenefit title="@{experienceBenefit}" tabindex="-1"/></span>
|
|
<div class="tally-net">
|
|
<span>Total:</span>
|
|
<span><input class="tally" type="number" value="0" min="0" name=attr_totalCharacterCost title="@{totalCharacterCost}" readonly="true" tabindex="-1"/></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Hidden sheet identifier -->
|
|
<input type="hidden" name="attr_sheet_name" value="HeroSystem6eHeroic"/>
|
|
|
|
<!-- Hidden maneuver selection history -->
|
|
<input type="hidden" name="attr_useManeuvers" value="true"/>
|
|
<input type="hidden" name="attr_weaponStates" value="KKKKKNOOOOOO"/>
|
|
|
|
<!-- Hidden variables for combat rolls -->
|
|
<input type="hidden" name="attr_rangeToTarget" value="0"/>
|
|
<input type="hidden" name="attr_targetSelection" value="1"/>
|
|
<input type="hidden" name="attr_targetOCVpenalty" value="0"/>
|
|
<input type="hidden" name="attr_rangeOCVpenalty" value="0"/>
|
|
<input type="hidden" name="attr_targetHitRoll" value="3d6cs0cf0"/>
|
|
|
|
<!-- Hidden variables to protect characteristics during option changes -->
|
|
<input type="hidden" name="attr_hiddenSTUN" value="20"/>
|
|
<input type="hidden" name="CurrentBODY_max" value="10"/>
|
|
<input type="hidden" name="CurrentSTUN_max" value="20"/>
|
|
<input type="hidden" name="CurrentEND_max" value="20"/>
|
|
<input type="hidden" name="CurrentPrimary_max" value="0"/>
|
|
<input type="hidden" name="CurrentAuxiliary_max" value="0"/>
|
|
|
|
<!-- Endurance Source -->
|
|
<input type="hidden" name="attr_activeReserve" value="0"/>
|
|
|
|
<!-- Hidden secondary attribute for Hero Roller support -->
|
|
<input type="hidden" name="attr_GetSTRDice" value="2"/>
|
|
|
|
<!-- Some hidden variables to help simplify skill point calculations -->
|
|
<input type="hidden" name="attr_hiddenSet1SkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenSet2SkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenSet3SkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenSet4SkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenSet5SkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenCombatSkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenLanguageSkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenEnhancerSkillsCost" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialSkillsCost" value="0"/>
|
|
|
|
<!-- Carrying capacity -->
|
|
<input type="hidden" name="attr_liftWeight" value="100"/>
|
|
<input type="hidden" name="attr_freeCarry" value="10"/>
|
|
<input type="hidden" name="attr_carriedWeight" value="0"/>
|
|
|
|
<!-- Hidden variables for clean weapon damage strings -->
|
|
<input type="hidden" name="attr_hiddenWeaponDamage01" value="0"/>
|
|
<input type="hidden" name="attr_hiddenWeaponDamage02" value="0"/>
|
|
<input type="hidden" name="attr_hiddenWeaponDamage03" value="0"/>
|
|
<input type="hidden" name="attr_hiddenWeaponDamage04" value="0"/>
|
|
<input type="hidden" name="attr_hiddenWeaponDamage05" value="0"/>
|
|
<input type="hidden" name="attr_hiddenWeaponDamage06" value="0"/>
|
|
|
|
<input type="hidden" name="attr_hiddenWeaponSign01" value="1"/>
|
|
<input type="hidden" name="attr_hiddenWeaponSign02" value="1"/>
|
|
<input type="hidden" name="attr_hiddenWeaponSign03" value="1"/>
|
|
<input type="hidden" name="attr_hiddenWeaponSign04" value="1"/>
|
|
<input type="hidden" name="attr_hiddenWeaponSign05" value="1"/>
|
|
<input type="hidden" name="attr_hiddenWeaponSign06" value="1"/>
|
|
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage01" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage02" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage03" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage04" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage05" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage06" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage07" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage08" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage09" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMartialManeuverDamage10" value="0"/>
|
|
|
|
<!-- Hidden variables for attack and damage templates -->
|
|
<input type="hidden" name="attr_hiddenBasicDamage" value="2d6"/>
|
|
<input type="hidden" name="attr_hiddenBasicEndurance" value="2"/>
|
|
<input type="hidden" name="attr_hiddenDamage" value="4d6"/>
|
|
<input type="hidden" name="attr_hiddenIsNormal" value="true"/>
|
|
<input type="hidden" name="attr_hiddenIsContest" value="false"/>
|
|
<input type="hidden" name="attr_hiddenIsPower" value="false"/>
|
|
<input type="hidden" name="attr_hiddenIsMental" value="false"/>
|
|
<input type="hidden" name="attr_hiddenIsAoE" value="false"/>
|
|
<input type="hidden" name="attr_hiddenStunMod" value="0"/>
|
|
<input type="hidden" name="attr_hiddenMessage" value="Test"/>
|
|
|
|
<!-- Hidden variables for clean power dice strings -->
|
|
<input type="hidden" name="attr_hiddenPowerDice01" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice02" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice03" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice04" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice05" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice06" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice07" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice08" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice09" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice10" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice11" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice12" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice13" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice14" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice15" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice16" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice17" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice18" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice19" value="0"/>
|
|
<input type="hidden" name="attr_hiddenPowerDice20" value="0"/>
|
|
|
|
<!-- Hidden variable for token display -->
|
|
<input type="hidden" name="attr_currentDCV" value="0"/>
|
|
|
|
<!-- Set B armor variables -->
|
|
<input type="hidden" name="attr_armorName11" value=""/>
|
|
<input type="hidden" name="attr_armorPD11" value="0"/>
|
|
<input type="hidden" name="attr_armorED11" value="0"/>
|
|
<input type="hidden" name="attr_totalPD11" value="0"/>
|
|
<input type="hidden" name="attr_totalED11" value="0"/>
|
|
<input type="hidden" name="attr_armorEND11" value="0"/>
|
|
<input type="hidden" name="attr_armorActivation11" value="18"/>
|
|
<input type="hidden" name="attr_armorLocations11" value=""/>
|
|
<input type="hidden" name="attr_armorCarried11" value=""/>
|
|
<input type="hidden" name="attr_armorMass11" value="0"/>
|
|
|
|
<input type="hidden" name="attr_armorName12" value=""/>
|
|
<input type="hidden" name="attr_armorPD12" value="0"/>
|
|
<input type="hidden" name="attr_armorED12" value="0"/>
|
|
<input type="hidden" name="attr_totalPD12" value="0"/>
|
|
<input type="hidden" name="attr_totalED12" value="0"/>
|
|
<input type="hidden" name="attr_armorEND12" value="0"/>
|
|
<input type="hidden" name="attr_armorActivation12" value="18"/>
|
|
<input type="hidden" name="attr_armorLocations12" value=""/>
|
|
<input type="hidden" name="attr_armorCarried12" value=""/>
|
|
<input type="hidden" name="attr_armorMass12" value="0"/>
|
|
|
|
<input type="hidden" name="attr_armorName13" value=""/>
|
|
<input type="hidden" name="attr_armorPD13" value="0"/>
|
|
<input type="hidden" name="attr_armorED13" value="0"/>
|
|
<input type="hidden" name="attr_totalPD13" value="0"/>
|
|
<input type="hidden" name="attr_totalED13" value="0"/>
|
|
<input type="hidden" name="attr_armorEND13" value="0"/>
|
|
<input type="hidden" name="attr_armorActivation13" value="18"/>
|
|
<input type="hidden" name="attr_armorLocations13" value=""/>
|
|
<input type="hidden" name="attr_armorCarried13" value=""/>
|
|
<input type="hidden" name="attr_armorMass13" value="0"/>
|
|
|
|
<input type="hidden" name="attr_armorName14" value=""/>
|
|
<input type="hidden" name="attr_armorPD14" value="0"/>
|
|
<input type="hidden" name="attr_armorED14" value="0"/>
|
|
<input type="hidden" name="attr_totalPD14" value="0"/>
|
|
<input type="hidden" name="attr_totalED14" value="0"/>
|
|
<input type="hidden" name="attr_armorEND14" value="0"/>
|
|
<input type="hidden" name="attr_armorActivation14" value="18"/>
|
|
<input type="hidden" name="attr_armorLocations14" value=""/>
|
|
<input type="hidden" name="attr_armorCarried14" value=""/>
|
|
<input type="hidden" name="attr_armorMass14" value="0"/>
|
|
|
|
<!-- Set B weapon variables -->
|
|
<input type="hidden" name="attr_weaponName11" value=""/>
|
|
<input type="hidden" name="attr_weaponDamage11" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDamage11" value=""/>
|
|
<input type="hidden" name="attr_weaponDC11" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDC11" value=""/>
|
|
<input type="hidden" name="attr_weaponDamageType11" value=""/>
|
|
<input type="hidden" name="attr_weaponCSL11" value="0"/>
|
|
<input type="hidden" name="attr_weaponOCV11" value="0"/>
|
|
<input type="hidden" name="attr_weaponPenalty11" value="0"/>
|
|
<input type="hidden" name="attr_weaponAdvantage11" value="0"/>
|
|
<input type="hidden" name="attr_weaponRangeMod11" value="0"/>
|
|
<input type="hidden" name="attr_weaponStunMod11" value="0"/>
|
|
<input type="hidden" name="attr_weaponShots11" value="0"/>
|
|
<input type="hidden" name="attr_weaponStrength11" value=""/>
|
|
<input type="hidden" name="attr_weaponStrengthMin11" value=""/>
|
|
<input type="hidden" name="attr_weaponEnhancedByStr11" value=""/>
|
|
<input type="hidden" name="attr_weaponEndurance11" value=""/>
|
|
<input type="hidden" name="attr_weaponEndMod11" value=""/>
|
|
<input type="hidden" name="attr_weaponRange11" value="0"/>
|
|
<input type="hidden" name="attr_weaponAreaEffect11" value="0"/>
|
|
<input type="hidden" name="attr_weaponCarried11" value=""/>
|
|
<input type="hidden" name="attr_weaponMass11" value="0"/>
|
|
<input type="hidden" name="attr_rangeBasedOnStr11" value=""/>
|
|
|
|
<input type="hidden" name="attr_weaponName12" value=""/>
|
|
<input type="hidden" name="attr_weaponDamage12" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDamage12" value=""/>
|
|
<input type="hidden" name="attr_weaponDC12" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDC12" value=""/>
|
|
<input type="hidden" name="attr_weaponDamageType12" value=""/>
|
|
<input type="hidden" name="attr_weaponCSL12" value="0"/>
|
|
<input type="hidden" name="attr_weaponOCV12" value="0"/>
|
|
<input type="hidden" name="attr_weaponPenalty12" value="0"/>
|
|
<input type="hidden" name="attr_weaponAdvantage12" value="0"/>
|
|
<input type="hidden" name="attr_weaponRangeMod12" value="0"/>
|
|
<input type="hidden" name="attr_weaponStunMod12" value="0"/>
|
|
<input type="hidden" name="attr_weaponShots12" value="0"/>
|
|
<input type="hidden" name="attr_weaponStrength12" value=""/>
|
|
<input type="hidden" name="attr_weaponStrengthMin12" value=""/>
|
|
<input type="hidden" name="attr_weaponEnhancedByStr12" value=""/>
|
|
<input type="hidden" name="attr_weaponEndurance12" value=""/>
|
|
<input type="hidden" name="attr_weaponEndMod12" value=""/>
|
|
<input type="hidden" name="attr_weaponRange12" value="0"/>
|
|
<input type="hidden" name="attr_weaponAreaEffect12" value="0"/>
|
|
<input type="hidden" name="attr_weaponCarried12" value=""/>
|
|
<input type="hidden" name="attr_weaponMass12" value="0"/>
|
|
<input type="hidden" name="attr_rangeBasedOnStr12" value=""/>
|
|
|
|
<input type="hidden" name="attr_weaponName13" value=""/>
|
|
<input type="hidden" name="attr_weaponDamage13" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDamage13" value=""/>
|
|
<input type="hidden" name="attr_weaponDC13" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDC13" value=""/>
|
|
<input type="hidden" name="attr_weaponDamageType13" value=""/>
|
|
<input type="hidden" name="attr_weaponCSL13" value="0"/>
|
|
<input type="hidden" name="attr_weaponOCV13" value="0"/>
|
|
<input type="hidden" name="attr_weaponPenalty13" value="0"/>
|
|
<input type="hidden" name="attr_weaponAdvantage13" value="0"/>
|
|
<input type="hidden" name="attr_weaponRangeMod13" value="0"/>
|
|
<input type="hidden" name="attr_weaponStunMod13" value="0"/>
|
|
<input type="hidden" name="attr_weaponShots13" value="0"/>
|
|
<input type="hidden" name="attr_weaponStrength13" value=""/>
|
|
<input type="hidden" name="attr_weaponStrengthMin13" value=""/>
|
|
<input type="hidden" name="attr_weaponEnhancedByStr13" value=""/>
|
|
<input type="hidden" name="attr_weaponEndurance13" value=""/>
|
|
<input type="hidden" name="attr_weaponEndMod13" value=""/>
|
|
<input type="hidden" name="attr_weaponRange13" value="0"/>
|
|
<input type="hidden" name="attr_weaponAreaEffect13" value="0"/>
|
|
<input type="hidden" name="attr_weaponCarried13" value=""/>
|
|
<input type="hidden" name="attr_weaponMass13" value="0"/>
|
|
<input type="hidden" name="attr_rangeBasedOnStr13" value=""/>
|
|
|
|
<input type="hidden" name="attr_weaponName14" value=""/>
|
|
<input type="hidden" name="attr_weaponDamage14" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDamage14" value=""/>
|
|
<input type="hidden" name="attr_weaponDC14" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDC14" value=""/>
|
|
<input type="hidden" name="attr_weaponDamageType14" value=""/>
|
|
<input type="hidden" name="attr_weaponCSL14" value="0"/>
|
|
<input type="hidden" name="attr_weaponOCV14" value="0"/>
|
|
<input type="hidden" name="attr_weaponPenalty14" value="0"/>
|
|
<input type="hidden" name="attr_weaponAdvantage14" value="0"/>
|
|
<input type="hidden" name="attr_weaponRangeMod14" value="0"/>
|
|
<input type="hidden" name="attr_weaponStunMod14" value="0"/>
|
|
<input type="hidden" name="attr_weaponShots14" value="0"/>
|
|
<input type="hidden" name="attr_weaponStrength14" value=""/>
|
|
<input type="hidden" name="attr_weaponStrengthMin14" value=""/>
|
|
<input type="hidden" name="attr_weaponEnhancedByStr14" value=""/>
|
|
<input type="hidden" name="attr_weaponEndurance14" value=""/>
|
|
<input type="hidden" name="attr_weaponEndMod14" value=""/>
|
|
<input type="hidden" name="attr_weaponRange14" value="0"/>
|
|
<input type="hidden" name="attr_weaponAreaEffect14" value="0"/>
|
|
<input type="hidden" name="attr_weaponCarried14" value=""/>
|
|
<input type="hidden" name="attr_weaponMass14" value="0"/>
|
|
<input type="hidden" name="attr_rangeBasedOnStr14" value=""/>
|
|
|
|
<input type="hidden" name="attr_weaponName15" value=""/>
|
|
<input type="hidden" name="attr_weaponDamage15" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDamage15" value=""/>
|
|
<input type="hidden" name="attr_weaponDC15" value=""/>
|
|
<input type="hidden" name="attr_weaponAdjustedDC15" value=""/>
|
|
<input type="hidden" name="attr_weaponDamageType15" value=""/>
|
|
<input type="hidden" name="attr_weaponCSL15" value="0"/>
|
|
<input type="hidden" name="attr_weaponOCV15" value="0"/>
|
|
<input type="hidden" name="attr_weaponPenalty15" value="0"/>
|
|
<input type="hidden" name="attr_weaponAdvantage15" value="0"/>
|
|
<input type="hidden" name="attr_weaponRangeMod15" value="0"/>
|
|
<input type="hidden" name="attr_weaponStunMod15" value="0"/>
|
|
<input type="hidden" name="attr_weaponShots15" value="0"/>
|
|
<input type="hidden" name="attr_weaponStrength15" value=""/>
|
|
<input type="hidden" name="attr_weaponStrengthMin15" value=""/>
|
|
<input type="hidden" name="attr_weaponEnhancedByStr15" value=""/>
|
|
<input type="hidden" name="attr_weaponEndurance15" value=""/>
|
|
<input type="hidden" name="attr_weaponEndMod15" value=""/>
|
|
<input type="hidden" name="attr_weaponRange15" value="0"/>
|
|
<input type="hidden" name="attr_weaponAreaEffect15" value="0"/>
|
|
<input type="hidden" name="attr_weaponCarried15" value=""/>
|
|
<input type="hidden" name="attr_weaponMass15" value="0"/>
|
|
<input type="hidden" name="attr_rangeBasedOnStr15" value=""/>
|
|
|
|
<!-- Set B Equipment variables -->
|
|
<input type="hidden" name="attr_equipCarried17" value=""/>
|
|
<input type="hidden" name="attr_equipText17" value=""/>
|
|
<input type="hidden" name="attr_equipMass17" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried18" value=""/>
|
|
<input type="hidden" name="attr_equipText18" value=""/>
|
|
<input type="hidden" name="attr_equipMass18" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried19" value=""/>
|
|
<input type="hidden" name="attr_equipText19" value=""/>
|
|
<input type="hidden" name="attr_equipMass19" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried20" value=""/>
|
|
<input type="hidden" name="attr_equipText20" value=""/>
|
|
<input type="hidden" name="attr_equipMass20" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried21" value=""/>
|
|
<input type="hidden" name="attr_equipText21" value=""/>
|
|
<input type="hidden" name="attr_equipMass21" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried22" value=""/>
|
|
<input type="hidden" name="attr_equipText22" value=""/>
|
|
<input type="hidden" name="attr_equipMass22" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried23" value=""/>
|
|
<input type="hidden" name="attr_equipText23" value=""/>
|
|
<input type="hidden" name="attr_equipMass23" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried24" value=""/>
|
|
<input type="hidden" name="attr_equipText24" value=""/>
|
|
<input type="hidden" name="attr_equipMass24" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried25" value=""/>
|
|
<input type="hidden" name="attr_equipText25" value=""/>
|
|
<input type="hidden" name="attr_equipMass25" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried26" value=""/>
|
|
<input type="hidden" name="attr_equipText26" value=""/>
|
|
<input type="hidden" name="attr_equipMass26" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried27" value=""/>
|
|
<input type="hidden" name="attr_equipText27" value=""/>
|
|
<input type="hidden" name="attr_equipMass27" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried28" value=""/>
|
|
<input type="hidden" name="attr_equipText28" value=""/>
|
|
<input type="hidden" name="attr_equipMass28" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried29" value=""/>
|
|
<input type="hidden" name="attr_equipText29" value=""/>
|
|
<input type="hidden" name="attr_equipMass29" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried30" value=""/>
|
|
<input type="hidden" name="attr_equipText30" value=""/>
|
|
<input type="hidden" name="attr_equipMass30" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried31" value=""/>
|
|
<input type="hidden" name="attr_equipText31" value=""/>
|
|
<input type="hidden" name="attr_equipMass31" value=""/>
|
|
|
|
<input type="hidden" name="attr_equipCarried32" value=""/>
|
|
<input type="hidden" name="attr_equipText32" value=""/>
|
|
<input type="hidden" name="attr_equipMass32" value=""/>
|
|
|
|
|
|
<!-- Jackob's Roll Template -->
|
|
<!-- Basic checks -->
|
|
<rolltemplate class="sheet-rolltemplate-custom">
|
|
<div class="template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle desc color}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
<rolltemplate class="sheet-rolltemplate-custom-success-roll">
|
|
<div class="template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#SUCCESS}}
|
|
{{#^rollLess() computed::SUCCESS 0}}
|
|
<div class="sheet-key">Degree of Success</div>
|
|
<div class="sheet-value">{{SUCCESS}}</div>
|
|
{{/^rollLess() computed::SUCCESS 0}}
|
|
{{#rollLess() computed::SUCCESS 0}}
|
|
<div class="sheet-key">Degree of Failure</div>
|
|
<div class="sheet-value">{{SUCCESS}}</div>
|
|
{{/rollLess() computed::SUCCESS 0}}
|
|
{{/SUCCESS}}
|
|
{{#allprops() title subtitle desc color SUCCESS}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color SUCCESS}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for defensive actions (blocks)-->
|
|
<rolltemplate class="sheet-rolltemplate-custom-defense">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
{{#label}}<div class="sheet-label">{{label}}</div>{{/label}}
|
|
{{#data}}<div class="sheet-data">{{data}}</div>{{/data}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle label data desc color}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle label data desc color}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for armor activation-->
|
|
<rolltemplate class="sheet-rolltemplate-custom-activate">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
{{#PHASE12}}
|
|
{{#rollTotal() PHASE12 0}}
|
|
<div class="sheet-subtitle">Recovery: Full Phase Action</div>
|
|
{{/rollTotal() PHASE12 0}}
|
|
{{#^rollTotal() PHASE12 0}}
|
|
<div class="sheet-subtitle">Recovery: Post Segment 12</div>
|
|
{{/^rollTotal() PHASE12 0}}
|
|
{{/PHASE12}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#SUCCESS}}
|
|
{{#^rollLess() computed::SUCCESS 0}}
|
|
<div class="sheet-key">Activate Armor</div>
|
|
<div class="sheet-value">{{SUCCESS}}</div>
|
|
{{/^rollLess() computed::SUCCESS 0}}
|
|
{{#rollLess() computed::SUCCESS 0}}
|
|
<div class="sheet-key">Failed to Activate</div>
|
|
<div class="sheet-value">{{SUCCESS}}</div>
|
|
{{/rollLess() computed::SUCCESS 0}}
|
|
{{/SUCCESS}}
|
|
{{#rollTotal() PHASE12 0}}
|
|
<div class="sheet-key">Phase</div>
|
|
<div class="sheet-value">Full</div>
|
|
<div class="sheet-key">DCV</div>
|
|
<div class="sheet-value">1/2</div>
|
|
{{/rollTotal() PHASE12 0}}
|
|
{{#allprops() title subtitle desc color SUCCESS PHASE12}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color SUCCESS PHASE12}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for Powers -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-power-attack">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
{{#label}}<div class="sheet-label">{{label}}</div>{{/label}}
|
|
{{#data}}<div class="sheet-data">{{data}}</div>{{/data}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#SUCCESS}}
|
|
{{#^rollLess() computed::SUCCESS 0}}
|
|
<div class="sheet-key">Activation</div>
|
|
<div class="sheet-value">{{SUCCESS}}</div>
|
|
{{/^rollLess() computed::SUCCESS 0}}
|
|
{{#rollLess() computed::SUCCESS 0}}
|
|
<div class="sheet-key">Failed to Activate</div>
|
|
<div class="sheet-value">{{SUCCESS}}</div>
|
|
{{/rollLess() computed::SUCCESS 0}}
|
|
{{/SUCCESS}}
|
|
{{#allprops() title subtitle label data desc color SUCCESS}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle label data desc color SUCCESS}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template used for showing talents, perks, and complications -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-show">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle desc color}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for normal damage attacks -->
|
|
<!-- Includes row for computed BODY damage using July, 2021 Roll Parsing feature -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-normal-attack">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
{{#label}}<div class="sheet-label">{{label}}</div>{{/label}}
|
|
{{#data}}<div class="sheet-data">{{data}}</div>{{/data}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle label data desc color}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle label data desc color}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for killing damage attacks -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-attack">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
{{#label}}<div class="sheet-label">{{label}}</div>{{/label}}
|
|
{{#data}}<div class="sheet-data">{{data}}</div>{{/data}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle label data desc color}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle label data desc color}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template used for showing talents, perks, and complications -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-contest">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
{{#label}}<div class="sheet-label">{{label}}</div>{{/label}}
|
|
{{#data}}<div class="sheet-data">{{data}}</div>{{/data}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle label data desc color}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle label data desc color}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for damage evaluation -->
|
|
<!-- Includes row for computed BODY damage using July, 2021 Roll Parsing feature -->
|
|
|
|
<!-- Jackob's Roll Template for killing damage -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-damage">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle desc color HITLOC STUN BODY}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color HITLOC STUN BODY}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
|
|
<!-- Stun, Body, and Hit Location go at the end -->
|
|
{{#STUN}}
|
|
<div class="sheet-key">STUN</div>
|
|
<div class="sheet-value">{{computed::STUN}}</div>
|
|
{{/STUN}}
|
|
{{#BODY}}
|
|
<div class="sheet-key">BODY</div>
|
|
<div class="sheet-value">{{computed::BODY}}</div>
|
|
{{/BODY}}
|
|
{{#HITLOC}}
|
|
<div class="sheet-key">Hit Location</div>
|
|
<div class="sheet-value">{{computed::HITLOC}}</div>
|
|
{{/HITLOC}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for normal damage -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-normal-damage">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle desc color HITLOC STUN BODY}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color HITLOC STUN BODY}}
|
|
{{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}}
|
|
|
|
<!-- Stun, Body, and Hit Location go at the end -->
|
|
{{#STUN}}
|
|
<div class="sheet-key">STUN</div>
|
|
<div class="sheet-value">{{computed::STUN}}</div>
|
|
{{/STUN}}
|
|
{{#BODY}}
|
|
<div class="sheet-key">BODY</div>
|
|
<div class="sheet-value">{{computed::BODY}}</div>
|
|
{{/BODY}}
|
|
{{#HITLOC}}
|
|
<div class="sheet-key">Hit Location</div>
|
|
<div class="sheet-value">{{computed::HITLOC}}</div>
|
|
{{/HITLOC}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for power "damage" -->
|
|
<!-- This will likely be modified in future updates. -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-power-damage">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle desc color ATTR PIPS}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color ATTR PIPS}}
|
|
<!-- {{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}} -->
|
|
|
|
<!-- Stun, Body, and Hit Location go at the end -->
|
|
{{#ATTR}}
|
|
<div class="sheet-key">Total</div>
|
|
<div class="sheet-value">{{computed::ATTR}}</div>
|
|
{{/ATTR}}
|
|
{{#PIPS}}
|
|
<div class="sheet-key">Pips</div>
|
|
<div class="sheet-value">{{computed::PIPS}}</div>
|
|
{{/PIPS}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- Jackob's Roll Template for attribute "damage" -->
|
|
<rolltemplate class="sheet-rolltemplate-custom-contest-damage">
|
|
<div class="sheet-template-wrapper">
|
|
<div class="sheet-container sheet-color-{{color}}">
|
|
<div class="sheet-header">
|
|
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
|
|
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
|
|
</div>
|
|
<div class="sheet-content">
|
|
{{#allprops() title subtitle desc color ATTR PIPS}}
|
|
<div class="sheet-key">{{key}}</div>
|
|
<div class="sheet-value">{{value}}</div>
|
|
{{/allprops() title subtitle desc color ATTR PIPS}}
|
|
<!-- {{#desc}}<div class="sheet-desc">{{desc}}</div>{{/desc}} -->
|
|
|
|
<!-- Stun, Body, and Hit Location go at the end -->
|
|
{{#ATTR}}
|
|
<div class="sheet-key">Result</div>
|
|
<div class="sheet-value">{{computed::ATTR}}</div>
|
|
{{/ATTR}}
|
|
{{#PIPS}}
|
|
<div class="sheet-key">Pips</div>
|
|
<div class="sheet-value">{{computed::PIPS}}</div>
|
|
{{/PIPS}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</rolltemplate>
|
|
|
|
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
<!-- Sheet workers -->
|
|
<!-- --------------------------------------------------------------------------------- -->
|
|
|
|
<script type="text/worker">
|
|
|
|
//Async functions
|
|
const setActiveCharacterId = function(charId){
|
|
var oldAcid=getActiveCharacterId();
|
|
var ev = new CustomEvent("message");
|
|
ev.data={"id":"0", "type":"setActiveCharacter", "data":charId};
|
|
self.dispatchEvent(ev);
|
|
return oldAcid;
|
|
};
|
|
|
|
const _getAttrs = function (props){
|
|
var acid=getActiveCharacterId(); //save the current activeCharacterID in case it has changed when the promise runs
|
|
var prevAcid=null; //local variable defined here, because it needs to be shared across the promise callbacks defined below
|
|
return new Promise((resolve,reject)=>{
|
|
prevAcid=setActiveCharacterId(acid); //in case the activeCharacterId has changed, restore it to what we were expecting and save the current value to restore later
|
|
try{
|
|
getAttrs(props,(values)=>{ resolve(values); });
|
|
}
|
|
catch{ reject(); }
|
|
}).finally(()=>{
|
|
setActiveCharacterId(prevAcid); //restore activeCharcterId to what it was when the promise first ran
|
|
});
|
|
};
|
|
|
|
// Get the URL to the pseudo attribute attr_character_avatar for use in the Portrait Section.
|
|
on("sheet:opened", async function() {
|
|
let attributes = {sheetTab:"characteristics"};
|
|
|
|
// Fetch just what is needed to determine the version
|
|
let values = await _getAttrs(["version", "totalCharacterCost", "validateMay23", "character_name", "character_avatar"]);
|
|
let name = values.character_name;
|
|
let origVersion = parseFloat(values.version)||1.0;
|
|
let statValue = 0;
|
|
|
|
attributes.theSheetAvatar = values.character_avatar;
|
|
|
|
// Version Checks
|
|
// Check for unversioned sheets
|
|
if (values.validateMay23 == undefined) {
|
|
// if no points spent, then it's a new sheet
|
|
if (parseInt(values.totalCharacterCost)||0 != 0)
|
|
origVersion = 1.0;
|
|
|
|
attributes.validateMay23 = 1;
|
|
}
|
|
let version = origVersion;
|
|
|
|
if (version < 1.1) {
|
|
values = await _getAttrs(["intelligenceChance", "enhancedPerceptionModifier", "body", "stun", "endurance", "strength", "optionSuperHeroicEndurance"]);
|
|
var hiddenBasicEndurance = (parseInt(values.strength)||0) / (values.optionSuperHeroicEndurance != 0 ? 10 : 5);
|
|
|
|
attributes.perceptionEnhanced = parseInt(values.intelligenceChance)||11 + parseInt(values.enhancedPerceptionModifier)||0;
|
|
attributes.CurrentBODY_max = parseInt(values.body)||0;
|
|
attributes.CurrentSTUN_max = parseInt(values.stun)||0;
|
|
attributes.CurrentEND_max = parseInt(values.endurance)||0;
|
|
attributes.hiddenBasicEndurance = Math.max(1, heroRoundLow(hiddenBasicEndurance));
|
|
version = 1.1;
|
|
}
|
|
|
|
if (version < 2.1) {
|
|
values = await _getAttrs(["whisperToGM"]);
|
|
if (values.whisperToGM||0 == "on")
|
|
attributes.whisperToGM = "/w GM ";
|
|
else
|
|
attributes.whisperToGM = "";
|
|
version = 2.1;
|
|
}
|
|
|
|
if (version < 2.3) {
|
|
values = await _getAttrs(["martialManeuverOCV01", "martialManeuverOCV02", "martialManeuverOCV03", "martialManeuverOCV04", "martialManeuverOCV05", "martialManeuverOCV06", "martialManeuverOCV07", "martialManeuverOCV08", "martialManeuverOCV09", "martialManeuverDCV01", "martialManeuverDCV02", "martialManeuverDCV03", "martialManeuverDCV04", "martialManeuverDCV05", "martialManeuverDCV06", "martialManeuverDCV07", "martialManeuverDCV08", "martialManeuverDCV09", "strength", "intelligence", "useCharacteristicMaximums", "enhancedPerceptionModifier", "perceptionModifierVision", "perceptionModifierHearing", "perceptionModifierSmell"]);
|
|
|
|
// Ensure hiddenBasicDamage is available.
|
|
statValue = parseInt(values.strength)||0;
|
|
let theNumberOfD6 = (parseInt((statValue - (statValue%5))/5)||0).toString();
|
|
|
|
let theNumberOfD3 = 0;
|
|
if (statValue%5 > 2) {
|
|
theNumberOfD3 = 1;
|
|
}
|
|
|
|
var hiddenDamage = theNumberOfD6.concat("d6+",theNumberOfD3.toString(),"d3");
|
|
|
|
attributes.hiddenBasicDamage = hiddenDamage;
|
|
|
|
// Update martial maneuver text CVs to integers.
|
|
attributes.martialManeuverOCV01 = parseInt(values.martialManeuverOCV01)||0;
|
|
attributes.martialManeuverDCV01 = parseInt(values.martialManeuverDCV01)||0;
|
|
|
|
attributes.martialManeuverOCV02 = parseInt(values.martialManeuverOCV02)||0;
|
|
attributes.martialManeuverDCV02 = parseInt(values.martialManeuverDCV02)||0;
|
|
|
|
attributes.martialManeuverOCV03 = parseInt(values.martialManeuverOCV03)||0;
|
|
attributes.martialManeuverDCV03 = parseInt(values.martialManeuverDCV03)||0;
|
|
|
|
attributes.martialManeuverOCV04 = parseInt(values.martialManeuverOCV04)||0;
|
|
attributes.martialManeuverDCV04 = parseInt(values.martialManeuverDCV04)||0;
|
|
|
|
attributes.martialManeuverOCV05 = parseInt(values.martialManeuverOCV05)||0;
|
|
attributes.martialManeuverDCV05 = parseInt(values.martialManeuverDCV05)||0;
|
|
|
|
attributes.martialManeuverOCV06 = parseInt(values.martialManeuverOCV06)||0;
|
|
attributes.martialManeuverDCV06 = parseInt(values.martialManeuverDCV06)||0;
|
|
|
|
attributes.martialManeuverOCV07 = parseInt(values.martialManeuverOCV07)||0;
|
|
attributes.martialManeuverDCV07 = parseInt(values.martialManeuverDCV07)||0;
|
|
|
|
attributes.martialManeuverOCV08 = parseInt(values.martialManeuverOCV08)||0;
|
|
attributes.martialManeuverDCV08 = parseInt(values.martialManeuverDCV08)||0;
|
|
|
|
attributes.martialManeuverOCV09 = parseInt(values.martialManeuverOCV09)||0;
|
|
attributes.martialManeuverDCV09 = parseInt(values.martialManeuverDCV09)||0;
|
|
attributes.martialManeuverDamage09 = hiddenDamage;
|
|
|
|
// Update perception roll chances.
|
|
statValue = parseInt(values.intelligence)||10;
|
|
enhancedPerceptionMod = parseInt(values.enhancedPerceptionModifier)||0;
|
|
perceptionModVision = parseInt(values.perceptionModifierVision)||0;
|
|
perceptionModHearing = parseInt(values.perceptionModifierHearing)||0;
|
|
perceptionModSmell = parseInt(values.perceptionModifierSmell)||0;
|
|
|
|
attributes.perceptionVision = calculateRoll(statValue) + enhancedPerceptionMod + perceptionModVision;
|
|
attributes.perceptionHearing = calculateRoll(statValue) + enhancedPerceptionMod + perceptionModHearing;
|
|
attributes.perceptionSmell = calculateRoll(statValue) + enhancedPerceptionMod + perceptionModSmell;
|
|
|
|
// Add sheet_name identifier.
|
|
attributes.sheet_name = "HeroSystem6eHeroic";
|
|
|
|
version = 2.3;
|
|
}
|
|
|
|
if (version < 2.41) {
|
|
values = await _getAttrs(["intelligence"]);
|
|
|
|
// Update to new addition: perceptionBase.
|
|
statValue = parseInt(values.intelligence)||10;
|
|
|
|
attributes.perceptionBase = calculateRoll(statValue);
|
|
|
|
version = 2.42;
|
|
}
|
|
|
|
if (version < 2.51) {
|
|
values = await _getAttrs(["weaponStrength01", "weaponStrength02", "weaponStrength03", "weaponStrength04", "weaponStrength05", "shieldName", "shieldDamage", "shieldNormalDamage", "shieldStrength", "shieldOCV"]);
|
|
|
|
// Updates to shield and weapon stats.
|
|
|
|
attributes.weaponStrengthMin01 = parseInt(values.weaponStrength01)||0;
|
|
attributes.weaponStrengthMin02 = parseInt(values.weaponStrength02)||0;
|
|
attributes.weaponStrengthMin03 = parseInt(values.weaponStrength03)||0;
|
|
attributes.weaponStrengthMin04 = parseInt(values.weaponStrength04)||0;
|
|
attributes.weaponStrengthMin05 = parseInt(values.weaponStrength05)||0;
|
|
attributes.weaponStrengthMin06 = parseInt(values.shieldStrength)||0;
|
|
|
|
(values.shieldName) ? (attributes.weaponName06 = values.shieldName) : (attributes.weaponName06 = "");
|
|
(attributes.shieldDamage) ? (attributes.weaponDamage06 = values.shieldDamage) : (attributes.weaponDamage06 = "0");
|
|
(attributes.shieldNormalDamage) ? (attributes.weaponNormalDamage06 = values.shieldNormalDamage) : (attributes.weaponNormalDamage06 = "on");
|
|
attributes.weaponStrength06 = parseInt(values.shieldStrength)||0;
|
|
attributes.weaponOCV06 = parseInt(values.shieldOCV)||0;
|
|
|
|
attributes.gearSlideSelection = "gearManeuvers";
|
|
|
|
version = 2.51;
|
|
}
|
|
|
|
if (version < 2.82) {
|
|
// Turn on Roll and END buttons for occupied power slots.
|
|
values = await _getAttrs(["powerEffect01", "powerEffect02", "powerEffect03", "powerEffect04", "powerEffect05", "powerEffect06", "powerEffect07", "powerEffect08", "powerEffect09", "powerEffect10", "powerEffect11", "powerEffect12", "powerEffect13", "powerEffect14", "powerEffect15", "powerEffect16", "powerEffect17"]);
|
|
|
|
attributes.powerAction01 = ((values.powerEffect01).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction02 = ((values.powerEffect02).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction03 = ((values.powerEffect03).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction04 = ((values.powerEffect04).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction05 = ((values.powerEffect05).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction06 = ((values.powerEffect06).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction07 = ((values.powerEffect07).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction08 = ((values.powerEffect08).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction09 = ((values.powerEffect09).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction10 = ((values.powerEffect10).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction11 = ((values.powerEffect11).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction12 = ((values.powerEffect12).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction13 = ((values.powerEffect13).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction14 = ((values.powerEffect14).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction15 = ((values.powerEffect15).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction16 = ((values.powerEffect16).replace(/\s/g, '') === '') ? "false" : "true";
|
|
attributes.powerAction17 = ((values.powerEffect17).replace(/\s/g, '') === '') ? "false" : "true";
|
|
|
|
version = 2.82;
|
|
}
|
|
|
|
if (version < 2.90) {
|
|
|
|
values = await _getAttrs(["strength", "dexterity", "constitution", "intelligence", "ego", "presence"]);
|
|
|
|
attributes.strengthNet = parseInt(values.strength)||0;
|
|
attributes.dexterityNet = parseInt(values.dexterity)||0;
|
|
attributes.constitutionNet = parseInt(values.constitution)||0;
|
|
attributes.intelligenceNet = parseInt(values.intelligence)||0;
|
|
attributes.egoNet = parseInt(values.ego)||0;
|
|
attributes.presenceNet = parseInt(values.presence)||0;
|
|
|
|
// Initialize attribute mods to 0.
|
|
attributes.strengthMod = 0;
|
|
attributes.dexterityMod = 0;
|
|
attributes.constitutionMod = 0;
|
|
attributes.intelligenceMod = 0;
|
|
attributes.egoMod = 0;
|
|
|
|
attributes.ocvMod = 0;
|
|
attributes.dcvMod = 0;
|
|
attributes.omcvMod = 0;
|
|
attributes.dmcvMod = 0;
|
|
attributes.speedMod = 0;
|
|
|
|
attributes.pdMod = 0;
|
|
attributes.edMod = 0;
|
|
attributes.bodyMod = 0;
|
|
attributes.stunMod = 0;
|
|
attributes.enduranceMod = 0;
|
|
attributes.recoveryMod = 0;
|
|
|
|
attributes.runningMod = 0;
|
|
attributes.leapingMod = 0;
|
|
attributes.swimmingMod = 0;
|
|
|
|
version = 2.90;
|
|
}
|
|
|
|
if (version < 3.05) {
|
|
// Update martial maneuver selections and starting weapon states.
|
|
values = await _getAttrs(["martialManeuverBlock01", "martialManeuverBlock02", "martialManeuverBlock03", "martialManeuverBlock04", "martialManeuverBlock05", "martialManeuverBlock06", "martialManeuverBlock07", "martialManeuverBlock08", "martialManeuverBlock09", "martialManeuverBlock10", "weaponNormalDamage01", "weaponNormalDamage02", "weaponNormalDamage03", "weaponNormalDamage04", "weaponNormalDamage05", "weaponNormalDamage06"]);
|
|
|
|
let maneuverId;
|
|
let states = "DDDDDDOOOOOO";
|
|
|
|
for (let i=1; i<=maxManeuverNum; i++) {
|
|
maneuverId = String(i).padStart(2,'0');
|
|
if (values["martialManeuverBlock"+maneuverId] === "on") {
|
|
attributes["martialManeuverType"+maneuverId] = "block";
|
|
} else {
|
|
attributes["martialManeuverType"+maneuverId] = "attack";
|
|
}
|
|
}
|
|
|
|
attributes.weaponType01 = "defense";
|
|
attributes.weaponType02 = "defense";
|
|
attributes.weaponType03 = "defense";
|
|
attributes.weaponType04 = "defense";
|
|
attributes.weaponType05 = "defense";
|
|
attributes.weaponType06 = "defense";
|
|
|
|
attributes.gearSlideSelection = "gearTreasures";
|
|
attributes.maneuverSelection = "block";
|
|
attributes.useManeuvers = "true";
|
|
attributes.weaponStates = states;
|
|
|
|
version = 3.05;
|
|
}
|
|
|
|
if (version < 3.50) {
|
|
// Update carry weight
|
|
values = await _getAttrs(["carriedWeight", "strength", "strengthMod"]);
|
|
|
|
statValue = (parseInt(values.strength)||0) + (parseInt(values.strengthMod)||0);
|
|
|
|
attributes.liftWeightDisplay = displayMass( calculateLift(statValue) );
|
|
attributes.freeCarry = calculateLift(statValue)/10;
|
|
attributes.freeCarryDisplay = displayMass( calculateLift(statValue)/10 );
|
|
attributes.carriedWeightDisplay = displayMass(parseFloat(values.carriedWeight)||0);
|
|
|
|
version = 3.50;
|
|
}
|
|
|
|
if (version < 4.02) {
|
|
// Add 30 to combat and language skill IDs to make room for a block of twenty general skills.
|
|
values = await _getAttrs(["skillName31", "skillType31", "skillLevels31", "skillName32", "skillType32", "skillLevels32", "skillName33", "skillType33", "skillLevels33", "skillName34", "skillType34", "skillLevels34", "skillName35", "skillType35", "skillLevels35", "skillName36", "skillType36", "skillLevels36", "skillName37", "skillType37", "skillLevels37", "skillLevels38", "skillLevels39", "skillLevels40", "skillName41", "skillFluency41", "skillLiteracy41", "skillName42", "skillFluency42", "skillLiteracy42", "skillName43", "skillFluency43", "skillLiteracy43", "skillName44", "skillFluency44", "skillLiteracy44", "skillName45", "skillFluency45", "skillLiteracy45", "skillName46", "skillFluency46", "skillLiteracy46", "skillName47", "skillFluency47", "skillLiteracy47", "skillName48", "skillFluency48", "skillLiteracy48", "skillName49", "skillFluency49", "skillLiteracy49"]);
|
|
|
|
let newId;
|
|
let oldId;
|
|
|
|
for (let i=31; i<= 37; i++) {
|
|
oldId = String(i).padStart(2,'0');
|
|
newId = String(i+30).padStart(2,'0');
|
|
|
|
// Move old skill to new slot.
|
|
attributes["skillName"+newId] = values["skillName"+oldId]||"";
|
|
attributes["skillType"+newId] = values["skillType"+oldId]||"none";
|
|
attributes["skillLevels"+newId] = values["skillLevels"+oldId]||0;
|
|
|
|
// Delete otherwise visible old skill values.
|
|
attributes["skillName"+oldId] = "";
|
|
attributes["skillType"+oldId] = "none";
|
|
}
|
|
|
|
for (let i=38; i<= 40; i++) {
|
|
oldId = String(i).padStart(2,'0');
|
|
newId = String(i+35).padStart(2,'0');
|
|
|
|
// Move old skill to new slot.
|
|
attributes["skillLevels"+newId] = values["skillLevels"+oldId]||0;
|
|
}
|
|
|
|
for (let i=41; i<= 49; i++) {
|
|
oldId = String(i).padStart(2,'0');
|
|
newId = String(i+35).padStart(2,'0');
|
|
|
|
// Move old skill to new slot.
|
|
attributes["skillName"+newId] = values["skillName"+oldId]||"";
|
|
attributes["skillFluency"+newId] = values["skillFluency"+oldId]||"none";
|
|
attributes["skillLiteracy"+newId] = values["skillLiteracy"+oldId]||0;
|
|
|
|
// Delete otherwise visible old skill values.
|
|
attributes["skillName"+oldId] = "";
|
|
}
|
|
|
|
for (let i=31; i<=50; i++) {
|
|
oldId = String(i).padStart(2,'0');
|
|
|
|
// Remove old CP values in extend general skill range.
|
|
attributes["skillCP"+oldId] = 0;
|
|
}
|
|
|
|
updateEnhancerSkillCosts();
|
|
|
|
version = 4.02;
|
|
}
|
|
|
|
if (version < 4.10) {
|
|
values = await _getAttrs(["weaponNormalDamage01", "weaponNormalDamage02", "weaponNormalDamage03", "weaponNormalDamage04", "weaponNormalDamage05", "weaponNormalDamage06", "weaponNormalDamage11", "weaponNormalDamage12", "weaponNormalDamage13", "weaponNormalDamage14", "weaponNormalDamage15", "weaponNormalDamage16"]);
|
|
|
|
let weaponId = "";
|
|
|
|
// Update weapons and the shield.
|
|
for (let i=1; i<=6; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
attributes["weaponDamageType"+weaponId] = (values["weaponNormalDamage"+weaponId] === "on") ? "normal" : "killing";
|
|
}
|
|
|
|
for (let i=11; i<=15; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
attributes["weaponDamageType"+weaponId] = (values["weaponNormalDamage"+weaponId] === "on") ? "normal" : "killing";
|
|
}
|
|
|
|
version = 4.10;
|
|
}
|
|
|
|
if (version < 4.51) {
|
|
version = 4.51;
|
|
}
|
|
|
|
if (version != origVersion) {
|
|
console.log(`Updated ${name} from ${origVersion} to ${version}`);
|
|
attributes.version = version;
|
|
}
|
|
|
|
// We are doing this with awaits in order to only do a single setAttrs at the end.
|
|
setAttrs(attributes);
|
|
});
|
|
|
|
|
|
// Open with first tab (thanks to GiGs).
|
|
// Setup the sheet to open to the first page and to reset targeting to the default.
|
|
// Make sure delete readiness is off and delete checks are clear.
|
|
on("sheet:opened", function() {
|
|
clearDeleteChecks();
|
|
|
|
setAttrs({
|
|
sheetTab: "characteristics",
|
|
targetSelection: 1,
|
|
activateDeleteChecks: 0
|
|
});
|
|
});
|
|
|
|
|
|
// Show the selected sheet tab. This operation works via a proxy variable to make the CSS easier.
|
|
const buttonlist = ["characteristics","skills","powers","complications","gear","options"];
|
|
buttonlist.forEach(button => {
|
|
on(`clicked:${button}`, function() {
|
|
setAttrs({
|
|
sheetTab: button
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Character attributes options
|
|
on("change:useVehicleAttributes", function () {
|
|
getAttrs(["useVehicleAttributes"], function(values) {
|
|
|
|
setAttrs({
|
|
"sheetAttributes": (values["useVehicleAttributes"] === "on") ? "vehicle" : "standard",
|
|
"sheetHealthDisplay": (values["useVehicleAttributes"] === "on") ? "vehicle" : "standard"
|
|
});
|
|
});
|
|
});
|
|
|
|
// Show more options for propulsion systems
|
|
on("clicked:buttonPrimaryMore", function () {
|
|
getAttrs(["showPrimaryPropulsion"], function(values) {
|
|
setAttrs({
|
|
"showPrimaryPropulsion": (values["showPrimaryPropulsion"] === "essentials") ? "more" : "essentials"
|
|
});
|
|
});
|
|
});
|
|
|
|
on("clicked:buttonSecondaryMore", function () {
|
|
getAttrs(["showSecondaryPropulsion"], function(values) {
|
|
setAttrs({
|
|
"showSecondaryPropulsion": (values["showSecondaryPropulsion"] === "essentials") ? "more" : "essentials"
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Show or hide the Tally Bar. This operation works via a proxy variable to make the CSS easier.
|
|
on("change:showTallyBar", function () {
|
|
getAttrs(["showTallyBar"], function(values) {
|
|
|
|
setAttrs({
|
|
"sheetTally": (values["showTallyBar"] === "on") ? "true" : "false"
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Display chosen tally value.
|
|
on("change:useTallyNet", function () {
|
|
getAttrs(["useTallyNet"], function(values) {
|
|
|
|
setAttrs({
|
|
"tallyMethod": (values["useTallyNet"] === "on") ? "net" : "spent"
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* ------------------------- */
|
|
/* Functions used sheet-wide */
|
|
/* ------------------------- */
|
|
|
|
const maxArmorNum = 4;
|
|
const maxWeaponNum = 6; // Includes the shield.
|
|
const maxEquipmentNum = 16;
|
|
const maxManeuverNum = 10;
|
|
const maxSkillNum = 50;
|
|
const reserveSkillNum = 60-maxSkillNum; // Spanning gap between last general and first combat skill IDs.
|
|
const baseCombatSkillNum = 7;
|
|
const maxCombatLevelNum = 3;
|
|
const maxLanguageSkillNum = 9;
|
|
const flexSkillNum = 5;
|
|
const upperPowerNum = 10;
|
|
const lowerPowerNum = 10;
|
|
const maxPowerNum = 20;
|
|
const maxTalentNum = 10;
|
|
const maxComplicationNum = 10;
|
|
|
|
function arrayOf(num) {
|
|
// For use in our forEach loops, this creates an array of numbers 1 to num.
|
|
return Array.from({length: num}, (_, i) => i + 1);
|
|
}
|
|
|
|
function arrayOfRange(start, stop, step) {
|
|
// For use in our forEach loops, this creates an array of numbers start to stop in steps.
|
|
return Array.from({ length: (stop - start) / step + 1 }, (_, i) => start + i * step);
|
|
}
|
|
|
|
function heroRoundHigh(theNumber) {
|
|
// In the Hero System rounding favors the player. Here where high is good.
|
|
let theIntegerPart = Math.trunc(theNumber);
|
|
let theRemainder = (theNumber%1).toFixed(4);
|
|
|
|
if (theRemainder <= 0.4) {
|
|
return theIntegerPart;
|
|
} else {
|
|
return theIntegerPart + 1;
|
|
}
|
|
}
|
|
|
|
function heroRoundLow(theNumber) {
|
|
// In the Hero System rounding favors the player. Here where low is good.
|
|
let theIntegerPart = Math.trunc(theNumber);
|
|
let theRemainder = (theNumber%1).toFixed(4);
|
|
|
|
if (theRemainder >= 0.6) {
|
|
return theIntegerPart + 1;
|
|
} else {
|
|
return theIntegerPart;
|
|
}
|
|
}
|
|
|
|
function calculateRoll(theNumber) {
|
|
// Determine basic characteristic and skill roll chance
|
|
return heroRoundHigh(9+theNumber/5);
|
|
}
|
|
|
|
/* ------------------------- */
|
|
/* Portrait Selection */
|
|
/* ------------------------- */
|
|
|
|
// Demote the portrait slide show.
|
|
on("clicked:left-arrow-button", function () {
|
|
advancePortrait(-1);
|
|
});
|
|
|
|
// Advance the portrait slide show.
|
|
on("clicked:right-arrow-button", function () {
|
|
advancePortrait(+1);
|
|
});
|
|
|
|
function advancePortrait(direction) {
|
|
getAttrs(["portraitSelection", "totalNumberOfPortraits"], function(values) {
|
|
const currentSelection = parseInt(values.portraitSelection)||0;
|
|
const minimumSelection = 1;
|
|
const maximumSelection = parseInt(values.totalNumberOfPortraits)||1;
|
|
|
|
let newSelection = currentSelection+direction;
|
|
|
|
if (newSelection < minimumSelection) {
|
|
newSelection = maximumSelection;
|
|
}
|
|
|
|
if (newSelection > maximumSelection) {
|
|
newSelection = minimumSelection;
|
|
}
|
|
setAttrs({
|
|
"portraitSelection":newSelection
|
|
});
|
|
});
|
|
}
|
|
|
|
/* ------------------------- */
|
|
/* Gear Slide Selection */
|
|
/* ------------------------- */
|
|
|
|
const gearSlideList = ["gearTreasures", "gearManeuvers", "gearMartialManeuvers", "gearHitLocations"];
|
|
|
|
gearSlideList.forEach(button => {
|
|
// Adding weapons to martial maneuvers adds the complexity of needing to recall their standard and martial states.
|
|
on(`clicked:${button}`, function() {
|
|
getAttrs(["gearSlideSelection", "activateDeleteChecks", "weaponStates", "weaponType01", "weaponType02", "weaponType03", "weaponType04", "weaponType05", "weaponType06", "maneuverSelection", "ocvNet", "currentDCV"], function(values) {
|
|
var attributes = new Object();
|
|
const deleteActive = (values.activateDeleteChecks === "on") ? true : false;
|
|
let states = values.weaponStates;
|
|
var weaponId;
|
|
|
|
if (! deleteActive) {
|
|
// Store weapon states when switching away from standard and martial maneuvers.
|
|
if (values.gearSlideSelection === "gearManeuvers") {
|
|
for (let i=1; i <= maxWeaponNum; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
|
|
switch (values["weaponType"+weaponId]) {
|
|
case "killing": states = setCharAt(states, i-1, 'K');
|
|
break;
|
|
case "normal": states = setCharAt(states, i-1, 'N');
|
|
break;
|
|
case "power": states = setCharAt(states, i-1, 'P');
|
|
break;
|
|
case "defense": states = setCharAt(states, i-1, 'D');
|
|
break;
|
|
case "maneuver": states = setCharAt(states, i-1, 'M');
|
|
break;
|
|
default: states = setCharAt(states, i-1, 'O');
|
|
break;
|
|
}
|
|
}
|
|
|
|
attributes.ephemeralOCV = parseInt(values.ocvNet)||0;
|
|
attributes.ephemeralDCV = parseInt(values.currentDCV)||0;
|
|
|
|
} else if (values.gearSlideSelection === "gearMartialManeuvers") {
|
|
for (let i=1; i <= maxWeaponNum; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
|
|
switch (values["weaponType"+weaponId]) {
|
|
case "killing": states = setCharAt(states, i+maxWeaponNum-1, 'K');
|
|
break;
|
|
case "normal": states = setCharAt(states, i+maxWeaponNum-1, 'N');
|
|
break;
|
|
case "power": states = setCharAt(states, i+maxWeaponNum-1, 'P');
|
|
break;
|
|
case "defense": states = setCharAt(states, i+maxWeaponNum-1, 'D');
|
|
break;
|
|
case "maneuver": states = setCharAt(states, i+maxWeaponNum-1, 'M');
|
|
break;
|
|
default: states = setCharAt(states, i+maxWeaponNum-1, 'O');
|
|
break;
|
|
}
|
|
}
|
|
|
|
attributes.ephemeralOCV = parseInt(values.ocvNet)||0;
|
|
attributes.ephemeralDCV = parseInt(values.currentDCV)||0;
|
|
}
|
|
|
|
// Recall weapon states when switching between standard and martial maneuvers.
|
|
if (button === "gearMartialManeuvers") {
|
|
for (let i=1; i <= maxWeaponNum; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
|
|
switch (states[i-1+maxWeaponNum]) {
|
|
case "K": attributes["weaponType"+weaponId] = "killing";
|
|
break;
|
|
case "N": attributes["weaponType"+weaponId] = "normal";
|
|
break;
|
|
case "P": attributes["weaponType"+weaponId] = "power";
|
|
break;
|
|
case "D": attributes["weaponType"+weaponId] = "defense";
|
|
break;
|
|
case "M": attributes["weaponType"+weaponId] = "maneuver";
|
|
break;
|
|
default: attributes["weaponType"+weaponId] = "override";
|
|
break;
|
|
}
|
|
}
|
|
} else if (button === "gearManeuvers") {
|
|
for (let i=1; i <= maxWeaponNum; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
|
|
switch (states[i-1]) {
|
|
case "K": attributes["weaponType"+weaponId] = "killing";
|
|
break;
|
|
case "N": attributes["weaponType"+weaponId] = "normal";
|
|
break;
|
|
case "P": attributes["weaponType"+weaponId] = "power";
|
|
break;
|
|
case "D": attributes["weaponType"+weaponId] = "defense";
|
|
break;
|
|
case "M": attributes["weaponType"+weaponId] = "maneuver";
|
|
break;
|
|
default: attributes["weaponType"+weaponId] = "override";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Keep track of the user's maneuver selection intent in case they switch to targeting or notes.
|
|
if (button === "gearManeuvers") {
|
|
attributes.useManeuvers = "true";
|
|
} else if (button === "gearMartialManeuvers") {
|
|
attributes.useManeuvers = "false";
|
|
}
|
|
|
|
attributes.gearSlideSelection = button;
|
|
attributes.weaponStates = states;
|
|
|
|
setAttrs(attributes);
|
|
} else {
|
|
return;
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
function setCharAt(str,index,chr) {
|
|
// Replace a single character in a string.
|
|
if(index > str.length-1) return str;
|
|
return str.substring(0,index) + chr + str.substring(index+1);
|
|
}
|
|
|
|
/* -------------------------------------- */
|
|
/* Functions used for health status boxes */
|
|
/* -------------------------------------- */
|
|
|
|
/* Increment and Decrement buttons for Health Fields on Page 1: Characteristics */
|
|
|
|
// Add 1 to CurrentBODY
|
|
on("clicked:bodyPlus", function () {
|
|
getAttrs(["CurrentBODY"], function(values) {
|
|
const currentValue = parseInt(values.CurrentBODY)||0;
|
|
|
|
setAttrs({
|
|
"CurrentBODY":currentValue+1
|
|
});
|
|
|
|
});
|
|
});
|
|
|
|
// Subtract 1 from CurrentBODY
|
|
on("clicked:bodyMinus", function () {
|
|
getAttrs(["CurrentBODY"], function(values) {
|
|
const currentValue = parseInt(values.CurrentBODY)||0;
|
|
|
|
setAttrs({
|
|
"CurrentBODY":currentValue-1
|
|
});
|
|
});
|
|
});
|
|
|
|
// Add 1 to currentSTUN
|
|
on("clicked:stunPlus", function () {
|
|
getAttrs(["currentSTUN", "optionTakesNoSTUN"], function(values) {
|
|
let currentValue = parseInt(values.currentSTUN)||0;
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
|
|
if (takesNoSTUN != 0) {
|
|
currentValue = 0;
|
|
} else {
|
|
currentValue = currentValue+1;
|
|
}
|
|
|
|
setAttrs({
|
|
"currentSTUN":currentValue
|
|
});
|
|
});
|
|
});
|
|
|
|
// Subtract 1 from currentSTUN
|
|
on("clicked:stunMinus", function () {
|
|
getAttrs(["currentSTUN", "optionTakesNoSTUN"], function(values) {
|
|
let currentValue = parseInt(values.currentSTUN)||0;
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
|
|
if (takesNoSTUN != 0) {
|
|
currentValue = 0;
|
|
} else {
|
|
currentValue = currentValue-1;
|
|
}
|
|
|
|
setAttrs({
|
|
"currentSTUN":currentValue
|
|
});
|
|
});
|
|
});
|
|
|
|
// Add 1 to CurrentEND
|
|
on("clicked:endurancePlus", function () {
|
|
getAttrs(["CurrentEND"], function(values) {
|
|
const currentValue = parseInt(values.CurrentEND)||0;
|
|
|
|
// Attempt to correct negative END values.
|
|
setAttrs({
|
|
"CurrentEND": Math.max(0, currentValue+1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Subtract 1 from CurrentEND
|
|
on("clicked:enduranceMinus", function () {
|
|
getAttrs(["CurrentEND"], function(values) {
|
|
const currentValue = parseInt(values.CurrentEND)||0;
|
|
|
|
setAttrs({
|
|
"CurrentEND":Math.max(0,currentValue-1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Add 1 to CurrentMainEND
|
|
on("clicked:primaryPlus", function () {
|
|
getAttrs(["CurrentMainEND"], function(values) {
|
|
const currentValue = parseInt(values.CurrentMainEND)||0;
|
|
|
|
// Attempt to correct negative END values.
|
|
setAttrs({
|
|
"CurrentMainEND": Math.max(0, currentValue+1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Subtract 1 from CurrentMainEND
|
|
on("clicked:primaryMinus", function () {
|
|
getAttrs(["CurrentMainEND"], function(values) {
|
|
const currentValue = parseInt(values.CurrentMainEND)||0;
|
|
|
|
setAttrs({
|
|
"CurrentMainEND":Math.max(0,currentValue-1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Add 1 to CurrentAuxiliaryEND
|
|
on("clicked:auxiliaryPlus", function () {
|
|
getAttrs(["CurrentAuxiliaryEND"], function(values) {
|
|
const currentValue = parseInt(values.CurrentAuxiliaryEND)||0;
|
|
|
|
// Attempt to correct negative END values.
|
|
setAttrs({
|
|
"CurrentAuxiliaryEND": Math.max(0, currentValue+1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Subtract 1 from CurrentAuxiliaryEND
|
|
on("clicked:auxiliaryMinus", function () {
|
|
getAttrs(["CurrentAuxiliaryEND"], function(values) {
|
|
const currentValue = parseInt(values.CurrentAuxiliaryEND)||0;
|
|
|
|
setAttrs({
|
|
"CurrentAuxiliaryEND":Math.max(0,currentValue-1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Subtract X from CurrentEND.
|
|
// Used for power and attack buttons.
|
|
function subtractEndurance(enduranceSpent) {
|
|
getAttrs(["CurrentEND", "CurrentMainEND", "CurrentAuxiliaryEND", "activeReserve", "useVehicleAttributes"], function(values) {
|
|
var attributes = new Object();
|
|
const isVehicle = (values.useVehicleAttributes === "on" ) ? true : false;
|
|
|
|
let currentValue;
|
|
|
|
if (isVehicle) {
|
|
if ( (parseInt(values.activeReserve)||0) === 0) {
|
|
currentValue = parseInt(values.CurrentMainEND)||0;
|
|
attributes.CurrentMainEND = Math.max(0, (currentValue - enduranceSpent));
|
|
} else {
|
|
currentValue = parseInt(values.CurrentAuxiliaryEND)||0;
|
|
attributes.CurrentAuxiliaryEND = Math.max(0, (currentValue - enduranceSpent));
|
|
}
|
|
} else {
|
|
currentValue = parseInt(values.CurrentEND)||0;
|
|
attributes.CurrentEND = Math.max(0, (currentValue - enduranceSpent));
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
}
|
|
|
|
// Reset endurance and stun in item-characteristics-health when the reset action button is clicked.
|
|
// Also resets targeting choices if that option is checked.
|
|
on("clicked:resetHealth", function () {
|
|
getAttrs(["enduranceNet", "stunNet", "mainReserveEND", "auxiliaryReserveEND", "optionResetTargeting", "optionResetCSLs", "targetSelection", "rangeMartial", "rangeManeuver", "maneuverSelection", "running", "gearSlideSelection", "weaponStates", "weaponType01", "weaponType02", "weaponType03", "weaponType04", "weaponType05", "weaponType06", "martialManeuverOCVmod01", "martialManeuverOCVmod02", "martialManeuverOCVmod03", "martialManeuverOCVmod04", "martialManeuverOCVmod05", "martialManeuverOCVmod06", "martialManeuverOCVmod07", "martialManeuverOCVmod08", "martialManeuverOCVmod09", "martialManeuverOCVmod10", "martialManeuverDCVmod01", "martialManeuverDCVmod02", "martialManeuverDCVmod03", "martialManeuverDCVmod04", "martialManeuverDCVmod05", "martialManeuverDCVmod06", "martialManeuverDCVmod07", "martialManeuverDCVmod08", "martialManeuverDCVmod09", "martialManeuverDCVmod10", "martialManeuverCSLmod01", "martialManeuverCSLmod02", "martialManeuverCSLmod03", "martialManeuverCSLmod04", "martialManeuverCSLmod05", "martialManeuverCSLmod06", "martialManeuverCSLmod07", "martialManeuverCSLmod08", "martialManeuverCSLmod09", "martialManeuverCSLmod10", "weaponCSL01", "weaponCSL02", "weaponCSL03", "weaponCSL04", "weaponCSL05", "weaponCSL06", "currentDCV", "ocvNet"], function(values) {
|
|
var attributes = new Object();
|
|
|
|
const maxEND = parseInt(values.enduranceNet);
|
|
const maxSTUN = parseInt(values.stunNet);
|
|
const maxMAIN = parseInt(values.mainReserveEND);
|
|
const maxAUX = parseInt(values.auxiliaryReserveEND);
|
|
|
|
let states = values.weaponStates;
|
|
var weaponId;
|
|
var maneuverId;
|
|
|
|
const resetTargeting = (values.optionResetTargeting === "on") ? true : false;
|
|
const resetCSLs = (values.optionResetCSLs === "on") ? true : false;
|
|
|
|
if (resetTargeting) {
|
|
if (values.gearSlideSelection === "gearMartialManeuvers") {
|
|
for (let i=1; i <= maxWeaponNum; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
|
|
switch (values["weaponType"+weaponId]) {
|
|
case "killing": states = setCharAt(states, i+maxWeaponNum-1, 'K');
|
|
break;
|
|
case "normal": states = setCharAt(states, i+maxWeaponNum-1, 'N');
|
|
break;
|
|
case "power": states = setCharAt(states, i+maxWeaponNum-1, 'P');
|
|
break;
|
|
case "defense": states = setCharAt(states, i+maxWeaponNum-1, 'D');
|
|
break;
|
|
case "maneuver": states = setCharAt(states, i+maxWeaponNum-1, 'M');
|
|
break;
|
|
default: states = setCharAt(states, i+maxWeaponNum-1, 'O');
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
attributes.rangeToTarget = 0;
|
|
attributes.rangeManeuver = 0;
|
|
attributes.rangeMartial = 0;
|
|
attributes.rangePower = 0;
|
|
attributes.targetSelection = 1;
|
|
attributes.setDamageToggle = "0";
|
|
attributes.gearSlideSelection = "gearManeuvers";
|
|
attributes.weaponStates = states;
|
|
attributes.maneuverSelection = "strike";
|
|
attributes.useManeuvers = "true";
|
|
attributes.checkBrace = "unchecked";
|
|
attributes.checkSet = "unchecked";
|
|
attributes.maneuverDCLimit = 5;
|
|
attributes.velocity = parseInt(values.running)||12;
|
|
attributes.powerManeuver = "strike";
|
|
attributes.maneuverDamageCSL = "0";
|
|
attributes.variableOCVmod = 0;
|
|
|
|
updateWeaponStates("strike");
|
|
}
|
|
|
|
if (resetCSLs) {
|
|
attributes.powerCSL = 0;
|
|
attributes.maneuverOCVmod = 0;
|
|
attributes.maneuverDCVmod = 0;
|
|
|
|
for (let i=1; i <= maxWeaponNum; i++) {
|
|
weaponId = String(i).padStart(2,'0');
|
|
|
|
attributes["weaponCSL"+weaponId] = 0;
|
|
}
|
|
|
|
for (let i=1; i <= maxManeuverNum; i++) {
|
|
maneuverId = String(i).padStart(2,'0');
|
|
|
|
attributes["martialManeuverOCVmod"+maneuverId] = 0;
|
|
attributes["martialManeuverDCVmod"+maneuverId] = 0;
|
|
attributes["martialManeuverCSLmod"+maneuverId] = 0;
|
|
}
|
|
}
|
|
|
|
attributes.CurrentSTUN = maxSTUN;
|
|
attributes.CurrentEND = maxEND;
|
|
attributes.CurrentMainEND = maxMAIN;
|
|
attributes.CurrentAuxiliaryEND = maxAUX;
|
|
attributes.ephemeralOCV = parseInt(values["ocvNet"])||3;
|
|
attributes.ephemeralDCV = parseInt(values["currentDCV"])||3;
|
|
|
|
setAttrs(attributes);
|
|
clearDeleteChecks();
|
|
});
|
|
});
|
|
|
|
// Synchronize reserve selections.
|
|
on("change:reserveSelectChar change:reserveSelectGear change:reserveSelectPowers", function () {
|
|
getAttrs(["reserveSelectChar", "reserveSelectGear", "reserveSelectPowers"], function(values) {
|
|
let newSelection;
|
|
|
|
const charSelect = parseInt(values.reserveSelectChar)||0;
|
|
const gearSelect = parseInt(values.reserveSelectGear)||0;
|
|
const powerSelect = parseInt(values.reserveSelectPowers)||0;
|
|
|
|
if (charSelect === gearSelect) {
|
|
newSelection = powerSelect;
|
|
} else if (charSelect === powerSelect) {
|
|
newSelection = gearSelect;
|
|
} else {
|
|
newSelection = charSelect;
|
|
}
|
|
|
|
setAttrs({
|
|
"reserveSelectChar": newSelection,
|
|
"reserveSelectGear": newSelection,
|
|
"reserveSelectPowers": newSelection,
|
|
"activeReserve": newSelection
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Recover Buttons */
|
|
|
|
// Recover endurance and stun when the recover button in the item-characteristics-health box is clicked.
|
|
on("clicked:recoverHealth", function () {
|
|
getAttrs(["useVehicleAttributes"], function(values) {
|
|
const isVehicle = (values.useVehicleAttributes === "on" ) ? true : false;
|
|
|
|
if (isVehicle) {
|
|
vehicleRecovery();
|
|
} else {
|
|
standardRecovery();
|
|
}
|
|
});
|
|
});
|
|
|
|
function standardRecovery() {
|
|
getAttrs(["whisperToGM", "character_title", "endurance", "stun", "CurrentEND", "CurrentSTUN", "weightEndPenalty", "recovery", "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const currentEND = parseInt(values.CurrentEND)||0;
|
|
const currentSTUN = parseInt(values.CurrentSTUN)||0;
|
|
|
|
// If character is boosted, than their max is what they are currently at
|
|
const maxEND = Math.max(parseInt(values.endurance), currentEND);
|
|
const maxSTUN = Math.max(parseInt(values.stun), currentSTUN);
|
|
|
|
theRoll += "&{template:custom-activate} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
|
|
theRoll += "{{PHASE12=[[?{Recovery Type|Post Segement 12 (includes END penalty),1|Recovery Action,0}]]}} "
|
|
+ "{{STUN Recovery=[[@{recoveryNet}[Recovery]]] (@{CurrentSTUN})}} "
|
|
+ "{{END Recovery=[[@{recoveryNet}[Recovery]-[[@{weightEndPenalty}*?{Recovery Type}]][END/Turn Cost]]] (@{CurrentEND})}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
recoverSTUN = results.results["STUN Recovery"].result;
|
|
recoverEND = results.results["END Recovery"].result;
|
|
|
|
setAttrs({
|
|
CurrentSTUN: Math.min(currentSTUN + recoverSTUN, maxSTUN),
|
|
CurrentEND: Math.max(0,Math.min(currentEND + recoverEND, maxEND))
|
|
});
|
|
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
|
|
return;
|
|
}
|
|
|
|
function vehicleRecovery() {
|
|
getAttrs(["whisperToGM", "character_title", "CurrentMainEND", "CurrentAuxiliaryEND", "mainReserveEND", "auxiliaryReserveEND", "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
|
|
const CurrentMainEND = parseInt(values.CurrentMainEND)||0;
|
|
const currentAuxiliaryEND = parseInt(values.CurrentAuxiliaryEND)||0;
|
|
|
|
// If character is boosted, than their max is what they are currently at
|
|
const maxPrimaryEND = Math.max(parseInt(values.mainReserveEND), CurrentMainEND);
|
|
const maxAuxiliaryEND = Math.max(parseInt(values.auxiliaryReserveEND), currentAuxiliaryEND);
|
|
|
|
theRoll += "&{template:custom-activate} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
|
|
theRoll += "{{MAIN Recovery=[[@{mainReserveREC}[MAIN]]] (@{CurrentMainEND})}} "
|
|
+ "{{AUX Recovery=[[@{auxiliaryReserveREC}[AUX]]] (@{CurrentAuxiliaryEND})}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
recoverMAIN = results.results["MAIN Recovery"].result;
|
|
recoverAUX = results.results["AUX Recovery"].result;
|
|
|
|
setAttrs({
|
|
treasures: "hello",
|
|
CurrentMainEND: Math.max(0, Math.min(CurrentMainEND + recoverMAIN, maxPrimaryEND)),
|
|
CurrentAuxiliaryEND: Math.max(0, Math.min(currentAuxiliaryEND + recoverAUX, maxAuxiliaryEND))
|
|
});
|
|
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
|
|
return;
|
|
}
|
|
|
|
|
|
/* -------------------------------------- */
|
|
/* Functions used for characteristics tab */
|
|
/* -------------------------------------- */
|
|
function sumCharacteristicPoints() {
|
|
// Add up points spent on characteristics.
|
|
// All character attributes added in one function to avoid getAttrs() limitations.
|
|
|
|
// Add attribute costs in one go
|
|
getAttrs(["strengthCP", "dexterityCP", "constitutionCP", "intelligenceCP", "egoCP", "presenceCP", "ocvCP", "dcvCP", "omcvCP", "dmcvCP","speedCP", "pdCP", "edCP", "bodyCP", "stunCP", "enduranceCP", "recoveryCP", "runningCP", "leapingCP", "swimmingCP", "primaryPropulsionCP", "secondaryPropulsionCP", "useVehicleAttributes", "sizeCP", "mainReserveCP", "auxiliaryReserveCP"], function(values) {
|
|
const isVehicle = (values.useVehicleAttributes === "on" ) ? true : false;
|
|
|
|
const sizeCost = parseInt(values.sizeCP)||0;
|
|
|
|
const strengthCost = parseInt(values.strengthCP)||0;
|
|
const dexterityCost = parseInt(values.dexterityCP)||0;
|
|
const constitutionCost = parseInt(values.constitutionCP)||0;
|
|
const intelligenceCost = parseInt(values.intelligenceCP)||0;
|
|
const egoCost = parseInt(values.egoCP)||0;
|
|
const presenceCost = parseInt(values.presenceCP)||0;
|
|
|
|
const ocvCost = parseInt(values.ocvCP)||0;
|
|
const dcvCost = parseInt(values.dcvCP)||0;
|
|
const omcvCost = parseInt(values.omcvCP)||0;
|
|
const dmcvCost = parseInt(values.dmcvCP)||0;
|
|
|
|
const speedCost = parseInt(values.speedCP)||0;
|
|
|
|
const pdCost = parseInt(values.pdCP)||0;
|
|
const edCost = parseInt(values.edCP)||0;
|
|
const bodyCost = parseInt(values.bodyCP)||0;
|
|
const stunCost = parseInt(values.stunCP)||0;
|
|
const endCost = parseInt(values.enduranceCP)||0;
|
|
const recCost = parseInt(values.recoveryCP)||0;
|
|
|
|
const primaryReserveCost = parseInt(values.mainReserveCP)||0;
|
|
const auxiliaryReserveCost = parseInt(values.auxiliaryReserveCP)||0;
|
|
|
|
const runningCost = parseInt(values.runningCP)||0;
|
|
const leapingCost = parseInt(values.leapingCP)||0;
|
|
const swimmingCost = parseInt(values.swimmingCP)||0;
|
|
const primaryPropulsionCost = parseInt(values.primaryPropulsionCP)||0;
|
|
const secondaryPropulsionCost = parseInt(values.secondaryPropulsionCP)||0;
|
|
const baseMoveCredit = -14;
|
|
|
|
let characterAttributesCost = 0;
|
|
let combatValuesCost = 0;
|
|
let defenseCost = 0;
|
|
let healthCost = 0;
|
|
let movementCost = 0;
|
|
|
|
if (isVehicle) {
|
|
characterAttributesCost = strengthCost+dexterityCost+sizeCost;
|
|
combatValuesCost = ocvCost+dcvCost;
|
|
defenseCost = pdCost+edCost;
|
|
healthCost = bodyCost+primaryReserveCost+auxiliaryReserveCost;
|
|
movementCost = primaryPropulsionCost+secondaryPropulsionCost+baseMoveCredit;
|
|
} else {
|
|
characterAttributesCost = strengthCost+dexterityCost+constitutionCost+intelligenceCost+egoCost+presenceCost;
|
|
combatValuesCost = ocvCost+dcvCost+omcvCost+dmcvCost;
|
|
defenseCost = pdCost+edCost;
|
|
healthCost = bodyCost+stunCost+endCost+recCost;
|
|
movementCost = runningCost+leapingCost+swimmingCost;
|
|
}
|
|
|
|
let netCost = characterAttributesCost+combatValuesCost+speedCost+defenseCost+healthCost+movementCost;
|
|
|
|
setAttrs({
|
|
"characteristicsCost": netCost
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
// Update Strength related stats and skills
|
|
on("change:strength change:strengthMod change:useCharacteristicMaximums change:optionSuperHeroicEndurance change:optionUntiring", function () {
|
|
getAttrs(["strength", "strengthMod", "useCharacteristicMaximums", "optionSuperHeroicEndurance", "optionUntiring"], function(values) {
|
|
|
|
const statValue = parseInt(values.strength)||0;
|
|
const useMaximums = (values.useCharacteristicMaximums === "on") ? true : false;
|
|
const isUntiring = (values.optionUntiring === "on") ? true : false;
|
|
const enduranceCostFactor = (values.optionSuperHeroicEndurance === "on") ? 10 : 5;
|
|
const baseStat = 10;
|
|
const maxStat = 20;
|
|
const statMod = parseInt(values.strengthMod)||0;
|
|
const costStat = 1;
|
|
const dice = (((statValue+statMod)%5 > 2) ? 0.5 : 0) + Math.floor((statValue+statMod)/5);
|
|
let statCP = 0;
|
|
let enduranceCostBasic = 0;
|
|
var liftCapacity;
|
|
var freeCarry;
|
|
|
|
// Basic damage
|
|
var hiddenDamage = calculateBasicDamage(Math.max(0, statValue + statMod));
|
|
|
|
// Basic endurance
|
|
if (!isUntiring) {
|
|
enduranceCostBasic = heroRoundLow( (Math.max(0, statValue + statMod))/enduranceCostFactor );
|
|
if ( enduranceCostBasic < 1 ) {
|
|
enduranceCostBasic = 1;
|
|
}
|
|
}
|
|
|
|
// Characteristic maximums trigger cost recalculation.
|
|
if ( (statValue>maxStat) && (useMaximums) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
liftCapacity = calculateLift(statValue+statMod);
|
|
freeCarry = liftCapacity/10;
|
|
|
|
// Update cost and roll chance and carry values
|
|
setAttrs({
|
|
"strengthNet": Math.max(0, statValue + statMod),
|
|
"strengthCP": statCP,
|
|
"strengthChance": calculateRoll(Math.max(0, statValue + statMod)),
|
|
"liftWeight": calculateLift(statValue+statMod),
|
|
"liftWeightDisplay": displayMass(liftCapacity),
|
|
"freeCarry": freeCarry,
|
|
"freeCarryDisplay": displayMass(freeCarry),
|
|
"hiddenBasicDamage": hiddenDamage,
|
|
"hiddenBasicEndurance": enduranceCostBasic,
|
|
"GetSTRDice": dice
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
function calculateLift (statValue) {
|
|
// Returns calculated value consistent with HERO standard lift chart.
|
|
let lift = 0;
|
|
|
|
switch (statValue) {
|
|
case 0: lift = 0;
|
|
break;
|
|
case 1: lift = 8;
|
|
break;
|
|
case 2: lift = 16;
|
|
break;
|
|
case 3: lift = 25;
|
|
break;
|
|
case 4: lift = 38;
|
|
break;
|
|
default: lift = Math.round(25*Math.pow(2,( (Math.max(0, statValue))/5)));
|
|
}
|
|
|
|
return lift;
|
|
}
|
|
|
|
|
|
function calculateBasicDamage (statValue) {
|
|
let theNumberOfD6 = (parseInt((statValue - (statValue%5))/5)||0).toString();
|
|
let theNumberOfD3 = 0;
|
|
if (statValue%5 > 2) {
|
|
theNumberOfD3 = 1;
|
|
}
|
|
return theNumberOfD6.concat("d6+",theNumberOfD3.toString(),"d3");
|
|
}
|
|
|
|
|
|
// Update Dexterity
|
|
on("change:dexterity change:dexterityMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["dexterity", "dexterityMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.dexterity)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 10;
|
|
const maxStat = 20;
|
|
const statMod = parseInt(values.dexterityMod)||0;
|
|
const costStat = 2;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost and roll chance
|
|
setAttrs({
|
|
"dexterityCP": statCP,
|
|
"dexterityChance": calculateRoll(Math.max(0, statValue + statMod)),
|
|
"dexterityNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
// Update Constitution
|
|
on("change:constitution change:constitutionMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["constitution", "constitutionMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.constitution)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 10;
|
|
const maxStat = 20;
|
|
const statMod = parseInt(values.constitutionMod)||0;
|
|
const costStat = 1;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost and roll chance
|
|
setAttrs({
|
|
"constitutionCP": statCP,
|
|
"constitutionChance": calculateRoll(statValue + statMod),
|
|
"constitutionNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
// Update Intelligence and Perception
|
|
on("change:intelligence change:intelligenceMod change:enhancedPerceptionModifier change:perceptionModifierVision change:perceptionModifierHearing change:perceptionModifierSmell change:useCharacteristicMaximums", function () {
|
|
getAttrs(["intelligence", "intelligenceMod", "useCharacteristicMaximums", "enhancedPerceptionModifier", "perceptionModifierVision", "perceptionModifierHearing", "perceptionModifierSmell"], function(values) {
|
|
|
|
const statValue = parseInt(values.intelligence)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 10;
|
|
const maxStat = 20;
|
|
const statMod = parseInt(values.intelligenceMod)||0;
|
|
const costStat = 1;
|
|
|
|
// Here we get the enhanced perception modifier. Perception is like a child of Intelligence.
|
|
// The base value of perception is the intelligence roll. The Perception roll is the base value plus the enhancedPerceptionModifier.
|
|
// Individual senses start at Intelligence Chance + Perception modifier.
|
|
const enhancedPerceptionMod = parseInt(values.enhancedPerceptionModifier)||0;
|
|
const perceptionModVision = parseInt(values.perceptionModifierVision)||0;
|
|
const perceptionModHearing = parseInt(values.perceptionModifierHearing)||0;
|
|
const perceptionModSmell = parseInt(values.perceptionModifierSmell)||0;
|
|
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost and roll chance
|
|
setAttrs({
|
|
"intelligenceCP": statCP,
|
|
"intelligenceChance": calculateRoll(Math.max(0, statValue + statMod)),
|
|
"intelligenceNet": Math.max(0, statValue + statMod),
|
|
"perceptionBase": calculateRoll(Math.max(0, statValue + statMod)),
|
|
"perceptionEnhanced": calculateRoll(Math.max(0, statValue + statMod)) + enhancedPerceptionMod,
|
|
"perceptionVision": calculateRoll(Math.max(0, statValue + statMod)) + enhancedPerceptionMod+perceptionModVision,
|
|
"perceptionHearing": calculateRoll(Math.max(0, statValue + statMod)) + enhancedPerceptionMod+perceptionModHearing,
|
|
"perceptionSmell": calculateRoll(Math.max(0, statValue + statMod)) + enhancedPerceptionMod+perceptionModSmell
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Ego
|
|
on("change:ego change:egoMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["ego", "egoMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.ego)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 10;
|
|
const maxStat = 20;
|
|
const statMod = parseInt(values.egoMod)||0;
|
|
const costStat = 1;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost and roll chance
|
|
setAttrs({
|
|
"egoCP": statCP,
|
|
"egoChance": calculateRoll(statValue + statMod),
|
|
"egoNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Presence
|
|
on("change:presence change:presenceMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["presence", "presenceMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.presence)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 10;
|
|
const maxStat = 20;
|
|
const statMod = parseInt(values.presenceMod)||0;
|
|
const costStat = 1;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost and roll chance
|
|
setAttrs({
|
|
"presenceCP": statCP,
|
|
"presenceChance": calculateRoll(statValue + statMod),
|
|
"presenceNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update vehicle size
|
|
on("change:size change:useVehicleAttributes", function () {
|
|
getAttrs(["size", "useVehicleAttributes"], function(values) {
|
|
var attributes = new Object();
|
|
|
|
const statValue = Math.min(Math.max(0, parseInt(values.size)||0), 50);
|
|
const isVehicle = (values.useVehicleAttributes === "on" ) ? true : false;
|
|
let mass = 0;
|
|
let dimension = 0;
|
|
let tempString = "";
|
|
|
|
attributes.sizeCP = statValue * 5;
|
|
|
|
// If vehicle update size attributes. Otherwise reset them to size 0 defaults.
|
|
if (isVehicle) {
|
|
if (statValue <= 3) {
|
|
mass = 2 ** statValue * 100;
|
|
tempString = mass.toString() + " kg";
|
|
} else if (statValue <= 6) {
|
|
mass = 2 ** statValue * 0.1;
|
|
tempString = mass.toString() + " t";
|
|
} else if (statValue <= 13) {
|
|
mass = 2 ** (statValue - 7) * 12.5;
|
|
tempString = mass.toString() + " t";
|
|
} else if (statValue <= 16) {
|
|
mass = 2 ** (statValue - 7) * 0.0125;
|
|
tempString = mass.toString() + " kt";
|
|
} else if (statValue <= 23) {
|
|
mass = 2 ** (statValue - 17) * 12.5;
|
|
tempString = mass.toString() + " kt";
|
|
} else if (statValue <= 26) {
|
|
mass = 2 ** (statValue - 17) * 0.0125;
|
|
tempString = mass.toString() + " Mt";
|
|
} else if (statValue <= 33) {
|
|
mass = 2 ** (statValue - 27) * 12.5;
|
|
tempString = mass.toString() + " Mt";
|
|
} else if (statValue <= 36) {
|
|
mass = 2 ** (statValue - 27) * 0.125;
|
|
tempString = mass.toString() + " Gt";
|
|
} else if (statValue <= 43) {
|
|
mass = 2 ** (statValue - 37) * 12.5;
|
|
tempString = mass.toString() + " Gt";
|
|
} else if (statValue <= 46) {
|
|
mass = 2 ** (statValue - 44) * 1.6;
|
|
tempString = mass.toString() + " Tt";
|
|
} else {
|
|
mass = 2 ** (statValue - 47) * 12.5;
|
|
tempString = mass.toString() + " Tt";
|
|
}
|
|
|
|
attributes.sizeMass = tempString;
|
|
|
|
if ((statValue % 3) === 0) {
|
|
if (statValue <= 18) {
|
|
dimension = 2 * 2 ** (statValue/3);
|
|
tempString = dimension.toString() + " m";
|
|
} else if (statValue <= 24) {
|
|
dimension = 2 * 125 * 2 ** ((statValue-21)/3);
|
|
tempString = dimension.toString() + " m";
|
|
} else {
|
|
dimension = 2 ** ((statValue-27)/3);
|
|
tempString = dimension.toString() + " km";
|
|
}
|
|
} else if ((statValue % 3) === 1) {
|
|
if (statValue <= 25) {
|
|
dimension = 2 * 1.25 * (2 ** ((statValue-1)/3) );
|
|
tempString = dimension.toString() + " m";
|
|
} else {
|
|
dimension = 1.25 * (2 ** ((statValue-28)/3) );
|
|
tempString = dimension.toString() + " km";
|
|
}
|
|
} else {
|
|
if (statValue <= 5) {
|
|
dimension = 2 * 1.6 * (2 ** ((statValue-2)/3) );
|
|
tempString = dimension.toString() + " m";
|
|
} else if (statValue <= 26) {
|
|
dimension = 12.5 * (2 ** ((statValue-8)/3) );
|
|
tempString = dimension.toString() + " m";
|
|
} else if (statValue <= 35) {
|
|
dimension = 1.6 * (2 ** ((statValue-29)/3) );
|
|
tempString = dimension.toString() + " km";
|
|
} else {
|
|
dimension = 12.5 * (2 ** ((statValue-38)/3) );;
|
|
tempString = dimension.toString() + " km";
|
|
}
|
|
}
|
|
|
|
attributes.sizeLength = tempString;
|
|
attributes.sizeNet = statValue;
|
|
attributes.sizeOCV = Math.floor(statValue*2/3);
|
|
attributes.sizeKB = -statValue;
|
|
attributes.strengthMod = 5*statValue;
|
|
attributes.bodyMod = statValue;
|
|
} else {
|
|
attributes.sizeOCV = 0;
|
|
attributes.sizeKB = 0;
|
|
attributes.strengthMod = 0;
|
|
attributes.bodyMod = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
|
|
// Update totals
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Vehicle Power Systems
|
|
|
|
on("change:mainReserveEND change:mainReserveREC change:mainReserveLIM", function () {
|
|
getAttrs(["mainReserveEND", "mainReserveREC", "mainReserveLIM"], function(values) {
|
|
|
|
const endValue = Math.max(0, parseInt(values.mainReserveEND)||0);
|
|
const recValue = Math.max(0, parseInt(values.mainReserveREC)||0);
|
|
const limValue = Math.max(0, parseFloat(values.mainReserveLIM)||0);
|
|
const endCost = 1;
|
|
const recCost = 2;
|
|
|
|
let reserveCP = heroRoundLow( (endCost * Math.floor(endValue/4) + recCost * Math.floor(recValue/3))/(1+limValue) );
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"mainReserveCP": reserveCP,
|
|
"CurrentMainEND_max": endValue
|
|
});
|
|
|
|
// Update totals
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
on("change:auxiliaryReserveEND change:auxiliaryReserveREC change:auxiliaryReserveLIM", function () {
|
|
getAttrs(["auxiliaryReserveEND", "auxiliaryReserveREC", "auxiliaryReserveLIM"], function(values) {
|
|
|
|
const endValue = Math.max(0, parseInt(values.auxiliaryReserveEND)||0);
|
|
const recValue = Math.max(0, parseInt(values.auxiliaryReserveREC)||0);
|
|
const limValue = Math.max(0, parseFloat(values.auxiliaryReserveLIM)||0);
|
|
const endCost = 1;
|
|
const recCost = 2;
|
|
|
|
let reserveCP = heroRoundLow( (endCost * Math.floor(endValue/4) + recCost * Math.floor(recValue/3))/(1+limValue) );
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"auxiliaryReserveCP": reserveCP,
|
|
"CurrentAuxiliaryEND_max": endValue
|
|
});
|
|
|
|
// Update totals
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
/* Use power systems draw button */
|
|
on("clicked:buttonSystemsEND", function() {
|
|
getAttrs(["systemsEND"], function(values) {
|
|
subtractEndurance( Math.max(0, parseInt(values.systemsEND||0)) );
|
|
});
|
|
});
|
|
|
|
/* Use propulsion systems END button */
|
|
on("clicked:buttonPrimaryPropulsionEND", function() {
|
|
getAttrs(["primaryPropulsionEND"], function(values) {
|
|
subtractEndurance( Math.max(0, parseInt(values.primaryPropulsionEND||0)) );
|
|
});
|
|
});
|
|
|
|
|
|
on("clicked:buttonSecondaryPropulsionEND", function() {
|
|
getAttrs(["secondaryPropulsionEND"], function(values) {
|
|
subtractEndurance( Math.max(0, parseInt(values.secondaryPropulsionEND||0)) );
|
|
});
|
|
});
|
|
|
|
|
|
// Combat Characteristics
|
|
|
|
// Update Offensive Combat Value
|
|
on("change:ocv change:ocvMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["ocv", "ocvMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.ocv)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 3;
|
|
const maxStat = 8;
|
|
const statMod = parseInt(values.ocvMod)||0;
|
|
const costStat = 5;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"ocvCP": statCP,
|
|
"ocvNet": Math.max(0, statValue + statMod),
|
|
"ephemeralOCV": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update totals
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Defensive Combat Value
|
|
// Encumbrance Section: Add 1 to bonusDCVmodifier
|
|
on("clicked:bonusDCVmodifierPlus", function () {
|
|
getAttrs(["bonusDCVmodifier"], function(values) {
|
|
const currentValue = parseInt(values.bonusDCVmodifier)||0;
|
|
|
|
setAttrs({
|
|
"bonusDCVmodifier":Math.min(Math.max(-10, (currentValue+1) ), +10)
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Encumbrance Section: Subtract 1 from bonusDCVmodifier
|
|
on("clicked:bonusDCVmodifierMinus", function () {
|
|
getAttrs(["bonusDCVmodifier"], function(values) {
|
|
const currentValue = parseInt(values.bonusDCVmodifier)||0;
|
|
|
|
setAttrs({
|
|
"bonusDCVmodifier":Math.min(Math.max(-10, (currentValue-1) ), +10)
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Update Defensive Combat Value and hidden attribute currentDCV
|
|
on("change:dcv change:dcvMod change:weightDexDCVPenalty change:shieldDCV change:shieldCarried change:bonusDCVmodifier change:useCharacteristicMaximums change:optionTakesNoSTUN", function () {
|
|
getAttrs(["dcv", "dcvMod", "useCharacteristicMaximums", "weightDexDCVPenalty", "shieldDCV", "shieldCarried", "bonusDCVmodifier", "optionTakesNoSTUN"], function(values) {
|
|
|
|
const statValue = parseInt(values.dcv)||0;
|
|
const shieldBonus = parseInt(values.shieldDCV)||0;
|
|
const weightPenalty = parseInt(values.weightDexDCVPenalty)||0;
|
|
const isCarried = (values.shieldCarried === "on") ? true : false;
|
|
const bonusModifier = parseInt(values.bonusDCVmodifier)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
let baseStat = 3;
|
|
const maxStat = 8;
|
|
const statMod = parseInt(values.dcvMod)||0;
|
|
let costStat = 5;
|
|
let statCP = 0;
|
|
|
|
// Automaton defenses cost triple.
|
|
if (takesNoSTUN != 0) {
|
|
costStat = costStat*3;
|
|
}
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost and current DCV
|
|
setAttrs({
|
|
"dcvCP": statCP,
|
|
"dcvNet": Math.max(0, statValue + statMod),
|
|
"currentDCV": Math.max(0, statValue+statMod+(isCarried ? shieldBonus : 0)+weightPenalty+bonusModifier),
|
|
"ephemeralDCV": Math.max(0, statValue+statMod+(isCarried ? shieldBonus : 0)+weightPenalty+bonusModifier)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Mental Offensive Combat Value
|
|
on("change:omcv change:omcvMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["omcv", "omcvMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.omcv)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 3;
|
|
const maxStat = 8;
|
|
const statMod = parseInt(values.omcvMod)||0;
|
|
const costStat = 3;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"omcvCP": statCP,
|
|
"omcvNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Mental Defensive Combat Value
|
|
on("change:dmcv change:dmcvMod change:useCharacteristicMaximums change:optionTakesNoSTUN", function () {
|
|
getAttrs(["dmcv", "dmcvMod", "useCharacteristicMaximums", "optionTakesNoSTUN"], function(values) {
|
|
|
|
const statValue = parseInt(values.dmcv)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
const baseStat = 3;
|
|
const maxStat = 8;
|
|
const statMod = parseInt(values.dmcvMod)||0;
|
|
let costStat = 3;
|
|
let statCP = 0;
|
|
|
|
// Automaton defenses cost triple.
|
|
if (takesNoSTUN != 0) {
|
|
costStat = costStat*3;
|
|
}
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"dmcvCP": statCP,
|
|
"dmcvNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Speed
|
|
on("change:speed change:speedMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["speed", "speedMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
let statValue = parseInt(values.speed)||0;
|
|
let useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 2;
|
|
const maxStat = 4;
|
|
const statMod = parseInt(values.speedMod)||0;
|
|
const costStat = 10;
|
|
let statCP = 0;
|
|
const theSpeed = Math.max(1, Math.min(12, (statValue + statMod)));
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"speedCP": statCP,
|
|
"speedNet": theSpeed,
|
|
"speedIndicator01": theSpeed == 12 ? "on" : 0,
|
|
"speedIndicator02": theSpeed >= 6 ? "on" : 0,
|
|
"speedIndicator03": [4,5,8,9,10,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator04": [3,6,7,9,10,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator05": [5,8,10,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator06": [2,4,6,7,8,9,10,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator07": [1,7,9,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator08": [3,5,6,8,9,10,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator09": [4,7,8,10,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator10": [5,6,9,10,11,12].includes(theSpeed) ? "on" : 0,
|
|
"speedIndicator11": theSpeed >= 7 ? "on" : 0,
|
|
"speedIndicator12": theSpeed != 1 ? "on" : 0
|
|
});
|
|
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Physical Defense
|
|
on("change:pd change:pdMod change:useCharacteristicMaximums change:optionTakesNoSTUN", function () {
|
|
getAttrs(["pd", "pdMod", "useCharacteristicMaximums", "optionTakesNoSTUN"], function(values) {
|
|
|
|
const statValue = parseInt(values.pd)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
let baseStat = 2;
|
|
const maxStat = 8;
|
|
const statMod = parseInt(values.pdMod)||0;
|
|
let costStat = 1;
|
|
let statCP = 0;
|
|
|
|
// Automaton defenses cost triple.
|
|
if (takesNoSTUN != 0) {
|
|
costStat = costStat*3;
|
|
baseStat = 1;
|
|
}
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"pdCP": statCP,
|
|
"pdNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Energy Defense
|
|
on("change:ed change:edMod change:useCharacteristicMaximums change:optionTakesNoSTUN", function () {
|
|
getAttrs(["ed", "edMod","useCharacteristicMaximums", "optionTakesNoSTUN"], function(values) {
|
|
|
|
const statValue = parseInt(values.ed)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
let baseStat = 2;
|
|
const maxStat = 8;
|
|
const statMod = parseInt(values.edMod)||0;
|
|
let costStat = 1;
|
|
let statCP = 0;
|
|
|
|
// Automaton defenses cost triple.
|
|
if (takesNoSTUN != 0) {
|
|
costStat = costStat*3;
|
|
baseStat = 1;
|
|
}
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"edCP":statCP,
|
|
"edNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update BODY
|
|
on("change:body change:bodyMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["body", "bodyMod","useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.body)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 10;
|
|
const maxStat = 20;
|
|
const statMod = parseInt(values.bodyMod)||0;
|
|
const costStat = 1;
|
|
let statCP = 0;
|
|
let netStat = Math.max(1, statValue + statMod);
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"CurrentBODY_max": netStat,
|
|
"bodyNet": netStat,
|
|
"bodyCP": statCP
|
|
});
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Handle STUN data when optionTakesNoSTUN is checked.
|
|
on("change:optionTakesNoSTUN", function () {
|
|
getAttrs(["optionTakesNoSTUN", "stun", "hiddenSTUN"], function(values) {
|
|
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
let statValue = values.stun;
|
|
let savedStatValue = values.hiddenSTUN;
|
|
|
|
// Store STUN in hiddenSTUN and then set it to zero.
|
|
if (takesNoSTUN != 0) {
|
|
savedStatValue = statValue;
|
|
statValue = 0;
|
|
} else {
|
|
statValue = savedStatValue;
|
|
}
|
|
|
|
// Update character. Reset health status.
|
|
setAttrs({
|
|
"hiddenSTUN": savedStatValue,
|
|
"stun": statValue,
|
|
"CurrentSTUN": statValue,
|
|
"CurrentSTUN_max": statValue
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update STUN
|
|
on("change:stun change:stunMod change:useCharacteristicMaximums change:optionTakesNoSTUN", function () {
|
|
getAttrs(["stun", "stunMod","useCharacteristicMaximums", "hiddenSTUN", "optionTakesNoSTUN"], function(values) {
|
|
|
|
const statValue = parseInt(values.stun)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const takesNoSTUN = values.optionTakesNoSTUN;
|
|
let baseStat = 20;
|
|
const maxStat = 50;
|
|
const statMod = parseInt(values.stunMod)||0;
|
|
const costStat = 0.5;
|
|
let statCP = 0;
|
|
|
|
// If option takesNoSTUN is not checked. Save the new value of STUN.
|
|
if (takesNoSTUN != 0) {
|
|
|
|
// Reset STUN and cost to zero.
|
|
setAttrs({
|
|
"stun": 0,
|
|
"CurrentSTUN_max": 0,
|
|
"stunNet": 0,
|
|
"stunCP": 0
|
|
});
|
|
|
|
} else {
|
|
|
|
// Calculate costs, save stun to hiddenSTUN, and calculate cost.
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
setAttrs({
|
|
"hiddenSTUN": Math.max(0, statValue + statMod),
|
|
"CurrentSTUN_max": Math.max(0, statValue + statMod),
|
|
"stunNet": Math.max(0, statValue + statMod),
|
|
"stunCP": Math.ceil(statCP)
|
|
});
|
|
}
|
|
|
|
// Update costs
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Endurance
|
|
on("change:endurance change:enduranceMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["endurance", "enduranceMod","useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.endurance)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 20;
|
|
const maxStat = 50;
|
|
const statMod = parseInt(values.enduranceMod)||0;
|
|
const costStat = 0.2;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"enduranceNet": Math.max(0, statValue + statMod),
|
|
"CurrentEND_max": Math.max(0, statValue + statMod),
|
|
"enduranceCP": Math.ceil(statCP)
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Recovery
|
|
on("change:recovery change:recoveryMod change:useCharacteristicMaximums", function () {
|
|
getAttrs(["recovery", "recoveryMod", "useCharacteristicMaximums"], function(values) {
|
|
|
|
const statValue = parseInt(values.recovery)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 4;
|
|
const maxStat = 10;
|
|
const statMod = parseInt(values.recoveryMod)||0;
|
|
const costStat = 1;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
// Update cost
|
|
setAttrs({
|
|
"recoveryCP": statCP,
|
|
"recoveryNet": Math.max(0, statValue + statMod)
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Movement abilities
|
|
|
|
// Update Running
|
|
on("change:running change:runningMod change:useCharacteristicMaximums change:weightMovePenalty change:runningMultiple change:useVehicleAttributes", function () {
|
|
getAttrs(["running", "runningMod", "useCharacteristicMaximums", "weightMovePenalty", "runningMultiple", "useVehicleAttributes"], function(values) {
|
|
|
|
const isVehicle = (values.useVehicleAttributes === "on" ) ? true : false;
|
|
const statValue = parseInt(values.running)||0;
|
|
const statMod = parseInt(values.runningMod)||0;
|
|
const penalty = parseInt(values.weightMovePenalty)||0;
|
|
const netMove = Math.max(0, statValue + statMod + penalty);
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 12;
|
|
const maxStat = 20;
|
|
const costStat = 1;
|
|
let statCP = 0;
|
|
let nonCombatMultiple = parseInt(values.runningMultiple)||1;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat + (statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
if (isVehicle) {
|
|
statCP += (nonCombatMultiple - 1) * 5;
|
|
}
|
|
|
|
// Update cost and net movement
|
|
setAttrs({
|
|
"runningCP":statCP,
|
|
"runningNet":netMove
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Leaping
|
|
on("change:leaping change:leapingMod change:useCharacteristicMaximums change:weightMovePenalty", function () {
|
|
getAttrs(["leaping", "leapingMod", "useCharacteristicMaximums", "weightMovePenalty"], function(values) {
|
|
|
|
const statValue = parseInt(values.leaping)||0;
|
|
const statMod = parseInt(values.leapingMod)||0;
|
|
const penalty = parseInt(values.weightMovePenalty)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 4;
|
|
const maxStat = 10;
|
|
const costStat = 0.5;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
let netMove = Math.max(0, statValue + statMod + penalty);
|
|
|
|
// Update cost and net movement
|
|
setAttrs({
|
|
"leapingCP":heroRoundHigh(statCP),
|
|
"leapingNet":netMove
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update Flight
|
|
// on("change:flight change:flightMod change:weightMovePenalty", function () {
|
|
// getAttrs(["flight", "flightMod", "weightMovePenalty"], function(values) {
|
|
//
|
|
// const statValue = parseInt(values.flight)||0;
|
|
// const statMod = parseInt(values.flightMod)||0;
|
|
// const penalty = parseInt(values.weightMovePenalty)||0;
|
|
//
|
|
// // Update net movement
|
|
// setAttrs({
|
|
// "flightNet": Math.max(0, statValue + statMod + penalty);
|
|
// });
|
|
// });
|
|
// });
|
|
|
|
|
|
// Update Swimming
|
|
on("change:swimming change:swimmingMod change:useCharacteristicMaximums change:weightMovePenalty", function () {
|
|
getAttrs(["swimming", "swimmingMod", "useCharacteristicMaximums", "weightMovePenalty"], function(values) {
|
|
|
|
const statValue = parseInt(values.swimming)||0;
|
|
const statMod = parseInt(values.swimmingMod)||0;
|
|
const penalty = parseInt(values.weightMovePenalty)||0;
|
|
const useMaximums = values.useCharacteristicMaximums;
|
|
const baseStat = 4;
|
|
const maxStat = 10;
|
|
const costStat = 0.5;
|
|
let statCP = 0;
|
|
|
|
if ( (statValue>maxStat) && (useMaximums != 0) ) {
|
|
statCP=(statValue-maxStat)*costStat+(statValue-baseStat)*costStat;
|
|
} else {
|
|
statCP=(statValue-baseStat)*costStat;
|
|
}
|
|
|
|
let netMove = Math.max(0, statValue + statMod + penalty);
|
|
|
|
// Update cost and net movement
|
|
setAttrs({
|
|
"swimmingCP":heroRoundHigh(statCP),
|
|
"swimmingNet":netMove
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update propulsion details on change of mode.
|
|
on("change:primaryPropulsionMode", function() {
|
|
getAttrs(["primaryPropulsionMode"], function(values) {
|
|
var attributes = new Object();
|
|
const theMode = values.primaryPropulsionMode||"ground";
|
|
|
|
switch (theMode) {
|
|
case "ftl": attributes.primaryPropulsionDetails = "ftl";
|
|
break;
|
|
case "extra": attributes.primaryPropulsionDetails = "extra";
|
|
break;
|
|
case "clinging": attributes.primaryPropulsionDetails = "extra";
|
|
break;
|
|
case "teleport": attributes.primaryPropulsionDetails = "teleport";
|
|
break;
|
|
default: attributes.primaryPropulsionDetails = "standard";
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
// Update primary propulsion mode for vehicles.
|
|
on("change:primaryPropulsionMode change:primaryPropulsion change:primaryPropulsionMod change:primaryNoncombatMultiple change:primaryPropulsionLimitations change:primaryPropulsionAdv change:weightMovePenalty change:primaryPropulsionSlotType change:primaryPropulsionCostsEND change:primaryFTLvelocty change:primaryInstantFTL change:primaryPropulsionAdds", function() {
|
|
getAttrs(["primaryPropulsionMode", "primaryPropulsion", "primaryPropulsionMod", "primaryNoncombatMultiple", "primaryPropulsionAdv", "primaryPropulsionLimitations", "primaryPropulsionSlotType", "primaryPropulsionCostsEND", "weightMovePenalty", "primaryFTLvelocty", "primaryInstantFTL", "primaryPropulsionAdds", "strengthNet"], function(values) {
|
|
|
|
const statValue = Math.max(0, parseInt(values.primaryPropulsion)||0);
|
|
const statMod = parseInt(values.primaryPropulsionMod)||0;
|
|
const statMultiple = (values.primaryNoncombatMultiple||1)-1;
|
|
const penalty = parseInt(values.weightMovePenalty)||0;
|
|
const theMode = values.primaryPropulsionMode||"ground";
|
|
const ftlVelocity = parseInt(values.primaryFTLvelocty)||0;
|
|
const theAdds = parseInt(values.primaryPropulsionAdds)||0;
|
|
const isInstant = (values.primaryInstantFTL === "on") ? true : false;
|
|
let statNet = 0;
|
|
let statCP = 0;
|
|
let baseCP = 0;
|
|
const costsEND = (values.primaryPropulsionCostsEND === "noEND") ? 0 : ((values.primaryPropulsionCostsEND === "costsENDhalf") ? 0.25 : 0.5);
|
|
const advantages = Math.max(0, parseFloat(values.primaryPropulsionAdv)||0);
|
|
const limitations = Math.max(0, parseFloat(values.primaryPropulsionLimitations)||0) + costsEND;
|
|
let endurance = 0;
|
|
let netMove = "NA";
|
|
const slotType = values.primaryPropulsionSlotType;
|
|
|
|
switch (theMode) {
|
|
case "ground": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = statValue + 5*statMultiple;
|
|
break;
|
|
case "flight": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = statValue + 5*statMultiple;
|
|
break;
|
|
case "swimming": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = 0.5*(statValue + 5*statMultiple);
|
|
break;
|
|
case "leaping": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = 0.5*(statValue + 5*statMultiple);
|
|
break;
|
|
case "swinging": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = 0.5*(statValue + 5*statMultiple);
|
|
break;
|
|
case "teleport": statNet = Math.max(0, statValue + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = statValue + theAdds;
|
|
break;
|
|
case "extra": baseCP = 20;
|
|
statCP = 20 + theAdds;
|
|
break;
|
|
case "ftl": statCP = ftlVelocity + (isInstant ? 10 : 0);
|
|
break;
|
|
case "clinging": baseCP = 10;
|
|
statCP = baseCP + theAdds;
|
|
break;
|
|
}
|
|
|
|
statCP = heroRoundLow( (1+advantages) * statCP );
|
|
|
|
if (costsEND === 0.25) {
|
|
endurance = Math.max(1, heroRoundLow(statCP/20));
|
|
} else if (costsEND === 0.5) {
|
|
endurance = Math.max(1, heroRoundLow(statCP/10));
|
|
}
|
|
|
|
statCP = heroRoundLow( statCP/(1+limitations) );
|
|
|
|
if ( (slotType !== "single") && (statCP !== 0) ) {
|
|
statCP = (slotType === "variableSlot") ? Math.max(1, heroRoundLow( statCP/5 )) : Math.max(1, heroRoundLow( statCP/10 ));
|
|
}
|
|
|
|
// Update cost and net movement
|
|
setAttrs({
|
|
"primaryPropulsionCP": heroRoundHigh(statCP),
|
|
"primaryPropulsionNet": netMove,
|
|
"primaryPropulsionEND": endurance,
|
|
"primaryPropulsionExtra": baseCP
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Update propulsion details on change of mode.
|
|
on("change:secondaryPropulsionMode", function() {
|
|
getAttrs(["secondaryPropulsionMode"], function(values) {
|
|
var attributes = new Object();
|
|
const theMode = values.secondaryPropulsionMode||"ground";
|
|
|
|
switch (theMode) {
|
|
case "ftl": attributes.secondaryPropulsionDetails = "ftl";
|
|
break;
|
|
case "extra": attributes.secondaryPropulsionDetails = "extra";
|
|
break;
|
|
case "clinging": attributes.secondaryPropulsionDetails = "extra";
|
|
break;
|
|
case "teleport": attributes.secondaryPropulsionDetails = "teleport";
|
|
break;
|
|
default: attributes.secondaryPropulsionDetails = "standard";
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
// Update secondary propulsion mode for vehicles.
|
|
on("change:secondaryPropulsionMode change:secondaryPropulsion change:secondaryPropulsionMod change:secondaryNoncombatMultiple change:secondaryPropulsionAdv change:secondaryPropulsionLimitations change:secondaryPropulsionSlotType change:secondaryPropulsionCostsEND change:weightMovePenalty change:secondaryFTLvelocity change:secondaryInstantFTL change:secondaryPropulsionAdds", function() {
|
|
getAttrs(["secondaryPropulsionMode", "secondaryPropulsion", "secondaryPropulsionMod", "secondaryNoncombatMultiple", "secondaryPropulsionAdv", "secondaryPropulsionLimitations", "secondaryPropulsionSlotType", "secondaryPropulsionCostsEND", "weightMovePenalty", "secondaryFTLvelocty", "secondaryInstantFTL", "secondaryPropulsionAdds"], function(values) {
|
|
|
|
const statValue = Math.max(0, parseInt(values.secondaryPropulsion)||0);
|
|
const statMod = parseInt(values.secondaryPropulsionMod)||0;
|
|
const statMultiple = (values.secondaryNoncombatMultiple||1)-1;
|
|
const penalty = parseInt(values.weightMovePenalty)||0;
|
|
const theMode = values.secondaryPropulsionMode||"ground";
|
|
const ftlVelocity = parseInt(values.secondaryFTLvelocty)||0;
|
|
const theAdds = parseInt(values.secondaryPropulsionAdds)||0;
|
|
const isInstant = (values.secondaryInstantFTL === "on") ? true : false;
|
|
let statNet = 0;
|
|
let statCP = 0;
|
|
let baseCP = 0;
|
|
let costsEND = (values.secondaryPropulsionCostsEND === "noEND") ? 0 : ((values.secondaryPropulsionCostsEND === "costsENDhalf") ? 0.25 : 0.5);
|
|
let advantages = Math.max(0, parseFloat(values.secondaryPropulsionAdv)||0);
|
|
let limitations = Math.max(0, parseFloat(values.secondaryPropulsionLimitations)||0) + costsEND;
|
|
let endurance = 0;
|
|
let netMove = "NA";
|
|
const slotType = values.secondaryPropulsionSlotType;
|
|
|
|
switch (theMode) {
|
|
case "ground": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = statValue + 5*statMultiple;
|
|
break;
|
|
case "flight": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = statValue + 5*statMultiple;
|
|
break;
|
|
case "swimming": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = 0.5*(statValue + 5*statMultiple);
|
|
break;
|
|
case "leaping": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = 0.5*(statValue + 5*statMultiple);
|
|
break;
|
|
case "swinging": statNet = Math.max(0, statValue + statMod + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = 0.5*(statValue + 5*statMultiple);
|
|
break;
|
|
case "teleport": statNet = Math.max(0, statValue + penalty);
|
|
netMove = statNet.toString();
|
|
statCP = statValue + theAdds;
|
|
break;
|
|
case "extra": baseCP = 20;
|
|
statCP = baseCP + theAdds;
|
|
break;
|
|
case "ftl": statCP = ftlVelocity + (isInstant ? 10 : 0);
|
|
break;
|
|
case "clinging": baseCP = 10;
|
|
statCP = baseCP + theAdds;
|
|
break;
|
|
}
|
|
|
|
statCP = heroRoundLow( (1+advantages) * statCP );
|
|
|
|
if (costsEND === 0.25) {
|
|
endurance = Math.max(1, heroRoundLow(statCP/20));
|
|
} else if (costsEND === 0.5) {
|
|
endurance = Math.max(1, heroRoundLow(statCP/10));
|
|
}
|
|
|
|
statCP = heroRoundLow( statCP/(1+limitations) );
|
|
|
|
if ( (slotType !== "single") && (statCP !== 0) ) {
|
|
statCP = (slotType === "variableSlot") ? Math.max(1, heroRoundLow( statCP/5 )) : Math.max(1, heroRoundLow( statCP/10 ));
|
|
}
|
|
|
|
// Update cost and net movement
|
|
setAttrs({
|
|
"secondaryPropulsionCP": heroRoundHigh(statCP),
|
|
"secondaryPropulsionNet": netMove,
|
|
"secondaryPropulsionEND": endurance,
|
|
"secondaryPropulsionExtra": baseCP
|
|
});
|
|
|
|
// Update characteristics cost
|
|
sumCharacteristicPoints();
|
|
});
|
|
});
|
|
|
|
|
|
// Show vehicle system checks or delete items marked for deletion.
|
|
// DANGER: Risk of data loss.
|
|
on("change:vehicleChecks change:activateDeleteChecks", function() {
|
|
getAttrs(["vehicleChecks", "activateDeleteChecks", "primaryPropulsionDelete", "secondaryPropulsionDelete", "mainPowerDelete", "auxiliaryPowerDelete"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.vehicleChecks = "delete";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearVehicleChecks();
|
|
} else {
|
|
attributes.vehicleChecks = "hide";
|
|
|
|
if (values.primaryPropulsionDelete === "on") {
|
|
attributes.primaryPropulsionLabel = "";
|
|
attributes.primaryPropulsionMode = "ground";
|
|
attributes.primaryPropulsion = "0";
|
|
attributes.primaryPropulsionMod = "0";
|
|
attributes.primaryNoncombatMultiple = "1";
|
|
attributes.primaryPropulsionSlotType = "single";
|
|
attributes.primaryPropulsionAdv = "0";
|
|
attributes.primaryPropulsionLimitations = "0";
|
|
attributes.primaryPropulsionCostsEND = "noEND";
|
|
attributes.primaryPropulsionText = "";
|
|
}
|
|
|
|
if (values.secondaryPropulsionDelete === "on") {
|
|
attributes.secondaryPropulsionLabel = "";
|
|
attributes.secondaryPropulsionMode = "ground";
|
|
attributes.secondaryPropulsion = "0";
|
|
attributes.secondaryPropulsionMod = "0";
|
|
attributes.secondaryNoncombatMultiple = "1";
|
|
attributes.secondaryPropulsionSlotType = "single";
|
|
attributes.secondaryPropulsionAdv = "0";
|
|
attributes.secondaryPropulsionLimitations = "0";
|
|
attributes.secondaryPropulsionCostsEND = "noEND";
|
|
attributes.secondaryPropulsionText = "";
|
|
}
|
|
|
|
if (values.mainPowerDelete === "on") {
|
|
attributes.mainReserveLabel = "";
|
|
attributes.mainReserveEND = "0";
|
|
attributes.mainReserveREC = "0";
|
|
attributes.mainReserveLIM = "0";
|
|
attributes.mainReserveText = "";
|
|
}
|
|
|
|
if (values.auxiliaryPowerDelete === "on") {
|
|
attributes.auxiliaryReserveLabel = "";
|
|
attributes.auxiliaryReserveEND = "0";
|
|
attributes.auxiliaryReserveREC = "0";
|
|
attributes.auxiliaryReserveLIM = "0";
|
|
attributes.auxiliaryReserveText = "";
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearVehicleChecks() {
|
|
var attributes = new Object();
|
|
|
|
attributes.primaryPropulsionDelete = 0;
|
|
attributes.secondaryPropulsionDelete = 0;
|
|
attributes.mainPowerDelete = 0;
|
|
attributes.auxiliaryPowerDelete = 0;
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Update point totals when option: useCharacteristicMaximums checked or unchecked.
|
|
on("change:useCharacteristicMaximums", function () {
|
|
sumCharacteristicPoints();
|
|
});
|
|
|
|
|
|
// Restrict dingbat to a single character.
|
|
on("change.dingbat", function () {
|
|
getAttrs(["dingbat"], function(values) {
|
|
let theChar = (values.dingbat).toString();
|
|
theChar = theChar.substring(0, 1);
|
|
|
|
if ((!theChar) || (theChar.replace(/\s/g, '') === "")) {
|
|
theChar = "❖";
|
|
}
|
|
|
|
setAttrs({
|
|
"dingbat": theChar
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* -------------------------------------- */
|
|
/* Functions used for Tally Bar */
|
|
/* -------------------------------------- */
|
|
|
|
function addPoints() {
|
|
// Add up points from each section of the tally bar and subtract the complications benefit to arrive at a total character cost
|
|
// Seems to need a onchange() notice for each tab total to be recognized correctly.
|
|
getAttrs(["hiddenCombatSkillsCost", "characteristicsCost", "hiddenSet1SkillsCost", "hiddenSet2SkillsCost", "hiddenSet3SkillsCost", "hiddenSet4SkillsCost", "hiddenSet5SkillsCost", "hiddenLanguageSkillsCost", "hiddenEnhancerSkillsCost", "hiddenMartialSkillsCost", "powersPerksTalentsCost", "complicationsBenefit","bonusBenefit", "experienceBenefit"], function(values) {
|
|
|
|
const characteristicsCP = parseInt(values.characteristicsCost)||0;
|
|
const set1SkillsCP = parseInt(values.hiddenSet1SkillsCost)||0;
|
|
const set2SkillsCP = parseInt(values.hiddenSet2SkillsCost)||0;
|
|
const set3SkillsCP = parseInt(values.hiddenSet3SkillsCost)||0;
|
|
const set4SkillsCP = parseInt(values.hiddenSet4SkillsCost)||0;
|
|
const set5SkillsCP = parseInt(values.hiddenSet5SkillsCost)||0;
|
|
const combatSkillsCP = parseInt(values.hiddenCombatSkillsCost)||0;
|
|
const languageSkillsCP = parseInt(values.hiddenLanguageSkillsCost)||0;
|
|
const enhancerSkillsCP = parseInt(values.hiddenEnhancerSkillsCost)||0;
|
|
const martialSkillsCP = parseInt(values.hiddenMartialSkillsCost)||0;
|
|
const powersPerksTalentsCP = parseInt(values.powersPerksTalentsCost)||0;
|
|
const complicationsCP = parseInt(values.complicationsBenefit)||0;
|
|
const bonusCP = parseInt(values.bonusBenefit)||0;
|
|
const experienceCP = parseInt(values.experienceBenefit)||0;
|
|
|
|
let totalSkillsCP = set1SkillsCP + set2SkillsCP + set3SkillsCP + set4SkillsCP + set5SkillsCP + combatSkillsCP + languageSkillsCP + enhancerSkillsCP + martialSkillsCP;
|
|
let netCP = characteristicsCP+totalSkillsCP+powersPerksTalentsCP-complicationsCP-bonusCP-experienceCP;
|
|
let spentCP = characteristicsCP+totalSkillsCP+powersPerksTalentsCP;
|
|
|
|
setAttrs({
|
|
"skillsCost":totalSkillsCP,
|
|
"totalCharacterCost":netCP,
|
|
"spentCharacterCost":spentCP
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
on("change:characteristicsCost change:hiddenSet1SkillsCost change:hiddenSet2SkillsCost change:hiddenSet3SkillsCost change:hiddenSet4SkillsCost change:hiddenSet5SkillsCost change:hiddenCombatSkillsCost change:hiddenEnhancerSkillsCost change:hiddenLanguageSkillsCost change:hiddenMartialSkillsCost change:powersPerksTalentsCost change:complicationsBenefit change:bonusBenefit change:experienceBenefit change:tallyMethod", function () {
|
|
// Update total character points any of the hidden character point subtotals change.
|
|
addPoints();
|
|
});
|
|
|
|
|
|
/* -------------------------------------------------- */
|
|
/* Functions used for talents and complications tab */
|
|
/* -------------------------------------------------- */
|
|
|
|
|
|
// Update Tally Bar after change notice any complication's CP benefit.
|
|
on("change:complicationCP01 change:complicationCP02 change:complicationCP03 change:complicationCP04 change:complicationCP05 change:complicationCP06 change:complicationCP07 change:complicationCP08 change:complicationCP09 change:complicationCP10", function () {
|
|
getAttrs(["complicationCP01","complicationCP02","complicationCP03","complicationCP04","complicationCP05","complicationCP06","complicationCP07","complicationCP08","complicationCP09","complicationCP10"], function(values) {
|
|
let totalBenefit = 0;
|
|
for (let i = 1; i <= maxComplicationNum; i++)
|
|
totalBenefit += parseInt(values["complicationCP"+String(i).padStart(2,'0')])||0;
|
|
|
|
setAttrs({
|
|
"complicationsBenefit":totalBenefit
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
function sumPowersPerksTalents() {
|
|
getAttrs(["talentCP01","talentCP02","talentCP03","talentCP04","talentCP05","talentCP06","talentCP07","talentCP08","talentCP09","talentCP10","powerCP01","powerCP02","powerCP03","powerCP04","powerCP05","powerCP06", "powerCP07", "powerCP08", "powerCP09", "powerCP10", "powerCP11", "powerCP12", "powerCP13", "powerCP14", "powerCP15", "powerCP16", "powerCP17", "powerCP18", "powerCP19", "powerCP20"], function(values) {
|
|
let talentsCost = 0;
|
|
for (let i = 1; i <= maxTalentNum; i++)
|
|
talentsCost += parseInt(values["talentCP"+String(i).padStart(2,'0')])||0;
|
|
|
|
let powersCost = 0;
|
|
for (let i = 1; i <= maxPowerNum; i++)
|
|
powersCost += parseInt(values["powerCP"+String(i).padStart(2,'0')])||0;
|
|
|
|
setAttrs({
|
|
"powersPerksTalentsCost":(talentsCost + powersCost)
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
// Update Tally Bar after change to any Talent's CP cost.
|
|
on("change:talentCP01 change:talentCP02 change:talentCP03 change:talentCP04 change:talentCP05 change:talentCP06 change:talentCP07 change:talentCP08 change:talentCP09 change:talentCP10", function () {
|
|
sumPowersPerksTalents();
|
|
});
|
|
|
|
|
|
/* -------------------------------------------------- */
|
|
/* Functions used for powers tab */
|
|
/* -------------------------------------------------- */
|
|
|
|
function calculatePowerEND(powerActiveCost, powerReducedEND) {
|
|
// Calculates power endurance given active cost and reduced, standard, or increased endurance limitation.
|
|
var powerEND=0;
|
|
var found=1;
|
|
|
|
if (["standardEND", "costsENDfull"].includes(powerReducedEND)) {
|
|
powerEND=heroRoundLow(powerActiveCost/10);
|
|
} else if (["reducedEND", "reducedENDAF", "costsENDhalf"].includes(powerReducedEND)) {
|
|
powerEND=heroRoundLow(powerActiveCost/20);
|
|
} else if (powerReducedEND.startsWith("increasedENDx")) {
|
|
// Grab the Multiplier first, if 0 then that means we're x10
|
|
powerEND = parseInt(powerReducedEND.slice(-1));
|
|
powerEND = (powerEND ? powerEND : 10) * (heroRoundLow(powerActiveCost/10));
|
|
} else {
|
|
found = 0;
|
|
}
|
|
|
|
if (found)
|
|
powerEND = Math.max(found, powerEND);
|
|
|
|
return powerEND;
|
|
}
|
|
|
|
|
|
function calculateActiveCost(powerBaseCost, powerAdvantages, powerReducedEND) {
|
|
var powerActiveCost=0;
|
|
|
|
switch (powerReducedEND) {
|
|
case 'reducedENDAF': powerActiveCost=powerBaseCost*(powerAdvantages+1.5);
|
|
break;
|
|
case 'zeroENDAF': powerActiveCost=powerBaseCost*(powerAdvantages+2);
|
|
break;
|
|
case 'reducedEND': powerActiveCost=powerBaseCost*(powerAdvantages+1.25);
|
|
break;
|
|
case 'zeroEND': powerActiveCost=powerBaseCost*(powerAdvantages+1.5);
|
|
break;
|
|
default: powerActiveCost=powerBaseCost*(1+powerAdvantages);
|
|
}
|
|
|
|
return powerActiveCost;
|
|
}
|
|
|
|
|
|
function increasedENDlimitation(settingEND) {
|
|
switch (settingEND) {
|
|
case 'costsENDhalf': return 0.25;
|
|
break;
|
|
case 'costsENDfull': return 0.5;
|
|
break;
|
|
case 'increasedENDx2': return 0.5;
|
|
break;
|
|
case 'increasedENDx2': return 0.5;
|
|
break;
|
|
case 'increasedENDx3': return 1;
|
|
break;
|
|
case 'increasedENDx4': return 1.5;
|
|
break;
|
|
case 'increasedENDx5': return 2;
|
|
break;
|
|
case 'increasedENDx6': return 2.5;
|
|
break;
|
|
case 'increasedENDx7': return 3;
|
|
break;
|
|
case 'increasedENDx8': return 3.5;
|
|
break;
|
|
case 'increasedENDx9': return 3.5;
|
|
break;
|
|
case 'increasedENDx10': return 4;
|
|
break;
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
|
|
/* Power XX Change */
|
|
arrayOf(maxPowerNum).forEach(num => {
|
|
var ID = String(num).padStart(2,'0');
|
|
on("change:powerType"+ID+" change:powerBaseCost"+ID+" change:powerAdvantages"+ID+" change:powerReducedEND"+ID+" change:powerLimitations"+ID+" change:powerDice"+ID+" change:powerDamageType"+ID+" change:hiddenBasicEndurance", function () {
|
|
getAttrs(["powerType"+ID, "powerBaseCost"+ID, "powerAdvantages"+ID, "powerReducedEND"+ID, "powerLimitations"+ID,"powerDice"+ID, "powerDamageType"+ID, "hiddenBasicEndurance"], function(values) {
|
|
let powerType = values["powerType"+ID];
|
|
let addStrengthEND = ( (values["powerDamageType"+ID] === "HKA") || (values["powerDamageType"+ID] === "HTH") ) ? true : false;
|
|
const powerBaseCost = parseInt(values["powerBaseCost"+ID])||0;
|
|
const powerAdvantages = parseFloat(values["powerAdvantages"+ID])||0;
|
|
let thePowerDice = values["powerDice"+ID];
|
|
const powerReducedEND = values["powerReducedEND"+ID];
|
|
const strengthEND = parseInt(values.hiddenBasicEndurance)||0;
|
|
var increasedENDLimitation = increasedENDlimitation(powerReducedEND);
|
|
var powerLimitations = (parseFloat(values["powerLimitations"+ID])||0) + increasedENDLimitation;
|
|
|
|
let powerActiveCost=0;
|
|
let powerModifiedCost=0;
|
|
let powerRealCost=0;
|
|
let powerEND=0;
|
|
|
|
powerPreReducedEndActiveCost = powerBaseCost * (1+powerAdvantages);
|
|
powerEND = calculatePowerEND(powerPreReducedEndActiveCost, powerReducedEND);
|
|
powerActiveCost = calculateActiveCost(powerBaseCost, powerAdvantages, powerReducedEND);
|
|
powerActiveCost = heroRoundLow(powerActiveCost);
|
|
thePowerDice = thePowerDice.replace(/[^\ddD\\+\\-]/g,"");
|
|
|
|
if (powerBaseCost != 0) {
|
|
switch (powerType) {
|
|
case 'variableSlot': powerRealCost=powerActiveCost/(1+powerLimitations)/5;
|
|
powerRealCost=Math.max(1, heroRoundLow(powerRealCost) );
|
|
break;
|
|
case 'fixedSlot': powerRealCost=powerActiveCost/(1+powerLimitations)/10;
|
|
powerRealCost=Math.max(1, heroRoundLow(powerRealCost) );
|
|
break;
|
|
default: powerRealCost=powerActiveCost/(1+powerLimitations);
|
|
powerRealCost=Math.max(1, heroRoundLow(powerRealCost) );
|
|
}
|
|
} else {
|
|
powerActiveCost=0;
|
|
powerEND=0;
|
|
}
|
|
|
|
// Add strength END to HTH attacks.
|
|
if (addStrengthEND) {
|
|
powerEND += strengthEND;
|
|
}
|
|
|
|
var attributes = new Object();
|
|
attributes["powerActiveCost"+ID] = powerActiveCost;
|
|
attributes["powerEND"+ID] = powerEND;
|
|
attributes["powerCP"+ID] = powerRealCost;
|
|
attributes["hiddenPowerDice"+ID] = thePowerDice;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* Use Power XX Endurance */
|
|
arrayOf(maxPowerNum).forEach(num => {
|
|
var powerId = String(num).padStart(2,'0');
|
|
on("clicked:buttonPowerEND"+powerId, function() {
|
|
getAttrs(["powerEND"+powerId], function(values) {
|
|
subtractEndurance(parseInt(values["powerEND"+powerId]));
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* Activate Power XX */
|
|
arrayOf(maxPowerNum).forEach(num => {
|
|
var powerId = String(num).padStart(2,'0');
|
|
on("clicked:powerRoll"+powerId, function() {
|
|
getAttrs(["displayDegreeOfSuccess", "optionD6MinusOne", "whisperToGM", "character_title", "displayDegreeOfSuccess", "showPowerDescriptions", "currentDCV", "optionAutoSubtractEND", "powerName"+powerId, "powerEffect"+powerId, "powerStunMod"+powerId, "powerActivate"+powerId, "powerAttack"+powerId, "powerDamageAdvantage"+powerId, "powerAoE"+powerId, "powerEND"+powerId, "powerDamageType"+powerId, "hiddenPowerDice"+powerId, "powerDCV"+powerId, "powerRMod"+powerId, "powerCSL", "rangeToTarget", "rangeOCVpenalty", "checkBrace", "checkSet", "powerManeuver", "dingbat", "ocvNet", "omcvNet", "dmcvNet", "targetOCVpenalty"], function(values) {
|
|
var attributes = new Object();
|
|
|
|
var theRoll = values.whisperToGM||"";
|
|
const dispDoS = (values.displayDegreeOfSuccess === "on") ? true : false;
|
|
let theSign = (values.optionD6MinusOne === "on") ? -1 : 1;
|
|
const showDesc = (values.showPowerDescriptions === "on") ? true : false;
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const lesserDingbat = " ⬩ ";
|
|
const effect = values["powerEffect" + powerId].toLowerCase();
|
|
let damageLabel = "Result";
|
|
let subtractEND = (values.optionAutoSubtractEND === "on") ? true : false;
|
|
let subtractENDAmt = parseInt(values["powerEND"+powerId])||0;
|
|
let netDCV = parseInt(values["currentDCV"])||3;
|
|
let halfDCV = false;
|
|
let netOCV = parseInt(values["ocvNet"])||3;
|
|
let penaltyOCV = parseInt(values["targetOCVpenalty"])||0;
|
|
let modDCV = 0;
|
|
let modDC = 0;
|
|
let theAdvantage = parseFloat(values["powerDamageAdvantage"+powerId])||0;
|
|
let damageObject = {};
|
|
let damageLevels = Math.max(0, (parseInt(values.powerCSL/2)||0) );
|
|
let needsActivation = (values["powerActivate"+powerId] === "on") ? true : false;
|
|
let isAttack = (values["powerAttack"+powerId] === "on") ? true : false;
|
|
let isMental = false;
|
|
let isAoE = (values["powerAoE"+powerId] === "on") ? true : false;
|
|
let isNormal = true;
|
|
|
|
// Modifiers
|
|
let isSet = (values.checkSet === "on") ? true : false;
|
|
let isBraced = (values.checkBrace === "on") ? true : false;
|
|
let isSpecialDamage = false;
|
|
let braceMod = 0;
|
|
let isRanged = (values.rangeToTarget > 8) ? true : false;
|
|
let theRangePenalty = parseInt(values.rangeOCVpenalty)||0;
|
|
let hasRangePenalty = (theRangePenalty > 0) ? true : false;
|
|
|
|
// Range Mod
|
|
switch (values["powerRMod"+powerId]) {
|
|
case 'zero': theRangePenalty = 0;
|
|
hasRangePenalty = false;
|
|
break;
|
|
case 'half': theRangePenalty = Math.round(theRangePenalty/2);
|
|
break;
|
|
default: break;
|
|
}
|
|
|
|
// Modify DCV if needed.
|
|
switch (values["powerDCV"+powerId]) {
|
|
case 'zero': netDCV = 0;
|
|
break;
|
|
case 'half': halfDCV = true;
|
|
break;
|
|
default: break;
|
|
}
|
|
|
|
// Braced modifiers.
|
|
if (isBraced) {
|
|
braceMod = 2;
|
|
halfDCV = true;
|
|
}
|
|
|
|
// Establish damage and attack types.
|
|
switch (values["powerDamageType"+powerId]) {
|
|
case 'killing': attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenIsMental = "false";
|
|
isNormal = false;
|
|
modDC += damageLevels;
|
|
break;
|
|
case 'HKA': attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenIsMental = "false";
|
|
isNormal = false;
|
|
modDC += damageLevels;
|
|
break;
|
|
case 'normal': attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenIsMental = "false";
|
|
modDC += damageLevels;
|
|
break;
|
|
case 'HTH': attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenIsMental = "false";
|
|
modDC += damageLevels;
|
|
break;
|
|
case 'mental': attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsPower = "true";
|
|
attributes.hiddenIsMental = "true";
|
|
attributes.powerCSL = 0;
|
|
isMental = true;
|
|
netOCV = parseInt(values["omcvNet"])||0;
|
|
netDCV = parseInt(values["dmcvNet"])||0;
|
|
break;
|
|
default: attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsPower = "true";
|
|
attributes.hiddenIsMental = "false";
|
|
attributes.powerCSL = 0;
|
|
}
|
|
|
|
// Apply maneuver modifiers.
|
|
damageObject = createDamageObject(values["hiddenPowerDice" + powerId], isNormal, theAdvantage);
|
|
|
|
if (values.powerManeuver === "haymaker") {
|
|
modDCV += -5;
|
|
|
|
// Check for unusual haymakers as per 6E2 69.
|
|
if (effect.includes("drain")) {
|
|
damageObject.d6 += 2;
|
|
isSpecialDamage = true;
|
|
} else if (effect.includes("entangle")) {
|
|
damageObject.d6 += 2;
|
|
isSpecialDamage = true;
|
|
} else if (effect.includes("flash")) {
|
|
damageObject.d6 += 4;
|
|
isSpecialDamage = true;
|
|
} else if (effect.includes("mental blast")) {
|
|
damageObject.d6 += 2;
|
|
isSpecialDamage = true;
|
|
} else if (effect.includes("mind control")) {
|
|
damageObject.d6 += 4;
|
|
isSpecialDamage = true;
|
|
} else if (effect.includes("telekinesis")) {
|
|
if (damageObject.d6 !== 0) {
|
|
damageObject.d6 += 2;
|
|
if (damageObject.d3 === 1) {
|
|
damageObject.d6 += 1;
|
|
damageObject.d3 = 0;
|
|
} else {
|
|
damageObject.d3 = 1;
|
|
}
|
|
} else {
|
|
damageObject.adds += 13;
|
|
}
|
|
isSpecialDamage = true;
|
|
} else if (effect.includes("transform")) {
|
|
if (effect.includes("major")) {
|
|
damageObject.d6 += 4;
|
|
} else if (effect.includes("severe")) {
|
|
damageObject.d6 += 1;
|
|
damageObject.d3 += 1;
|
|
damageObject.pip += 1;
|
|
} else {
|
|
damageObject.d6 += 6;
|
|
}
|
|
isSpecialDamage = true;
|
|
} else if (values["powerDamageType"+powerId] !== "power") {
|
|
modDC += 4;
|
|
} else {
|
|
// This shouldn't be a haymaker.
|
|
modDCV += 5;
|
|
attributes.powerManeuver = "strike";
|
|
}
|
|
} else if (values.powerManeuver === "multipleAttack") {
|
|
halfDCV = true;
|
|
} else {
|
|
// Defaults are fine.
|
|
}
|
|
|
|
// Assign damage dice.
|
|
if (isSpecialDamage) {
|
|
attributes.hiddenDamage = standardDamageString(damageObject.d6, damageObject.d3, damageObject.pip, damageObject.adds);
|
|
} else if (modDC !== 0) {
|
|
// If the power is of the form xd6-1 ignore optionMinusOne.
|
|
if (damageObject.pip === -1) {
|
|
theSign = -1;
|
|
}
|
|
|
|
attributes.hiddenDamage = getDamageDice(damageObject.DC + modDC, damageObject.advantage, damageObject.normal, theSign);
|
|
} else {
|
|
attributes.hiddenDamage = values["hiddenPowerDice" + powerId];
|
|
}
|
|
|
|
// DCV
|
|
netDCV = getNetDCV(netDCV, modDCV, halfDCV);
|
|
|
|
// Hidden attribute send off
|
|
attributes.hiddenDamageType = values["powerDamageType" + powerId];
|
|
attributes.hiddenStunMod = parseInt(values["powerStunMod" + powerId])||0;
|
|
attributes.hiddenMessage = values["powerName"+powerId];
|
|
attributes.hiddenIsAoE = isAoE ? "true" : "false";
|
|
attributes.hiddenIsContest = "false";
|
|
|
|
// Display momentary OCV and DCV values (ephemeral)
|
|
if (isAttack && !isMental) {
|
|
netOCV -= (isAoE ? 0 : 1)*penaltyOCV;
|
|
netOCV += (isSet ? 1 : 0);
|
|
netOCV -= Math.max(0, theRangePenalty - (isBraced ? braceMod : 0));
|
|
}
|
|
|
|
attributes.ephemeralOCV = netOCV;
|
|
attributes.ephemeralDCV = netDCV;
|
|
|
|
// Send changes for use with damage roll template functions.
|
|
setAttrs(attributes);
|
|
|
|
theRoll += "&{template:custom-power-attack} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= @{powerName"+powerId+"}" + lesserDingbat + "@{powerEffect"+powerId+"}}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
theRoll += showDesc ? "{{desc=@{powerText"+powerId+"}}} " : "";
|
|
|
|
if (needsActivation) {
|
|
if (dispDoS) {
|
|
theRoll += "{{SUCCESS=[[@{powerSkillRoll"+powerId+"}[Skill]-3d6cf6cs1[Roll]]]}}";
|
|
} else {
|
|
theRoll += "{{Activation Roll=[[3d6cf6cs1[Roll]]] (@{powerSkillRoll"+powerId+"})}}";
|
|
}
|
|
}
|
|
|
|
if (isAttack) {
|
|
if (isMental) {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DMCV=[[11-3d6cf6cs1+@{omcv}[OMCV]+?{OMCV Modifier|0}[Modifiers]-[[" + (isAoE ? 0 : 1) + "]}}";
|
|
} else {
|
|
theRoll += "{{OMCV=[[@{omcv}[OMCV]+?{OMCV Modifier|0}[Modifiers]]]}}-[[" + (isAoE ? 0 : 1) + "]}}+{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
} else if (isRanged && hasRangePenalty) {
|
|
// Keeping Mental CV functionality here if future cases come up where it becomes needed.
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit "+ (isMental ? "DMCV" : "DCV") + "=[[11-3d6cf6cs1" + (isMental ? "+@{omcv}[OMCV]" : "+@{ocv}[OCV]") + (isSet ? "+1[Set]" :"") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]-" + theRangePenalty + "[RangeOCV]" + (isBraced ? "+"+braceMod+"[Braced]" :"") + "+?{" + (isMental ? "MOCV" : "OCV") + " Modifier|0}[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{" + (isMental ? "OMCV=[[@{omcv}[OMCV]" : "OCV=[[@{ocv}[OCV]") + (isSet ? "+1[Set]" :"") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]-" + theRangePenalty + "[RangeOCV]" + (isBraced ? "+"+braceMod+"[Braced]" :"") + "+?{" + (isMental ? "MOCV" : "OCV") + " Modifier|0}[Modifiers]]]}}"+"{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
} else {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit "+ (isMental ? "DMCV" : "DCV") + "=[[11-3d6cf6cs1" + (isMental ? "+@{omcv}[OMCV]" : "+@{ocv}[OCV]") + (isSet ? "+1[Set]" :"") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]" + (isRanged ? "-0[NetRangePenalty]" :"") + "+?{" + (isMental ? "MOCV" : "OCV") + " Modifier|0}[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{" + (isMental ? "OMCV=[[@{omcv}[OMCV]" : "OCV=[[@{ocv}[OCV]") + (isSet ? "+1[Set]" :"") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]" + (isRanged ? "-0[NetRangePenalty]" :"") + "+?{" + (isMental ? "MOCV" : "OCV") + " Modifier|0}[Modifiers]]]}}"+"{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
}
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[@{powerEND"+powerId+"}]] (@{CurrentEND})}}" : "");
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
// Roll activation and effect dice. If the option to auto apply endurance is TRUE, subtract the power's END once from endurance.
|
|
//
|
|
// let theResult = new Object();
|
|
|
|
// Subtract END cost if option checked.
|
|
if (subtractEND) {
|
|
subtractEndurance(subtractENDAmt);
|
|
}
|
|
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Update Tally Bar after change to any Power's CP cost.
|
|
on("change:powerCP01 change:powerCP02 change:powerCP03 change:powerCP04 change:powerCP05 change:powerCP06 change:powerCP07 change:powerCP08 change:powerCP09 change:powerCP10 change:powerCP11 change:powerCP12 change:powerCP13 change:powerCP14 change:powerCP15 change:powerCP16 change:powerCP17 change:powerCP18 change:powerCP19 change:powerCP20", function () {
|
|
sumPowersPerksTalents();
|
|
});
|
|
|
|
|
|
/* -------------- */
|
|
/* Power Movers */
|
|
/* -------------- */
|
|
|
|
arrayOf(maxPowerNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxPowerNum ? 1 : num + 1).padStart(2,'0');
|
|
|
|
swapPowerPositions(lowId, highId);
|
|
});
|
|
|
|
|
|
function swapPowerPositions(lowId, highId) {
|
|
on("clicked:powerDown"+lowId+" clicked:powerUp"+highId, function() {
|
|
getAttrs(["powerName"+lowId, "powerCP"+lowId, "powerType"+lowId, "powerDamageType"+lowId, "powerEffect"+lowId, "powerAttack"+lowId, "powerAoE"+lowId, "powerDCV"+lowId, "powerDice"+lowId, "powerStunMod"+lowId, "powerActivate"+lowId, "powerSkillRoll"+lowId,"powerBaseCost"+lowId, "powerActiveCost"+lowId, "powerAdvantages"+lowId, "powerLimitations"+lowId, "powerReducedEND"+lowId, "powerEND"+lowId,"powerRMod"+lowId, "powerText"+lowId, "powerAction"+lowId, "powerDamageAdvantage"+lowId, "powerName"+highId, "powerCP"+highId, "powerType"+highId, "powerDamageType"+highId, "powerEffect"+highId, "powerAttack"+highId, "powerAoE"+highId, "powerDCV"+highId, "powerDice"+highId, "powerStunMod"+highId, "powerActivate"+highId, "powerSkillRoll"+highId, "powerBaseCost"+highId, "powerActiveCost"+highId, "powerAdvantages"+highId, "powerLimitations"+highId, "powerReducedEND"+highId, "powerEND"+highId, "powerRMod"+highId, "powerText"+highId, "powerAction"+highId, "powerDamageAdvantage"+highId], function(values)
|
|
{
|
|
var attributes = new Object();
|
|
|
|
let theString = (values["powerName"+highId]).replace(/\s/g, '');
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["powerName"+lowId] = "";
|
|
} else {
|
|
attributes["powerName"+lowId] = values["powerName"+highId];
|
|
}
|
|
|
|
theString = (values["powerName"+lowId]).replace(/\s/g, '');
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["powerName"+highId] = "";
|
|
} else {
|
|
attributes["powerName"+highId] = values["powerName"+lowId];
|
|
}
|
|
|
|
theString = (values["powerEffect"+highId]).replace(/\s/g, '');
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["powerEffect"+lowId] = "";
|
|
} else {
|
|
attributes["powerEffect"+lowId] = values["powerEffect"+highId];
|
|
}
|
|
|
|
theString = (values["powerEffect"+lowId]).replace(/\s/g, '');
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["powerEffect"+highId] = "";
|
|
} else {
|
|
attributes["powerEffect"+highId] = values["powerEffect"+lowId];
|
|
}
|
|
|
|
attributes["powerCP"+lowId] = values["powerCP"+highId];
|
|
attributes["powerCP"+highId] = values["powerCP"+lowId];
|
|
attributes["powerAttack"+lowId] = values["powerAttack"+highId];
|
|
attributes["powerAttack"+highId] = values["powerAttack"+lowId];
|
|
attributes["powerAoE"+lowId] = values["powerAoE"+highId];
|
|
attributes["powerAoE"+highId] = values["powerAoE"+lowId];
|
|
attributes["powerDCV"+lowId] = values["powerDCV"+highId];
|
|
attributes["powerDCV"+highId] = values["powerDCV"+lowId];
|
|
attributes["powerType"+lowId] = values["powerType"+highId];
|
|
attributes["powerType"+highId] = values["powerType"+lowId];
|
|
attributes["powerDice"+lowId] = values["powerDice"+highId];
|
|
attributes["powerDice"+highId] = values["powerDice"+lowId];
|
|
attributes["powerStunMod"+lowId] = values["powerStunMod"+highId];
|
|
attributes["powerStunMod"+highId] = values["powerStunMod"+lowId];
|
|
attributes["powerDamageType"+lowId] = values["powerDamageType"+highId];
|
|
attributes["powerDamageType"+highId] = values["powerDamageType"+lowId];
|
|
attributes["powerActivate"+lowId] = values["powerActivate"+highId];
|
|
attributes["powerActivate"+highId] = values["powerActivate"+lowId];
|
|
attributes["powerSkillRoll"+lowId] = values["powerSkillRoll"+highId];
|
|
attributes["powerSkillRoll"+highId] = values["powerSkillRoll"+lowId];
|
|
attributes["powerBaseCost"+lowId] = values["powerBaseCost"+highId];
|
|
attributes["powerBaseCost"+highId] = values["powerBaseCost"+lowId];
|
|
attributes["powerActiveCost"+lowId] = values["powerActiveCost"+highId];
|
|
attributes["powerActiveCost"+highId] = values["powerActiveCost"+lowId];
|
|
attributes["powerAdvantages"+lowId] = values["powerAdvantages"+highId];
|
|
attributes["powerAdvantages"+highId] = values["powerAdvantages"+lowId];
|
|
attributes["powerLimitations"+lowId] = values["powerLimitations"+highId];
|
|
attributes["powerLimitations"+highId] = values["powerLimitations"+lowId];
|
|
attributes["powerReducedEND"+lowId] = values["powerReducedEND"+highId];
|
|
attributes["powerReducedEND"+highId] = values["powerReducedEND"+lowId];
|
|
attributes["powerEND"+lowId] = values["powerEND"+highId];
|
|
attributes["powerEND"+highId] = values["powerEND"+lowId];
|
|
attributes["powerRMod"+lowId] = values["powerRMod"+highId];
|
|
attributes["powerRMod"+highId] = values["powerRMod"+lowId];
|
|
attributes["powerText"+lowId] = values["powerText"+highId];
|
|
attributes["powerText"+highId] = values["powerText"+lowId];
|
|
attributes["powerAction"+lowId] = values["powerAction"+highId];
|
|
attributes["powerAction"+highId] = values["powerAction"+lowId];
|
|
attributes["powerDamageAdvantage"+lowId] = values["powerDamageAdvantage"+highId];
|
|
attributes["powerDamageAdvantage"+highId] = values["powerDamageAdvantage"+lowId];
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
// Power Selection
|
|
arrayOf(upperPowerNum).forEach(num => {
|
|
var button = "power"+String(num).padStart(2,'0');
|
|
on(`clicked:${button}`, function() {
|
|
var attributes = new Object();
|
|
|
|
attributes.upperPowerSelection = button;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(lowerPowerNum).forEach(num => {
|
|
var button = "power"+String(num + 10).padStart(2,'0');
|
|
on(`clicked:${button}`, function() {
|
|
var attributes = new Object();
|
|
|
|
attributes.lowerPowerSelection = button;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
/* Keep selected power slide visible when moved. */
|
|
arrayOf(maxPowerNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxPowerNum ? 1 : num + 1).padStart(2,'0');
|
|
on("clicked:powerDown"+lowId, function() {
|
|
var attributes = new Object();
|
|
|
|
if (Number(lowId) < upperPowerNum) {
|
|
attributes.upperPowerSelection = "power" + highId;
|
|
} else if (Number(lowId) === upperPowerNum) {
|
|
attributes.upperPowerSelection = "power" + lowId;
|
|
attributes.lowerPowerSelection = "power" + highId;
|
|
} else if (Number(lowId) < maxPowerNum) {
|
|
attributes.lowerPowerSelection = "power" + highId;
|
|
} else {
|
|
attributes.upperPowerSelection = "power" + highId;
|
|
attributes.lowerPowerSelection = "power" + lowId;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(maxPowerNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxPowerNum ? 1 : num + 1).padStart(2,'0');
|
|
on("clicked:powerUp"+highId, function() {
|
|
var attributes = new Object();
|
|
|
|
if (Number(highId) === 1) {
|
|
attributes.lowerPowerSelection = "power" + lowId;
|
|
attributes.upperPowerSelection = "power" + highId;
|
|
} else if (Number(lowId) <= upperPowerNum) {
|
|
attributes.upperPowerSelection = "power" + lowId;
|
|
} else if (Number(highId) === upperPowerNum) {
|
|
attributes.lowerPowerSelection = "power" + highId;
|
|
attributes.upperPowerSelection = "power" + lowId;
|
|
} else {
|
|
attributes.lowerPowerSelection = "power" + lowId;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
// Show action buttons for powers with effects
|
|
arrayOf(maxPowerNum).forEach(num => {
|
|
var powerId = String(num).padStart(2,'0');
|
|
on("change:powerEffect"+powerId, function() {
|
|
getAttrs(["powerEffect"+powerId], function(values) {
|
|
var attributes = new Object();
|
|
let testString = (values["powerEffect"+powerId]).toLowerCase();
|
|
let isEmpty = (testString.replace(/\s/g, '') !== '') ? false : true;
|
|
|
|
if ( testString.includes("vpp") ) {
|
|
isEmpty = true;
|
|
} else if ( testString.includes("multipower") ) {
|
|
isEmpty = true;
|
|
}
|
|
|
|
if (isEmpty) {
|
|
attributes["powerAction"+powerId] = "false";
|
|
} else {
|
|
attributes["powerAction"+powerId] = "true";
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* -------------------------------------------------- */
|
|
/* Functions used for skills tab */
|
|
/* -------------------------------------------------- */
|
|
|
|
function calculateLanguageSkillCost(skillFluency, skillLiteracy, enhancerLinguist, literacyCost) {
|
|
var enhancerBonus=0;
|
|
var languageCP=0;
|
|
let literacyCP=0;
|
|
|
|
if (skillLiteracy!=0) {
|
|
literacyCP=literacyCost;
|
|
}
|
|
|
|
if (enhancerLinguist!=0) {
|
|
enhancerBonus=1;
|
|
}
|
|
|
|
switch (skillFluency) {
|
|
case "native": languageCP = literacyCP;
|
|
break;
|
|
|
|
case "nativePlus": languageCP = literacyCP + 1;
|
|
break;
|
|
|
|
case "none": languageCP = literacyCP;
|
|
break;
|
|
|
|
case "basic": languageCP = Math.max(1+literacyCP-enhancerBonus, 1);
|
|
break;
|
|
|
|
case "fluent": languageCP = 2+literacyCP-enhancerBonus;
|
|
break;
|
|
|
|
case "accent": languageCP = 3+literacyCP-enhancerBonus;
|
|
break;
|
|
|
|
case "idiomatic": languageCP = 4+literacyCP-enhancerBonus;
|
|
break;
|
|
|
|
case "imitate": languageCP = 5+literacyCP-enhancerBonus;
|
|
break;
|
|
}
|
|
|
|
return languageCP;
|
|
}
|
|
|
|
|
|
function standardSkillChance(theBaseSkillRoll,skillCP,additionalLevels) {
|
|
var skillCost=3;
|
|
var skillLevelCost=2;
|
|
var theSkillRollChance;
|
|
var theSkillBonus;
|
|
|
|
if (skillCP==0) {
|
|
theSkillRollChance=0;
|
|
} else if (skillCP==1) {
|
|
theSkillRollChance=8;
|
|
} else if (skillCP==2) {
|
|
theSkillRollChance=10;
|
|
} else {
|
|
theSkillBonus=Math.floor((skillCP-skillCost)/skillLevelCost);
|
|
theSkillRollChance=theBaseSkillRoll+theSkillBonus+additionalLevels;
|
|
}
|
|
return theSkillRollChance;
|
|
}
|
|
|
|
|
|
function knowledgeSkillChance(enhancer,skillCP,additionalLevels) {
|
|
// Calculate KS, PS, or AK-type skill roll chance.
|
|
var skillCost=2;
|
|
var skillLevelCost=1;
|
|
var theBaseSkillRoll=11;
|
|
var theSkillBonus=0;
|
|
var theSkillRollChance=0;
|
|
|
|
if (skillCP==0) {
|
|
theSkillRollChance = 0;
|
|
} else if (skillCP==1 && enhancer == 0) {
|
|
theSkillRollChance = 8;
|
|
} else if ( (skillCP>=2) && (enhancer == 0) ) {
|
|
theSkillBonus=skillCP-skillCost;
|
|
theSkillRollChance = theBaseSkillRoll+theSkillBonus+additionalLevels;
|
|
} else {
|
|
skillCost=1;
|
|
theSkillBonus=skillCP-skillCost;
|
|
theSkillRollChance = theBaseSkillRoll+theSkillBonus+additionalLevels;
|
|
}
|
|
return theSkillRollChance;
|
|
}
|
|
|
|
|
|
function knowledgeIntSkillChance(theBaseSkillRoll, enhancer, skillCP, additionalLevels) {
|
|
// Knowledge, Professional, and Science Skills can be purchased as Intelligence-based skills. In such a case
|
|
// this function replaces the more general knowledgeSkillChance(...) function.
|
|
var skillCost=3;
|
|
var skillLevelCost=1;
|
|
var theSkillBonus=0;
|
|
var theSkillRollChance=0;
|
|
|
|
if (skillCP==0) {
|
|
theSkillRollChance = 0;
|
|
} else if (skillCP==1 && enhancer == 0) {
|
|
theSkillRollChance = 8;
|
|
} else if (skillCP==1 && enhancer != 0) {
|
|
theSkillRollChance = 11+additionalLevels; // I.e., a regular Knowledge Skill is the better choice.
|
|
} else if ( (skillCP==2) && (enhancer == 0) ) {
|
|
theSkillRollChance = 11+additionalLevels; // I.e., a regular Knowledge Skill is better than 10- skill proficiency.
|
|
} else if ( (skillCP==3) && (enhancer == 0) ) {
|
|
theSkillBonus=0;
|
|
theSkillRollChance=theBaseSkillRoll+theSkillBonus+additionalLevels;
|
|
} else {
|
|
if (enhancer!=0) {
|
|
skillCost=2;
|
|
}
|
|
theSkillBonus=Math.floor((skillCP-skillCost)/skillLevelCost);
|
|
theSkillRollChance=theBaseSkillRoll+theSkillBonus+additionalLevels;
|
|
}
|
|
return theSkillRollChance;
|
|
}
|
|
|
|
|
|
function specialSkillChance(theBaseSkillRoll, skillCost, skillCP, additionalLevels) {
|
|
// Special skills like Survival and Gambling that categorical base costs.
|
|
// This function replaces the standardSkillChance(intelligence, ... ) function.
|
|
var skillLevelCost = 2;
|
|
var theSkillBonus = 0;
|
|
var theSkillRollChance = 0;
|
|
|
|
if (skillCP < Math.ceil(skillCost/2)) {
|
|
theSkillRollChance = 0;
|
|
} else if (skillCP < skillCost) {
|
|
theSkillRollChance = 8;
|
|
} else if (skillCP >= skillCost) {
|
|
theSkillRollChance = theBaseSkillRoll;
|
|
theSkillBonus = Math.floor( (skillCP - skillCost)/2 );
|
|
|
|
theSkillRollChance += theSkillBonus + additionalLevels;
|
|
}
|
|
|
|
return theSkillRollChance;
|
|
}
|
|
|
|
|
|
function calculateSkillChance(skillType, skillCP, enhancerJack, enhancerSch, enhancerSci, enhancerTrav, strengthChance, dexterityChance, constitutionChance, intelligenceChance, egoChance, presenceChance, interactionSkillLevels, intellectSkillLevels, agilitySkillLevels, bonusLevels) {
|
|
// Calculates the skill roll chance for a general skill.
|
|
//
|
|
// A bit crazy, but all of these variables need to be passed to this function for the the switch function contained below
|
|
// to calculate the skill roll chance for the skill passed to the function.
|
|
|
|
switch (skillType) {
|
|
case "str":
|
|
theSkillRollChance=standardSkillChance( strengthChance,skillCP,bonusLevels);
|
|
break;
|
|
|
|
case "dex":
|
|
theSkillRollChance=standardSkillChance( dexterityChance,skillCP,agilitySkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "con":
|
|
theSkillRollChance=standardSkillChance( constitutionChance,skillCP,bonusLevels);
|
|
break;
|
|
|
|
case "int":
|
|
theSkillRollChance=standardSkillChance( intelligenceChance,skillCP,intellectSkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "ego":
|
|
theSkillRollChance=standardSkillChance( egoChance,skillCP,bonusLevels);
|
|
break;
|
|
|
|
case "pre":
|
|
theSkillRollChance=standardSkillChance( presenceChance ,skillCP, interactionSkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "ps":
|
|
theSkillRollChance=knowledgeSkillChance( enhancerJack, skillCP, bonusLevels);
|
|
break;
|
|
|
|
case "intPS":
|
|
theSkillRollChance=knowledgeIntSkillChance( intelligenceChance, enhancerJack, skillCP, bonusLevels);
|
|
break;
|
|
|
|
case "dexPS":
|
|
theSkillRollChance=knowledgeIntSkillChance( dexterityChance, enhancerJack, skillCP, bonusLevels);
|
|
break;
|
|
|
|
case "ks":
|
|
theSkillRollChance=knowledgeSkillChance( enhancerSch, skillCP, bonusLevels);
|
|
break;
|
|
|
|
case "intKS":
|
|
theSkillRollChance=knowledgeIntSkillChance( intelligenceChance, enhancerSch, skillCP, intellectSkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "ss":
|
|
theSkillRollChance=knowledgeSkillChance( enhancerSci,skillCP,bonusLevels);
|
|
break;
|
|
|
|
case "intSS":
|
|
theSkillRollChance=knowledgeIntSkillChance( intelligenceChance, enhancerSci, skillCP, intellectSkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "ak":
|
|
theSkillRollChance=knowledgeSkillChance( enhancerTrav,skillCP,bonusLevels);
|
|
break;
|
|
|
|
case "intAK":
|
|
theSkillRollChance=knowledgeIntSkillChance( intelligenceChance, enhancerTrav, skillCP, intellectSkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "ck":
|
|
theSkillRollChance=knowledgeSkillChance( enhancerTrav,skillCP,bonusLevels);
|
|
break;
|
|
|
|
case "intCK":
|
|
theSkillRollChance=knowledgeIntSkillChance( intelligenceChance, enhancerTrav, skillCP, intellectSkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "cuk":
|
|
theSkillRollChance=knowledgeSkillChance( enhancerTrav,skillCP,bonusLevels);
|
|
break;
|
|
|
|
case "intCuK":
|
|
theSkillRollChance=knowledgeIntSkillChance( intelligenceChance, enhancerTrav, skillCP, intellectSkillLevels+bonusLevels);
|
|
break;
|
|
|
|
case "everyman":
|
|
theSkillRollChance=8;
|
|
break;
|
|
|
|
case "everymanPS":
|
|
theSkillRollChance=11;
|
|
break;
|
|
|
|
case "other":
|
|
theSkillRollChance=0;
|
|
break;
|
|
|
|
case "sp1":
|
|
theSkillRollChance = specialSkillChance( intelligenceChance, 1, skillCP, intellectSkillLevels+bonusLevels);;
|
|
break;
|
|
|
|
case "sp2":
|
|
theSkillRollChance = specialSkillChance( intelligenceChance, 2, skillCP, intellectSkillLevels+bonusLevels);;
|
|
break;
|
|
|
|
case "sp3":
|
|
theSkillRollChance = specialSkillChance( intelligenceChance, 3, skillCP, intellectSkillLevels+bonusLevels);;
|
|
break;
|
|
|
|
case "sp4":
|
|
theSkillRollChance = specialSkillChance( intelligenceChance, 4, skillCP, intellectSkillLevels+bonusLevels);;
|
|
break;
|
|
|
|
case "sp5":
|
|
theSkillRollChance = specialSkillChance( intelligenceChance, 5, skillCP, intellectSkillLevels+bonusLevels);;
|
|
break;
|
|
|
|
case "sp6":
|
|
theSkillRollChance = specialSkillChance( intelligenceChance, 6, skillCP, intellectSkillLevels+bonusLevels);;
|
|
break;
|
|
|
|
case "group":
|
|
theSkillRollChance=0;
|
|
break;
|
|
|
|
case "none":
|
|
theSkillRollChance=0;
|
|
break;
|
|
|
|
default:
|
|
theSkillRollChance=0;
|
|
}
|
|
|
|
return theSkillRollChance;
|
|
}
|
|
|
|
|
|
/* -------------- */
|
|
/* Skill Movers */
|
|
/* -------------- */
|
|
|
|
arrayOf(maxSkillNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num === maxSkillNum ? 1 : num + 1).padStart(2,'0');
|
|
|
|
on("clicked:skillDown"+lowId+" clicked:skillUp"+highId, function () {
|
|
getAttrs(["skillName"+lowId, "skillName"+highId, "skillType"+lowId, "skillType"+highId, "skillCP"+lowId, "skillCP"+highId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let theString = "";
|
|
|
|
theString = values["skillName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+lowId] = "";
|
|
} else {
|
|
attributes["skillName"+lowId] = values["skillName"+highId];
|
|
}
|
|
|
|
theString = values["skillName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+highId] = "";
|
|
} else {
|
|
attributes["skillName"+highId] = values["skillName"+lowId];
|
|
}
|
|
|
|
attributes["skillType"+lowId] = values["skillType"+highId];
|
|
attributes["skillType"+highId] = values["skillType"+lowId];
|
|
attributes["skillCP"+lowId] = values["skillCP"+highId];
|
|
attributes["skillCP"+highId] = values["skillCP"+lowId];
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* -------------------------- */
|
|
/* Characteristic Rolls */
|
|
/* -------------------------- */
|
|
|
|
var characteristics = ['strength', 'dexterity', 'constitution', 'intelligence', 'ego', 'presence']
|
|
characteristics.forEach(characteristic => {
|
|
on (`clicked:${characteristic}`, (info) => {
|
|
getAttrs(["displayDegreeOfSuccess", "whisperToGM", "character_title", "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var displayName = characteristic.charAt(0).toUpperCase() + characteristic.slice(1);
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
|
|
if (values.displayDegreeOfSuccess != 0) {
|
|
theRoll += "&{template:custom-success-roll} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Uses "+displayName+" }} ";
|
|
|
|
if (characteristic == 'dexterity') {
|
|
theRoll += "{{SUCCESS=[[@{dexterityChance}[Dexterity Chance]+@{weightDexDCVPenalty}[Weight Penalty]-3d6cf6cs1[Roll]+(?{Modifiers|0})[Modifiers]]] }}";
|
|
} else {
|
|
theRoll += "{{SUCCESS=[[@{"+characteristic+"Chance}["+displayName+" Chance]-3d6cf6cs1[Roll]+(?{Modifiers|0})[Modifiers]]] }}";
|
|
}
|
|
} else {
|
|
theRoll += "&{template:custom-success-roll} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Uses "+displayName+" }} ";
|
|
|
|
if (characteristic == 'dexterity') {
|
|
theRoll += "{{Base Chance = [[@{dexterityChance}[Dexterity Chance]+@{weightDexDCVPenalty}[Weight Penalty]+(?{Modifiers|0})[Modifiers]]] }}";
|
|
} else {
|
|
theRoll += "{{Base Chance = [[@{"+characteristic+"Chance}["+displayName+" Chance]+(?{Modifiers|0})[Modifiers]]] }}"
|
|
}
|
|
theRoll += "{{Roll=[[3d6cf6cs1]]}}";
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId,{});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
var perceptionTypes = ['', 'Vision', 'Hearing', 'Smell']
|
|
perceptionTypes.forEach(percType => {
|
|
var subtitleExt = (percType != '') ? "@{perception"+percType+"Label}" : "";
|
|
on (`clicked:perceptionRoll${percType}`, (info) => {
|
|
getAttrs(["displayDegreeOfSuccess", "whisperToGM", "character_title", "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const lesserDingbat = (percType != '') ? " ⬩ " : "";
|
|
|
|
if (values.displayDegreeOfSuccess != 0) {
|
|
theRoll += "&{template:custom-success-roll} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Uses Perception" + lesserDingbat + subtitleExt + " }} ";
|
|
theRoll += "{{SUCCESS= [[@{intelligenceChance}[Intelligence Chance]+@{enhancedPerceptionModifier}[Perception Modifier]-3d6cf6cs1[Roll]";
|
|
if (percType != '') {
|
|
theRoll += "+@{perceptionModifier" + percType + "}[@{perception" + percType + "Label} Modifier]";
|
|
}
|
|
theRoll += "+(?{Modifiers|0})[Modifiers]]]}}"
|
|
} else {
|
|
theRoll += "&{template:custom} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Uses Perception" + lesserDingbat + subtitleExt + " }} ";
|
|
theRoll += "{{Base Chance = [[@{intelligenceChance}[Intelligence Chance]+@{enhancedPerceptionModifier}[Perception Modifier]";
|
|
if (percType != '') {
|
|
theRoll += "+@{perceptionModifier" + percType + "}[@{perception" + percType + "Label} Modifier]";
|
|
}
|
|
theRoll += "+(?{Modifiers|0})[Modifiers]]]}} {{Roll=[[3d6cf6cs1]]}}"
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId,{});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(maxSkillNum).forEach(num => {
|
|
var skillId = String(num).padStart(2,'0');
|
|
on(`clicked:testSkill${skillId}`, (info) => {
|
|
getAttrs(["displayDegreeOfSuccess", "whisperToGM", "character_title", "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
|
|
if (values.displayDegreeOfSuccess != 0) {
|
|
theRoll += "&{template:custom-success-roll} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title} }} ";
|
|
theRoll += "{{subtitle= Uses @{skillName" + skillId + "}}} ";
|
|
theRoll += "{{SUCCESS=[[@{skillRollChance" + skillId + "}[Skill Chance]-3d6cf6cs1[Roll]+(?{Modifiers|0})[Modifiers]]] }}";
|
|
} else {
|
|
theRoll += "&{template:custom} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title} }} ";
|
|
theRoll += "{{subtitle= Uses @{skillName" + skillId + "}}} ";
|
|
theRoll += "{{Base Chance = [[@{skillRollChance" + skillId + "}[Skill Chance]+(?{Modifiers|0})[Modifiers]]] }} {{Roll=[[3d6cf6cs1]]}}";
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId,{});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* ------------------- */
|
|
/* Skill Updaters */
|
|
/* ------------------- */
|
|
|
|
/* General Skills */
|
|
arrayOf(maxSkillNum).forEach(num => {
|
|
var skillId = String(num).padStart(2,'0');
|
|
var priorSkillId1 = (num-1 > 0) ? String(num-1).padStart(2,'0') : false;
|
|
var priorSkillId2 = (num-2 > 0) ? String(num-2).padStart(2,'0') : false;
|
|
var priorSkillId3 = (num-3 > 0) ? String(num-3).padStart(2,'0') : false;
|
|
|
|
on("change:skillType"+skillId+" change:skillCP"+skillId+(priorSkillId1 !== false ? " change:skillType"+priorSkillId1 : "")+(priorSkillId1 !== false ? " change:skillCP"+priorSkillId1 : "")+(priorSkillId2 !== false ? " change:skillType"+priorSkillId2 : "")+(priorSkillId2 !== false ? " change:skillCP"+priorSkillId2 : "")+(priorSkillId3 !== false ? " change:skillType"+priorSkillId3 : "")+(priorSkillId3 !== false ? " change:skillCP"+priorSkillId3 : "")+" change:enhancerJack change:enhancerSch change:enhancerSci change:enhancerTrav change:strengthChance change:dexterityChance change:constitutionChance change:intelligenceChance change:egoChance change:presenceChance change:interactionLevels change:intellectLevels change:agilityLevels change:noncombatLevels change:overallLevels change:useVehicleAttributes", function() {
|
|
getAttrs(["skillType"+skillId, (priorSkillId1 !== false ? "skillType"+priorSkillId1 : ""), (priorSkillId1 !== false ? "skillCP"+priorSkillId1 : ""), (priorSkillId2 !== false ? "skillType"+priorSkillId2 : ""), (priorSkillId2 !== false ? "skillCP"+priorSkillId2 : ""), (priorSkillId3 !== false ? "skillType"+priorSkillId3 : ""), (priorSkillId3 !== false ? "skillCP"+priorSkillId3 : ""), "skillCP"+skillId, "enhancerJack", "enhancerSch", "enhancerSci", "enhancerTrav", "strengthChance", "dexterityChance", "constitutionChance", "intelligenceChance", "egoChance", "presenceChance", "interactionLevels", "intellectLevels", "agilityLevels", "noncombatLevels", "overallLevels", "useVehicleAttributes"], function(values) {
|
|
var attributes = new Object();
|
|
const isVehicle = (values.useVehicleAttributes === "on" ) ? true : false;
|
|
|
|
let skillRollChance = 0;
|
|
let bonusLevels = (parseInt(values.noncombatLevels)||0) + (parseInt(values.overallLevels)||0);
|
|
let groupBonusLevels = [0, 0, 0];
|
|
|
|
if (values["skillType"+skillId] === "group") {
|
|
skillRollChance = 0;
|
|
attributes["selectSkillState"+skillId] = "1";
|
|
} else {
|
|
|
|
// Look for preceding group skills.
|
|
for (let i=1; i <= 3; i++) {
|
|
if (i < num) {
|
|
groupBonusLevels[i] = (values["skillType"+String(num-i).padStart(2,'0')] === "group") ? Math.floor(parseInt(values["skillCP"+String(num-i).padStart(2,'0')])/3) : 0;
|
|
}
|
|
}
|
|
|
|
// Determine skill chance.
|
|
if (isVehicle) {
|
|
skillRollChance = calculateSkillChance(values["skillType"+skillId], (parseInt(values["skillCP"+skillId])||0), values.enhancerJack, values.enhancerSch, values.enhancerSci, values.enhancerTrav, (parseInt(values.strengthChance)||9), (parseInt(values.dexterityChance)||9), 9, 9, 9, 9, (parseInt(values.interactionLevels)||0), (parseInt(values.intellectLevels)||0), (parseInt(values.agilityLevels)||0), bonusLevels + Math.max.apply(null, groupBonusLevels));
|
|
} else {
|
|
skillRollChance = calculateSkillChance(values["skillType"+skillId], (parseInt(values["skillCP"+skillId])||0), values.enhancerJack, values.enhancerSch, values.enhancerSci, values.enhancerTrav, (parseInt(values.strengthChance)||9), (parseInt(values.dexterityChance)||9), (parseInt(values.constitutionChance)||9), (parseInt(values.intelligenceChance)||9), (parseInt(values.egoChance)||9), (parseInt(values.presenceChance)||9), (parseInt(values.interactionLevels)||0), (parseInt(values.intellectLevels)||0), (parseInt(values.agilityLevels)||0), bonusLevels + Math.max.apply(null, groupBonusLevels));
|
|
}
|
|
|
|
attributes["selectSkillState"+skillId] = groupBonusLevels.every(currentValue => currentValue === 0) ? "0" : "2";
|
|
}
|
|
|
|
attributes["skillRollChance"+skillId] = skillRollChance;
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:skillCP01 change:skillCP02 change:skillCP03 change:skillCP04 change:skillCP05 change:skillCP06 change:skillCP07 change:skillCP08 change:skillCP09 change:skillCP10", function() {
|
|
// Subtotal skill costs of the first ten skills.
|
|
|
|
getAttrs(["skillCP01", "skillCP02", "skillCP03", "skillCP04", "skillCP05", "skillCP06", "skillCP07", "skillCP08", "skillCP09", "skillCP10"], function(values) {
|
|
|
|
// Skill Set 1 total character point cost
|
|
let setSkillsCost=(parseInt(values.skillCP01)||0)+(parseInt(values.skillCP02)||0)+(parseInt(values.skillCP03)||0)+(parseInt(values.skillCP04)||0)+(parseInt(values.skillCP05)||0)+(parseInt(values.skillCP06)||0)+(parseInt(values.skillCP07)||0)+(parseInt(values.skillCP08)||0)+(parseInt(values.skillCP09)||0)+(parseInt(values.skillCP10)||0);
|
|
|
|
// Assign calculated skill rolls.
|
|
setAttrs({
|
|
"hiddenSet1SkillsCost":setSkillsCost
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:skillCP11 change:skillCP12 change:skillCP13 change:skillCP14 change:skillCP15 change:skillCP16 change:skillCP17 change:skillCP18 change:skillCP19 change:skillCP20", function() {
|
|
// Subtotal skill costs of the second set of ten skills.
|
|
|
|
getAttrs(["skillCP11", "skillCP12", "skillCP13", "skillCP14", "skillCP15", "skillCP16", "skillCP17", "skillCP18", "skillCP19", "skillCP20"], function(values) {
|
|
|
|
// Skill Set 2 total character point cost
|
|
let setSkillsCost=(parseInt(values.skillCP11)||0)+(parseInt(values.skillCP12)||0)+(parseInt(values.skillCP13)||0)+(parseInt(values.skillCP14)||0)+(parseInt(values.skillCP15)||0)+(parseInt(values.skillCP16)||0)+(parseInt(values.skillCP17)||0)+(parseInt(values.skillCP18)||0)+(parseInt(values.skillCP19)||0)+(parseInt(values.skillCP20)||0);
|
|
|
|
// Assign calculated skill rolls.
|
|
setAttrs({
|
|
"hiddenSet2SkillsCost":setSkillsCost
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:skillCP21 change:skillCP22 change:skillCP23 change:skillCP24 change:skillCP25 change:skillCP26 change:skillCP27 change:skillCP28 change:skillCP29 change:skillCP30", function() {
|
|
// Subtotal skill costs of the third set of ten skills.
|
|
|
|
getAttrs(["skillCP21", "skillCP22", "skillCP23", "skillCP24", "skillCP25", "skillCP26", "skillCP27", "skillCP28", "skillCP29", "skillCP30"], function(values) {
|
|
|
|
// Skill Set 3 total character point cost
|
|
let setSkillsCost=(parseInt(values.skillCP21)||0)+(parseInt(values.skillCP22)||0)+(parseInt(values.skillCP23)||0)+(parseInt(values.skillCP24)||0)+(parseInt(values.skillCP25)||0)+(parseInt(values.skillCP26)||0)+(parseInt(values.skillCP27)||0)+(parseInt(values.skillCP28)||0)+(parseInt(values.skillCP29)||0)+(parseInt(values.skillCP30)||0);
|
|
|
|
// Assign calculated skill rolls.
|
|
setAttrs({
|
|
"hiddenSet3SkillsCost":setSkillsCost
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:skillCP31 change:skillCP32 change:skillCP33 change:skillCP34 change:skillCP35 change:skillCP36 change:skillCP37 change:skillCP38 change:skillCP39 change:skillCP40", function() {
|
|
// Subtotal skill costs of the fourth set of ten skills.
|
|
|
|
getAttrs(["skillCP31", "skillCP32", "skillCP33", "skillCP34", "skillCP35", "skillCP36", "skillCP37", "skillCP38", "skillCP39", "skillCP40"], function(values) {
|
|
|
|
// Skill Set 4 total character point cost
|
|
let setSkillsCost=(parseInt(values.skillCP31)||0)+(parseInt(values.skillCP32)||0)+(parseInt(values.skillCP33)||0)+(parseInt(values.skillCP34)||0)+(parseInt(values.skillCP35)||0)+(parseInt(values.skillCP36)||0)+(parseInt(values.skillCP37)||0)+(parseInt(values.skillCP38)||0)+(parseInt(values.skillCP39)||0)+(parseInt(values.skillCP40)||0);
|
|
|
|
// Assign calculated skill rolls.
|
|
setAttrs({
|
|
"hiddenSet4SkillsCost":setSkillsCost
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on("change:skillCP41 change:skillCP42 change:skillCP43 change:skillCP44 change:skillCP45 change:skillCP46 change:skillCP47 change:skillCP48 change:skillCP49 change:skillCP50", function() {
|
|
// Subtotal skill costs of the fifth set of ten skills.
|
|
|
|
getAttrs(["skillCP41", "skillCP42", "skillCP43", "skillCP44", "skillCP45", "skillCP46", "skillCP47", "skillCP48", "skillCP49", "skillCP50"], function(values) {
|
|
|
|
// Skill Set 5 total character point cost
|
|
let setSkillsCost=(parseInt(values.skillCP41)||0)+(parseInt(values.skillCP42)||0)+(parseInt(values.skillCP43)||0)+(parseInt(values.skillCP44)||0)+(parseInt(values.skillCP45)||0)+(parseInt(values.skillCP46)||0)+(parseInt(values.skillCP47)||0)+(parseInt(values.skillCP48)||0)+(parseInt(values.skillCP49)||0)+(parseInt(values.skillCP50)||0);
|
|
|
|
// Assign calculated skill rolls.
|
|
setAttrs({
|
|
"hiddenSet5SkillsCost":setSkillsCost
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* Combat Skills */
|
|
on("change:skillLevels61 change:skillType61 change:skillLevels62 change:skillType62 change:skillLevels63 change:skillType63 change:skillLevels64 change:skillType64 change:skillLevels65 change:skillType65 change:skillLevels66 change:skillType66 change:skillLevels67 change:skillType67 change:skillLevels68 change:skillType68 change:skillLevels69 change:skillType69 change:skillLevels70 change:skillType70 change:skillLevels71 change:skillType71 change:skillLevels72 change:skillType72 change:skillLevels73 change:skillLevels74 change:skillLevels75 change:optionFewerLanguages", function () {
|
|
//
|
|
// Calculation of combat skill costs is based on many user selections.
|
|
// If the skill is a weapon familiarity, the cost is either 1 CP (WF1) or 2 CP (WF2).
|
|
// Weapon Elements (ELM) cost 1 point category. We'll count them as a type of level.
|
|
// If the selection is a skill level, the cost is determined by number of levels and the scope (single: 2, small group: 3, or large group: 5).
|
|
// The costs of general combat skills are calculated by the function calculateCombatSkillCost(..).
|
|
// Skill level costs for all HTH, all ranged, and all combat are calculated here without the calculateCombatSkillCost(..).
|
|
// optionFewerLanguages, when true, ignores the last five language skills and instead counts extra combat skills.
|
|
|
|
getAttrs(["skillLevels61", "skillType61", "skillLevels62", "skillType62", "skillLevels63", "skillType63", "skillLevels64", "skillType64", "skillLevels65", "skillType65", "skillLevels66", "skillType66", "skillLevels67", "skillType67", "skillLevels68", "skillType68", "skillLevels69", "skillType69", "skillLevels70", "skillType70", "skillLevels71", "skillType71", "skillLevels72", "skillType72", "skillLevels73", "skillLevels74", "skillLevels75", "optionFewerLanguages"], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let skillId = "";
|
|
let tempCost = 0;
|
|
let combatSkillsCost = 0;
|
|
let startCount = maxSkillNum + reserveSkillNum + 1;
|
|
let endCount = maxSkillNum + reserveSkillNum + baseCombatSkillNum + ( (values.optionFewerLanguages === "on") ? flexSkillNum : 0 );
|
|
|
|
for (let i = startCount; i <= endCount; i++) {
|
|
// General combat skills with costs determined by their skill type or levels.
|
|
skillId = String(i).padStart(2,'0');
|
|
tempCost = calculateCombatSkillCost(values["skillType"+skillId]||"none", (parseInt(values["skillLevels"+skillId])||0) );
|
|
combatSkillsCost += tempCost;
|
|
attributes["skillCP"+skillId] = tempCost;
|
|
}
|
|
|
|
// Skill 73: All HTH Combat Levels cost 8 CP each.
|
|
tempCost = 8*(parseInt(values.skillLevels73)||0);
|
|
attributes.skillCP73 = tempCost;
|
|
combatSkillsCost += tempCost;
|
|
|
|
// Skill 74: All Range Combat Levels cost 8 CP each.
|
|
tempCost = 8*(parseInt(values.skillLevels74)||0);
|
|
attributes.skillCP74 = tempCost;
|
|
combatSkillsCost += tempCost;
|
|
|
|
// Skill 75: All Combat Levels cost 10 CP each.
|
|
tempCost = 10*(parseInt(values.skillLevels75)||0);
|
|
attributes.skillCP75 = tempCost;
|
|
combatSkillsCost += tempCost;
|
|
|
|
attributes.hiddenCombatSkillsCost = combatSkillsCost;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function calculateCombatSkillCost(skillType, numberOfLevels) {
|
|
// Used to calculate costs of general combat skill and familiarities.
|
|
let skillBaseCost=0;
|
|
let skillLevelCost=0;
|
|
|
|
switch (skillType) {
|
|
case "none": skillLevelCost=0;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "Fam1": skillLevelCost=0;
|
|
skillBaseCost = 1;
|
|
break;
|
|
|
|
case "Fam2": skillLevelCost=0;
|
|
skillBaseCost = 2;
|
|
break;
|
|
|
|
case "ELM": skillLevelCost=1;
|
|
skillBaseCost = 1;
|
|
break;
|
|
|
|
case "CSL2": skillLevelCost=2;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "CSL3": skillLevelCost=3;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "CSL5": skillLevelCost=5;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "CSL8": skillLevelCost=8;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "MCSL1": skillLevelCost=1;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "MCSL3": skillLevelCost=3;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "MCSL6": skillLevelCost=6;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "PSL1": skillLevelCost=1;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "PSL2": skillLevelCost=2;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
case "PSL3": skillLevelCost=3;
|
|
skillBaseCost = 0;
|
|
break;
|
|
|
|
default: skillLevelCost=0;
|
|
skillBaseCost = 0;
|
|
break;
|
|
}
|
|
return skillBaseCost+numberOfLevels*skillLevelCost;
|
|
}
|
|
|
|
|
|
/* ------------------- */
|
|
/* Combat skill movers */
|
|
/* ------------------- */
|
|
|
|
arrayOfRange(maxSkillNum + reserveSkillNum + 1, maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum, 1).forEach(num => {
|
|
|
|
// const startSkill = maxSkillNum + reserveSkillNum + 1;
|
|
// const endSkill = maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum;
|
|
|
|
let swapLow = String(num).padStart(2,'0');
|
|
let swapHigh = String(num === maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum ? maxSkillNum + reserveSkillNum + 1 : num + 1).padStart(2,'0');
|
|
|
|
swapCombatSkillPositions(swapLow, swapHigh);
|
|
});
|
|
|
|
|
|
function swapCombatSkillPositions(lowId, highId) {
|
|
on("clicked:skillDown"+lowId+" clicked:skillUp"+highId, function() {
|
|
|
|
// We need to account for optionFewerLanguages. When false, the last five skills need to be skipped.
|
|
const startId = String(maxSkillNum + reserveSkillNum + 1).padStart(2,'0');
|
|
const optionId = String(maxSkillNum + reserveSkillNum + baseCombatSkillNum).padStart(2,'0');
|
|
|
|
getAttrs(["skillName"+lowId, "skillType"+lowId, "skillLevels"+lowId, "skillCP"+lowId, "skillName"+highId, "skillType"+highId, "skillLevels"+highId, "skillCP"+highId, "skillName"+startId, "skillType"+startId, "skillLevels"+startId, "skillCP"+startId, "skillName"+optionId, "skillType"+optionId, "skillLevels"+optionId, "skillCP"+optionId, "optionFewerLanguages", "treasures"], function(values) {
|
|
|
|
var attributes = new Object();
|
|
const option = (values.optionFewerLanguages === "on") ? true : false;
|
|
let theString = "";
|
|
|
|
if ((!option) && (highId === startId)) {
|
|
theString = values["skillName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+optionId] = "";
|
|
} else {
|
|
attributes["skillName"+optionId] = values["skillName"+highId];
|
|
}
|
|
|
|
theString = values["skillName"+optionId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+highId] = "";
|
|
} else {
|
|
attributes["skillName"+highId] = values["skillName"+optionId];
|
|
}
|
|
|
|
attributes["skillType"+optionId] = values["skillType"+highId];
|
|
attributes["skillType"+highId] = values["skillType"+optionId];
|
|
attributes["skillLevels"+optionId] = values["skillLevels"+highId];
|
|
attributes["skillLevels"+highId] = values["skillLevels"+optionId];
|
|
attributes["skillCP"+optionId] = values["skillCP"+highId];
|
|
attributes["skillCP"+highId] = values["skillCP"+optionId];
|
|
} else if ((!option) && (lowId === optionId)) {
|
|
theString = values["skillName"+startId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+lowId] = "";
|
|
} else {
|
|
attributes["skillName"+lowId] = values["skillName"+startId];
|
|
}
|
|
|
|
theString = values["skillName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+startId] = "";
|
|
} else {
|
|
attributes["skillName"+startId] = values["skillName"+lowId];
|
|
}
|
|
|
|
attributes["skillType"+lowId] = values["skillType"+startId];
|
|
attributes["skillType"+startId] = values["skillType"+lowId];
|
|
attributes["skillLevels"+lowId] = values["skillLevels"+startId];
|
|
attributes["skillLevels"+startId] = values["skillLevels"+lowId];
|
|
attributes["skillCP"+lowId] = values["skillCP"+startId];
|
|
attributes["skillCP"+startId] = values["skillCP"+lowId];
|
|
} else {
|
|
theString = values["skillName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+lowId] = "";
|
|
} else {
|
|
attributes["skillName"+lowId] = values["skillName"+highId];
|
|
}
|
|
|
|
theString = values["skillName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+highId] = "";
|
|
} else {
|
|
attributes["skillName"+highId] = values["skillName"+lowId];
|
|
}
|
|
|
|
attributes["skillType"+lowId] = values["skillType"+highId];
|
|
attributes["skillType"+highId] = values["skillType"+lowId];
|
|
attributes["skillLevels"+lowId] = values["skillLevels"+highId];
|
|
attributes["skillLevels"+highId] = values["skillLevels"+lowId];
|
|
attributes["skillCP"+lowId] = values["skillCP"+highId];
|
|
attributes["skillCP"+highId] = values["skillCP"+lowId];
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
/* Language Skills */
|
|
on("change:enhancerLing change:skillFluency76 change:skillLiteracy76 change:skillFluency77 change:skillLiteracy77 change:skillFluency78 change:skillLiteracy78 change:skillFluency79 change:skillLiteracy79 change:skillFluency80 change:skillLiteracy80 change:skillFluency81 change:skillLiteracy81 change:skillFluency82 change:skillLiteracy82 change:skillFluency83 change:skillLiteracy83 change:skillFluency84 change:skillLiteracy84 change:optionLiteracyCostsPoints change:optionFewerLanguages", function () {
|
|
// Language skills are relatively simple without levels or roll calculations. The linguist enhancer is the only complication.
|
|
// All calculations handled by the function calculateLanguageSkillCost(...).
|
|
// optionFewerLanguages, when true, shifts five language skill over to combat skills.
|
|
|
|
getAttrs(["enhancerLing", "skillFluency76","skillLiteracy76", "skillFluency77", "skillLiteracy77", "skillFluency78", "skillLiteracy78", "skillFluency79", "skillLiteracy79", "skillFluency80", "skillLiteracy80", "skillFluency81", "skillLiteracy81", "skillFluency82", "skillLiteracy82", "skillFluency83", "skillLiteracy83", "skillFluency84", "skillLiteracy84", "optionLiteracyCostsPoints", "optionFewerLanguages"], function(values) {
|
|
var attributes = new Object();
|
|
|
|
const linguist = values.enhancerLing;
|
|
const literacyCost = (values.optionLiteracyCostsPoints === "on") ? 1 : 0;
|
|
let skillId = "";
|
|
let tempCost = 0;
|
|
let languageSkillsCost = 0;
|
|
const startCount = maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + 1;
|
|
const endCount = startCount-1 + maxLanguageSkillNum - ( (values.optionFewerLanguages === "on") ? flexSkillNum : 0 );
|
|
|
|
for (let i = startCount; i <= endCount; i++) {
|
|
// General combat skills with costs determined by their skill type or levels.
|
|
skillId = String(i).padStart(2,'0');
|
|
tempCost = calculateLanguageSkillCost(values["skillFluency"+skillId]||"none", values["skillLiteracy"+skillId], linguist, literacyCost);
|
|
languageSkillsCost += tempCost;
|
|
attributes["skillCP"+skillId] = tempCost;
|
|
}
|
|
|
|
attributes.hiddenLanguageSkillsCost = languageSkillsCost;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
// Show or hide flexed languages and combat skills sections.
|
|
on("change:optionFewerLanguages", function () {
|
|
getAttrs(["optionFewerLanguages"], function(values) {
|
|
|
|
setAttrs({
|
|
"combatSkillsExtension": (values["optionFewerLanguages"] === "on") ? "true" : "false",
|
|
"languageSkillsExtension": (values["optionFewerLanguages"] === "on") ? "false" : "true"
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* --------------------- */
|
|
/* Language skill movers */
|
|
/* --------------------- */
|
|
|
|
arrayOfRange(maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + 1, maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + maxLanguageSkillNum, 1).forEach(num => {
|
|
|
|
let lowId = String(num).padStart(2,'0');
|
|
let highId = String(num === maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + maxLanguageSkillNum ? maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + 1 : num + 1).padStart(2,'0');
|
|
|
|
swapLanguagePositions(lowId, highId);
|
|
});
|
|
|
|
|
|
function swapLanguagePositions(lowId, highId) {
|
|
on("clicked:skillDown"+lowId+" clicked:skillUp"+highId, function() {
|
|
|
|
// We need to account for optionFewerLanguages. When true, the last five skills need to be skipped.
|
|
const startId = String(maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + 1).padStart(2,'0');
|
|
const optionId = String(maxSkillNum + reserveSkillNum + baseCombatSkillNum + maxCombatLevelNum + maxLanguageSkillNum).padStart(2,'0');
|
|
|
|
getAttrs(["skillName"+lowId, "skillFluency"+lowId, "skillLiteracy"+lowId, "skillCP"+lowId, "skillName"+highId, "skillFluency"+highId, "skillLiteracy"+highId, "skillCP"+highId, "skillName"+startId, "skillFluency"+startId, "skillLiteracy"+startId, "skillCP"+startId, "skillName"+optionId, "skillFluency"+optionId, "skillLiteracy"+optionId, "skillCP"+optionId, "optionFewerLanguages"], function(values) {
|
|
|
|
var attributes = new Object();
|
|
let option = (values.optionFewerLanguages === "on") ? true : false;
|
|
let theString = "";
|
|
|
|
if (option && (highId === startId)) {
|
|
theString = values["skillName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+optionId] = "";
|
|
} else {
|
|
attributes["skillName"+optionId] = values["skillName"+highId];
|
|
}
|
|
|
|
theString = values["skillName"+optionId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+highId] = "";
|
|
} else {
|
|
attributes["skillName"+highId] = values["skillName"+optionId];
|
|
}
|
|
|
|
attributes["skillFluency"+optionId] = values["skillFluency"+highId];
|
|
attributes["skillFluency"+highId] = values["skillFluency"+optionId];
|
|
attributes["skillLiteracy"+optionId] = values["skillLiteracy"+highId];
|
|
attributes["skillLiteracy"+highId] = values["skillLiteracy"+optionId];
|
|
attributes["skillCP"+optionId] = values["skillCP"+highId];
|
|
attributes["skillCP"+highId] = values["skillCP"+optionId];
|
|
} else if (option && (lowId === optionId)) {
|
|
theString = values["skillName"+startId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+lowId] = "";
|
|
} else {
|
|
attributes["skillName"+lowId] = values["skillName"+startId];
|
|
}
|
|
|
|
theString = values["skillName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+startId] = "";
|
|
} else {
|
|
attributes["skillName"+startId] = values["skillName"+lowId];
|
|
}
|
|
|
|
attributes["skillFluency"+lowId] = values["skillFluency"+startId];
|
|
attributes["skillFluency"+startId] = values["skillFluency"+lowId];
|
|
attributes["skillLiteracy"+lowId] = values["skillLiteracy"+startId];
|
|
attributes["skillLiteracy"+startId] = values["skillLiteracy"+lowId];
|
|
attributes["skillCP"+lowId] = values["skillCP"+startId];
|
|
attributes["skillCP"+startId] = values["skillCP"+lowId];
|
|
} else {
|
|
theString = values["skillName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+lowId] = "";
|
|
} else {
|
|
attributes["skillName"+lowId] = values["skillName"+highId];
|
|
}
|
|
|
|
theString = values["skillName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["skillName"+highId] = "";
|
|
} else {
|
|
attributes["skillName"+highId] = values["skillName"+lowId];
|
|
}
|
|
|
|
attributes["skillFluency"+lowId] = values["skillFluency"+highId];
|
|
attributes["skillFluency"+highId] = values["skillFluency"+lowId];
|
|
attributes["skillLiteracy"+lowId] = values["skillLiteracy"+highId];
|
|
attributes["skillLiteracy"+highId] = values["skillLiteracy"+lowId];
|
|
attributes["skillCP"+lowId] = values["skillCP"+highId];
|
|
attributes["skillCP"+highId] = values["skillCP"+lowId];
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
// /* Skill Enhancers and wide-scope noncombat levels */
|
|
on("change:enhancerJack change:enhancerLing change:enhancerSch change:enhancerSci change:enhancerTrav change:enhancerWell change:interactionLevels change:intellectLevels change:agilityLevels change:noncombatLevels change:overallLevels", function () {
|
|
// If any of the enhancers or wide-scope noncombat levels change (anything in the lower right skill block) recalculate their costs.
|
|
// Because enhancers lower the costs of other skills and wide-scope levels change the rolls of other other skills, the
|
|
// non-combat skills 01-50 will have their costs and roll chances recalculated as well.
|
|
|
|
updateEnhancerSkillCosts();
|
|
});
|
|
|
|
|
|
function updateEnhancerSkillCosts() {
|
|
getAttrs(["enhancerJack","enhancerLing","enhancerSch","enhancerSci","enhancerTrav","enhancerWell","interactionLevels","intellectLevels","agilityLevels","noncombatLevels","overallLevels"], function(values) {
|
|
|
|
// Check for purchased enhancers and assign costs of 3 CP for each.
|
|
const enhancerJackCost = (values.enhancerJack === "on") ? 3 : 0;
|
|
const enhancerLingCost = (values.enhancerLing === "on") ? 3 : 0;
|
|
const enhancerSchCost = (values.enhancerSch === "on") ? 3 : 0;
|
|
const enhancerSciCost = (values.enhancerSci === "on") ? 3 : 0;
|
|
const enhancerTravCost = (values.enhancerTrav === "on") ? 3 : 0;
|
|
const enhancerWellCost = (values.enhancerWell === "on") ? 3 : 0;
|
|
|
|
// Calculate costs for each wide-scope non-combat level.
|
|
const interactionSkillLevelsCost = (parseInt(values.interactionLevels)||0)*4;
|
|
const intellectSkillLevelsCost = (parseInt(values.intellectLevels)||0)*4;
|
|
const agilitySkillLevelsCost = (parseInt(values.agilityLevels)||0)*6;
|
|
const noncombatSkillLevelsCost = (parseInt(values.noncombatLevels)||0)*10;
|
|
const overallSkillLevelsCost = (parseInt(values.overallLevels)||0)*12;
|
|
|
|
skillEnhancersCost = enhancerJackCost+enhancerLingCost+enhancerSchCost+enhancerSciCost+enhancerTravCost+enhancerWellCost;
|
|
skillLevelsCost = interactionSkillLevelsCost+intellectSkillLevelsCost+agilitySkillLevelsCost+noncombatSkillLevelsCost+overallSkillLevelsCost;
|
|
|
|
setAttrs({
|
|
"enhancerJackCP": enhancerJackCost,
|
|
"enhancerLingCP": enhancerLingCost,
|
|
"enhancerSchCP": enhancerSchCost,
|
|
"enhancerSciCP": enhancerSciCost,
|
|
"enhancerWellCP": enhancerWellCost,
|
|
"enhancerTravCP": enhancerTravCost,
|
|
"interactionLevelsCP": interactionSkillLevelsCost,
|
|
"intellectLevelsCP": intellectSkillLevelsCost,
|
|
"agilityLevelsCP": agilitySkillLevelsCost,
|
|
"noncombatLevelsCP": noncombatSkillLevelsCost,
|
|
"overallLevelsCP": overallSkillLevelsCost,
|
|
"hiddenEnhancerSkillsCost": skillEnhancersCost + skillLevelsCost
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
/* ----------------------------------------------------- */
|
|
/* Martial Skills, which are entered in the Gear Section */
|
|
/* ----------------------------------------------------- */
|
|
|
|
/* martialManeuverCP changes */
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
on(`change:martialManeuverCP${maneuverId}`, function() {
|
|
var maneuverArray = [];
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
maneuverArray.push("martialManeuverCP"+String(num).padStart(2,'0'));
|
|
});
|
|
|
|
getAttrs(maneuverArray, function(values) {
|
|
let totalMartialManeuversCost = 0;
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
totalMartialManeuversCost += parseInt(values["martialManeuverCP"+String(num).padStart(2,'0')])||0;
|
|
})
|
|
|
|
setAttrs({
|
|
"hiddenMartialSkillsCost":totalMartialManeuversCost
|
|
})
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* --------------------------------------------------------------- */
|
|
/* Standard maneuver selection and weapon roll button color states */
|
|
/* --------------------------------------------------------------- */
|
|
const maneuverlist = ["block", "disarm", "dodge", "grab", "grabBy", "haymaker", "moveBy", "moveThrough", "multipleAttack", "set", "shove", "strike", "throw", "trip"];
|
|
|
|
maneuverlist.forEach(button => {
|
|
on(`clicked:${button}`, function() {
|
|
updateWeaponStates(button);
|
|
});
|
|
});
|
|
|
|
function updateWeaponStates(button) {
|
|
getAttrs(["weaponDamageType01", "weaponDamageType02", "weaponDamageType03", "weaponDamageType04", "weaponDamageType05", "weaponDamageType06", "ocvNet", "currentDCV"], function(values) {
|
|
|
|
let weapon01 = "";
|
|
let weapon02 = "";
|
|
let weapon03 = "";
|
|
let weapon04 = "";
|
|
let weapon05 = "";
|
|
let weapon06 = "";
|
|
|
|
if ((button === "strike") || (button === "haymaker") || (button === "multipleAttack") || (button === "moveBy") || (button === "moveThrough")) {
|
|
weapon01 = values.weaponDamageType01;
|
|
weapon02 = values.weaponDamageType02;
|
|
weapon03 = values.weaponDamageType03;
|
|
weapon04 = values.weaponDamageType04;
|
|
weapon05 = values.weaponDamageType05;
|
|
weapon06 = values.weaponDamageType06;
|
|
} else if (button === "block") {
|
|
weapon01 = "defense";
|
|
weapon02 = "defense";
|
|
weapon03 = "defense";
|
|
weapon04 = "defense";
|
|
weapon05 = "defense";
|
|
weapon06 = "defense";
|
|
} else if (button === "disarm") {
|
|
weapon01 = "maneuver";
|
|
weapon02 = "maneuver";
|
|
weapon03 = "maneuver";
|
|
weapon04 = "maneuver";
|
|
weapon05 = "maneuver";
|
|
weapon06 = "maneuver";
|
|
} else {
|
|
weapon01 = "override";
|
|
weapon02 = "override";
|
|
weapon03 = "override";
|
|
weapon04 = "override";
|
|
weapon05 = "override";
|
|
weapon06 = "override";
|
|
}
|
|
|
|
setAttrs({
|
|
"maneuverSelection": button,
|
|
"weaponType01": weapon01,
|
|
"weaponType02": weapon02,
|
|
"weaponType03": weapon03,
|
|
"weaponType04": weapon04,
|
|
"weaponType05": weapon05,
|
|
"weaponType06": weapon06,
|
|
"variableOCVmod": 0,
|
|
"ephemeralOCV": parseInt(values.ocvNet)||0,
|
|
"ephemeralDCV": parseInt(values.currentDCV)||0,
|
|
"checkMultipleAttack": (button === "multipleAttack") ? "on" : 0
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
// Sync the Powers Multiple Attack button with its maneuver card.
|
|
on("change:checkMultipleAttack", function () {
|
|
getAttrs(["checkMultipleAttack"], function(values) {
|
|
if (values.checkMultipleAttack === "on") {
|
|
setAttrs({
|
|
"maneuverSelection": "multipleAttack"
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
/* Update attack roll button coloring state if damage type is changed */
|
|
arrayOf(maxWeaponNum).forEach(num => {
|
|
var weaponId = String(num).padStart(2,'0');
|
|
on(`change:weaponDamageType${weaponId}`, function() {
|
|
getAttrs(["weaponDamageType"+weaponId, "weaponType"+weaponId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
switch (values["weaponDamageType"+weaponId]) {
|
|
case "killing": attributes["weaponType"+weaponId] = "killing";
|
|
break;
|
|
case "normal": attributes["weaponType"+weaponId] = "normal";
|
|
break;
|
|
case "power": attributes["weaponType"+weaponId] = "power";
|
|
break;
|
|
case "mental": attributes["weaponType"+weaponId] = "power";
|
|
break;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* ------------------------------------------------ */
|
|
/* Martial Maneuver Movers and button color changes */
|
|
/* ------------------------------------------------ */
|
|
|
|
|
|
// Update martial maneuver and weapon buttons when a martial maneuver is selected.
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
var button = "martialManeuver"+maneuverId;
|
|
|
|
on(`clicked:${button}`, function() {
|
|
var attributes = new Object();
|
|
|
|
attributes.martialManeuverSelection = button;
|
|
setAttrs(attributes);
|
|
|
|
updateMartialManeuvers(maneuverId);
|
|
});
|
|
});
|
|
|
|
|
|
// Update martial maneuver and weapon buttons when the attack type or damage type is changed.
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
|
|
on("change:martialManeuverType"+maneuverId+" change:martialManeuverNormal"+maneuverId, function() {
|
|
getAttrs(["martialManeuverSelection"], function(values) {
|
|
if (values.martialManeuverSelection === "martialManeuver"+maneuverId) {
|
|
updateMartialManeuvers(maneuverId);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Move maneuvers up or down and keep visible slide visible and with correct roll button colors.
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var lowId = String(num == 1 ? maxManeuverNum : num - 1).padStart(2,'0');
|
|
var highId = String(num).padStart(2,'0');
|
|
|
|
on("clicked:martialManeuverDown"+lowId, function() {
|
|
moveMartialManeuver(lowId, highId, "down");
|
|
|
|
updateMartialManeuvers(lowId);
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxManeuverNum ? 1 : num + 1).padStart(2,'0');
|
|
|
|
on("clicked:martialManeuverUp"+highId, function() {
|
|
moveMartialManeuver(lowId, highId, "up");
|
|
|
|
updateMartialManeuvers(highId);
|
|
});
|
|
});
|
|
|
|
|
|
// Function for exchanging adjacent maneuver positions.
|
|
function moveMartialManeuver(lowId, highId, direction) {
|
|
getAttrs(["martialManeuverName"+lowId, "martialManeuverPhase"+lowId, "martialManeuverCP"+lowId,
|
|
"martialManeuverOCV"+lowId, "martialManeuverDCV"+lowId, "martialManeuverEffect"+lowId, "martialManeuverDamage"+lowId, "martialManeuverDC"+lowId, "martialManeuverStrMod"+lowId, "hiddenMartialManeuverDamage"+lowId, "martialManeuverNormal"+lowId, "martialManeuverType"+lowId, "martialManeuverEndurance"+lowId, "martialManeuverTypeIndicator"+lowId, "martialDamageDisplay"+lowId,"martialManeuverOCVmod"+lowId, "martialManeuverDCVmod"+lowId, "martialManeuverCSLmod"+lowId, "martialManeuverRNGmod"+lowId, "martialManeuverName"+highId, "martialManeuverPhase"+highId, "martialManeuverCP"+highId, "martialManeuverOCV"+highId, "martialManeuverDCV"+highId, "martialManeuverEffect"+highId, "martialManeuverDamage"+highId, "martialManeuverDC"+highId, "martialManeuverStrMod"+highId, "hiddenMartialManeuverDamage"+highId, "martialManeuverNormal"+highId, "martialManeuverType"+highId, "martialManeuverEndurance"+highId, "martialManeuverTypeIndicator"+highId, "martialDamageDisplay"+highId, "martialManeuverOCVmod"+highId, "martialManeuverDCVmod"+highId, "martialManeuverCSLmod"+highId, "martialManeuverRNGmod"+highId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let theString = values["martialManeuverName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["martialManeuverName"+lowId] = "";
|
|
} else {
|
|
attributes["martialManeuverName"+lowId] = values["martialManeuverName"+highId];
|
|
}
|
|
|
|
theString = values["martialManeuverName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["martialManeuverName"+highId] = "";
|
|
} else {
|
|
attributes["martialManeuverName"+highId] = values["martialManeuverName"+lowId];
|
|
}
|
|
|
|
theString = values["martialManeuverEffect"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["martialManeuverEffect"+lowId] = "";
|
|
} else {
|
|
attributes["martialManeuverEffect"+lowId] = values["martialManeuverEffect"+highId];
|
|
}
|
|
|
|
theString = values["martialManeuverEffect"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["martialManeuverEffect"+highId] = "";
|
|
} else {
|
|
attributes["martialManeuverEffect"+highId] = values["martialManeuverEffect"+lowId];
|
|
}
|
|
|
|
theString = values["martialManeuverDamage"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["martialManeuverDamage"+lowId] = "";
|
|
} else {
|
|
attributes["martialManeuverDamage"+lowId] = values["martialManeuverDamage"+highId];
|
|
}
|
|
|
|
theString = values["martialManeuverDamage"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["martialManeuverDamage"+highId] = "";
|
|
} else {
|
|
attributes["martialManeuverDamage"+highId] = values["martialManeuverDamage"+lowId];
|
|
}
|
|
|
|
attributes["martialManeuverPhase"+lowId] = values["martialManeuverPhase"+highId];
|
|
attributes["martialManeuverPhase"+highId] = values["martialManeuverPhase"+lowId];
|
|
attributes["martialManeuverCP"+lowId] = values["martialManeuverCP"+highId];
|
|
attributes["martialManeuverCP"+highId] = values["martialManeuverCP"+lowId];
|
|
attributes["martialManeuverOCV"+lowId] = values["martialManeuverOCV"+highId];
|
|
attributes["martialManeuverOCV"+highId] = values["martialManeuverOCV"+lowId];
|
|
attributes["martialManeuverDCV"+lowId] = values["martialManeuverDCV"+highId];
|
|
attributes["martialManeuverDCV"+highId] = values["martialManeuverDCV"+lowId];
|
|
attributes["martialManeuverNormal"+lowId] = values["martialManeuverNormal"+highId];
|
|
attributes["martialManeuverNormal"+highId] = values["martialManeuverNormal"+lowId];
|
|
attributes["martialManeuverType"+lowId] = values["martialManeuverType"+highId];
|
|
attributes["martialManeuverType"+highId] = values["martialManeuverType"+lowId];
|
|
attributes["martialManeuverTypeIndicator"+lowId] = values["martialManeuverTypeIndicator"+highId];
|
|
attributes["martialManeuverTypeIndicator"+highId] = values["martialManeuverTypeIndicator"+lowId];
|
|
attributes["martialManeuverEndurance"+lowId] = values["martialManeuverEndurance"+highId];
|
|
attributes["martialManeuverEndurance"+highId] = values["martialManeuverEndurance"+lowId];
|
|
attributes["martialManeuverDC"+lowId] = values["martialManeuverDC"+highId];
|
|
attributes["martialManeuverDC"+highId] = values["martialManeuverDC"+lowId];
|
|
attributes["martialManeuverStrMod"+lowId] = values["martialManeuverStrMod"+highId];
|
|
attributes["martialManeuverStrMod"+highId] = values["martialManeuverStrMod"+lowId];
|
|
attributes["hiddenMartialManeuverDamage"+lowId] = values["hiddenMartialManeuverDamage"+highId];
|
|
attributes["hiddenMartialManeuverDamage"+highId] = values["hiddenMartialManeuverDamage"+lowId];
|
|
attributes["martialDamageDisplay"+lowId] = values["martialDamageDisplay"+highId];
|
|
attributes["martialDamageDisplay"+highId] = values["martialDamageDisplay"+lowId];
|
|
attributes["martialManeuverOCVmod"+lowId] = values["martialManeuverOCVmod"+highId];
|
|
attributes["martialManeuverOCVmod"+highId] = values["martialManeuverOCVmod"+lowId];
|
|
attributes["martialManeuverDCVmod"+lowId] = values["martialManeuverDCVmod"+highId];
|
|
attributes["martialManeuverDCVmod"+highId] = values["martialManeuverDCVmod"+lowId];
|
|
attributes["martialManeuverCSLmod"+lowId] = values["martialManeuverCSLmod"+highId];
|
|
attributes["martialManeuverCSLmod"+highId] = values["martialManeuverCSLmod"+lowId];
|
|
attributes["martialManeuverRNGmod"+lowId] = values["martialManeuverRNGmod"+highId];
|
|
attributes["martialManeuverRNGmod"+highId] = values["martialManeuverRNGmod"+lowId];
|
|
|
|
// Update visible slide.
|
|
if (direction === "up") {
|
|
attributes["martialManeuverSelection"] = "martialManeuver"+lowId;
|
|
} else {
|
|
attributes["martialManeuverSelection"] = "martialManeuver"+highId;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
}
|
|
|
|
|
|
// Function for changing martial maneuver roll button attack type color states.
|
|
function updateMartialManeuvers(maneuverId) {
|
|
getAttrs(["martialManeuverType"+maneuverId, "martialManeuverNormal"+maneuverId, "weaponDamageType01", "weaponDamageType02", "weaponDamageType03", "weaponDamageType04", "weaponDamageType05", "weaponDamageType06", "ocvNet", "currentDCV"], function(values) {
|
|
|
|
var attributes = new Object();
|
|
|
|
let weapon01 = "override";
|
|
let weapon02 = "override";
|
|
let weapon03 = "override";
|
|
let weapon04 = "override";
|
|
let weapon05 = "override";
|
|
let weapon06 = "override";
|
|
let maneuverType = "override";
|
|
let display = "defense";
|
|
|
|
const isNormal = (values["martialManeuverNormal"+maneuverId] === "on") ? true : false;
|
|
|
|
if (values["martialManeuverType"+maneuverId] === "weaponAttack") {
|
|
weapon01 = values.weaponDamageType01;
|
|
weapon02 = values.weaponDamageType02;
|
|
weapon03 = values.weaponDamageType03;
|
|
weapon04 = values.weaponDamageType04;
|
|
weapon05 = values.weaponDamageType05;
|
|
weapon06 = values.weaponDamageType06;
|
|
|
|
display = "wpAttack";
|
|
} else if (values["martialManeuverType"+maneuverId] === "weaponBlock") {
|
|
weapon01 = "defense";
|
|
weapon02 = "defense";
|
|
weapon03 = "defense";
|
|
weapon04 = "defense";
|
|
weapon05 = "defense";
|
|
weapon06 = "defense";
|
|
} else if (values["martialManeuverType"+maneuverId] === "weaponContest") {
|
|
weapon01 = "maneuver";
|
|
weapon02 = "maneuver";
|
|
weapon03 = "maneuver";
|
|
weapon04 = "maneuver";
|
|
weapon05 = "maneuver";
|
|
weapon06 = "maneuver";
|
|
|
|
display = "wpContest";
|
|
} else if (values["martialManeuverType"+maneuverId] === "attack") {
|
|
if (isNormal) {
|
|
maneuverType = "normal";
|
|
} else {
|
|
maneuverType = "killing";
|
|
}
|
|
|
|
display = "attack";
|
|
} else if (values["martialManeuverType"+maneuverId] === "block") {
|
|
maneuverType = "defense";
|
|
} else if (values["martialManeuverType"+maneuverId] === "contest") {
|
|
maneuverType = "maneuver";
|
|
|
|
display = "contest";
|
|
} else {
|
|
maneuverType = "dodge";
|
|
}
|
|
|
|
attributes["martialManeuverTypeIndicator"+maneuverId] = maneuverType;
|
|
attributes.weaponType01 = weapon01;
|
|
attributes.weaponType02 = weapon02;
|
|
attributes.weaponType03 = weapon03;
|
|
attributes.weaponType04 = weapon04;
|
|
attributes.weaponType05 = weapon05;
|
|
attributes.weaponType06 = weapon06;
|
|
attributes.ephemeralOCV = parseInt(values.ocvNet)||0;
|
|
attributes.ephemeralDCV = parseInt(values.currentDCV)||0;
|
|
attributes["martialDamageDisplay"+maneuverId] = display;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
}
|
|
|
|
|
|
/* -------------------------------------------------- */
|
|
/* Functions used for gear tab */
|
|
/* -------------------------------------------------- */
|
|
|
|
/* Calculate weapon endurance costs */
|
|
arrayOf(maxWeaponNum).forEach(num => {
|
|
var weaponId = String(num).padStart(2,'0');
|
|
|
|
on(`change:weaponStrength${weaponId} change:weaponEndMod${weaponId} change:optionSuperHeroicEndurance change:optionUntiring`, function () {
|
|
getAttrs(["weaponStrength"+weaponId, "weaponEndMod"+weaponId, "optionSuperHeroicEndurance", "optionUntiring"], function(values) {
|
|
var attributes = new Object();
|
|
const isUntiring = (values.optionUntiring === "on") ? true : false;
|
|
const optionSuperHeroic = (values.optionSuperHeroicEndurance === "on") ? true : false;
|
|
const enduranceCostFactor = optionSuperHeroic ? 10 : 5;
|
|
|
|
if (isUntiring) {
|
|
attributes["weaponEndurance"+weaponId] = 0;
|
|
} else {
|
|
attributes["weaponEndurance"+weaponId] = Math.max(0, heroRoundLow( (parseInt(values["weaponStrength"+weaponId])||0)/enduranceCostFactor ) + (parseInt(values["weaponEndMod"+weaponId])||0) );
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Show carried armor checks or delete items marked for deletion.
|
|
// DANGER: Risk of data loss.
|
|
on("change:checkArmored change:activateDeleteChecks", function() {
|
|
getAttrs(["checkArmored", "activateDeleteChecks", "armorDelete01", "armorDelete02", "armorDelete03", "armorDelete04"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.armorChecks = "delete";
|
|
attributes.setDamageToggle = "0";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearArmorDeleteChecks();
|
|
} else {
|
|
attributes.armorChecks = (values.checkArmored === "on") ? "carry" : "move";
|
|
|
|
for (var i = 1; i <= maxArmorNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["armorDelete"+itemId] === "on") {
|
|
attributes["armorName"+itemId] = "";
|
|
attributes["armorPD"+itemId] = 0;
|
|
attributes["totalPD"+itemId] = 0;
|
|
attributes["armorED"+itemId] = 0;
|
|
attributes["totalED"+itemId] = 0;
|
|
attributes["armorEND"+itemId] = 0;
|
|
attributes["armorActivation"+itemId] = 18;
|
|
attributes["armorLocations"+itemId] = "";
|
|
attributes["armorMass"+itemId] = 0;
|
|
attributes["armorDelete"+itemId] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearArmorDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
for (var i = 1; i <= maxArmorNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["armorDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Show carried armor checks or delete items marked for deletion.
|
|
// DANGER: Risk of data loss.
|
|
on("change:activateDeleteChecks", function() {
|
|
getAttrs(["activateDeleteChecks", "weaponDelete06"], function(values) {
|
|
var attributes = new Object();
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.shieldChecks = "delete";
|
|
attributes.setDamageToggle = "0";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearShieldDeleteChecks();
|
|
} else {
|
|
attributes.shieldChecks = "carry";
|
|
|
|
if (values["weaponDelete06"] === "on") {
|
|
attributes["weaponName06"] = "";
|
|
attributes["shieldDCV"] = 0;
|
|
attributes["weaponCSL06"] = 0;
|
|
attributes["weaponOCV06"] = 0;
|
|
attributes["weaponStunMod06"] = 0;
|
|
attributes["weaponEndurance06"] = "0";
|
|
attributes["shieldBody"] = 0;
|
|
attributes["shieldDefense"] = 0;
|
|
attributes["shieldMass"] = 0;
|
|
|
|
// Damage Worksheet Values
|
|
attributes["weaponDamage06"] = "0";
|
|
attributes["weaponDamageType06"] = "normal";
|
|
attributes["weaponStrengthMin06"] = 1;
|
|
attributes["weaponStrength06"] = 1;
|
|
attributes["weaponDC06"] = 0;
|
|
attributes["rangeBasedOnStr06"] = 0;
|
|
attributes["weaponEnhancedByStr06"] = 0;
|
|
attributes["weaponAdvantage06"] = 0;
|
|
attributes["weaponCSL06"] = 0;
|
|
attributes["weaponEndMod06"] = 0;
|
|
attributes["weaponAdjustedDamage06"] = "0";
|
|
attributes["weaponAdjustedDC06"] = 0;
|
|
attributes["weaponPenalty06"] = "0";
|
|
attributes["weaponEndurance06"] = "0";
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearShieldDeleteChecks() {
|
|
var attributes = new Object();
|
|
|
|
attributes["weaponDelete06"] = 0;
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Show carried weapon checks or delete items marked for deletion.
|
|
// DANGER: Risk of data loss.
|
|
on("change:checkWielded change:activateDeleteChecks", function() {
|
|
getAttrs(["checkWielded", "activateDeleteChecks", "weaponDelete01", "weaponDelete02", "weaponDelete03", "weaponDelete04", "weaponDelete05"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.weaponChecks = "delete";
|
|
attributes.setDamageToggle = "0";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearWeaponDeleteChecks();
|
|
} else {
|
|
attributes.weaponChecks = (values.checkWielded === "on") ? "carry" : "move";
|
|
|
|
for (var i = 1; i <= maxWeaponNum-1; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["weaponDelete"+itemId] === "on") {
|
|
attributes["weaponName"+itemId] = "";
|
|
attributes["weaponCSL"+itemId] = 0;
|
|
attributes["weaponOCV"+itemId] = 0;
|
|
attributes["weaponStunMod"+itemId] = 0;
|
|
attributes["weaponEndurance"+itemId] = "0";
|
|
attributes["weaponRange"+itemId] = 0;
|
|
attributes["weaponRangeMod"+itemId] = 0;
|
|
attributes["weaponShots"+itemId] = 0;
|
|
attributes["weaponAreaEffect"+itemId] = 0;
|
|
attributes["weaponMass"+itemId] = 0;
|
|
|
|
// Damage Worksheet Values
|
|
attributes["weaponDamage"+itemId] = "0";
|
|
attributes["weaponDamageType"+itemId] = "killing";
|
|
attributes["weaponStrengthMin"+itemId] = 1;
|
|
attributes["weaponStrength"+itemId] = 1;
|
|
attributes["weaponDC"+itemId] = 0;
|
|
attributes["rangeBasedOnStr"+itemId] = 0;
|
|
attributes["weaponEnhancedByStr"+itemId] = 0;
|
|
attributes["weaponAdvantage"+itemId] = 0;
|
|
attributes["weaponCSL"+itemId] = 0;
|
|
attributes["weaponEndMod"+itemId] = 0;
|
|
attributes["weaponAdjustedDamage"+itemId] = "0";
|
|
attributes["weaponAdjustedDC"+itemId] = 0;
|
|
attributes["weaponPenalty"+itemId] = "0";
|
|
attributes["weaponEndurance"+itemId] = "0";
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearWeaponDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
for (var i = 1; i <= maxWeaponNum-1; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["weaponDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Show carried equipment checks or delete items marked for deletion.
|
|
// DANGER: Risk of data loss.
|
|
on("change:checkCarried change:activateDeleteChecks", function() {
|
|
getAttrs(["checkCarried", "activateDeleteChecks", "equipDelete01", "equipDelete02", "equipDelete03", "equipDelete04", "equipDelete05", "equipDelete06", "equipDelete07", "equipDelete08", "equipDelete09", "equipDelete10", "equipDelete11", "equipDelete12", "equipDelete13", "equipDelete14", "equipDelete15", "equipDelete16"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.equipmentChecks = "delete";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearEquipDeleteChecks();
|
|
} else {
|
|
attributes.equipmentChecks = (values.checkCarried === "on") ? "carry" : "move";
|
|
|
|
for (var i = 1; i <= maxEquipmentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["equipDelete"+itemId] === "on") {
|
|
attributes["equipText"+itemId] = "";
|
|
attributes["equipMass"+itemId] = "";
|
|
attributes["equipDelete"+itemId] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearEquipDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
for (var i = 1; i <= maxEquipmentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["equipDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Prepare for or delete marked maneuvers.
|
|
// DANGER: Risk of data loss.
|
|
on("change:activateDeleteChecks", function() {
|
|
getAttrs(["activateDeleteChecks", "martialManeuverDelete01", "martialManeuverDelete02", "martialManeuverDelete03", "martialManeuverDelete04", "martialManeuverDelete05", "martialManeuverDelete06", "martialManeuverDelete07", "martialManeuverDelete08", "martialManeuverDelete09", "martialManeuverDelete10"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.maneuverChecks = "delete";
|
|
attributes.gearSlideSelection = "gearMartialManeuvers";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearMartialManeuverDeleteChecks();
|
|
} else {
|
|
attributes.maneuverChecks = "hide";
|
|
|
|
for (var i = 1; i <= maxManeuverNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["martialManeuverDelete"+itemId] === "on") {
|
|
// Reset the maneuver to defaults.
|
|
attributes["martialManeuverDelete"+itemId] = 0;
|
|
attributes["martialManeuverTypeIndicator"+itemId] = "normal";
|
|
attributes["martialManeuverName"+itemId] = "";
|
|
attributes["martialManeuverCP"+itemId] = 0;
|
|
attributes["martialManeuverOCV"+itemId] = 0;
|
|
attributes["martialManeuverOCVmod"+itemId] = 0;
|
|
attributes["martialManeuverType"+itemId] = "attack";
|
|
attributes["martialManeuverDCV"+itemId] = 0;
|
|
attributes["martialManeuverDCVmod"+itemId] = 0;
|
|
attributes["martialManeuverPhase"+itemId] = "1/2";
|
|
attributes["martialDamageDisplay"+itemId] = "attack";
|
|
attributes["martialManeuverDamage"+itemId] = "0";
|
|
attributes["martialManeuverEndurance"+itemId] = 0;
|
|
attributes["martialManeuverCSLmod"+itemId] = 0;
|
|
attributes["martialManeuverNormal"+itemId] = "on";
|
|
attributes["martialManeuverStunMod"+itemId] = 0;
|
|
attributes["martialManeuverStrMod"+itemId] = 0;
|
|
attributes["martialManeuverDC"+itemId] = 0;
|
|
attributes["martialManeuverRNGmod"+itemId] = 0;
|
|
attributes["martialManeuverEffect"+itemId] = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearMartialManeuverDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
for (var i = 1; i <= maxManeuverNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["martialManeuverDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Prepare for or delete marked skills.
|
|
// DANGER: Risk of data loss.
|
|
on("change:activateDeleteChecks", function() {
|
|
getAttrs(["activateDeleteChecks", "skillDelete01", "skillDelete02", "skillDelete03", "skillDelete04", "skillDelete05", "skillDelete06", "skillDelete07", "skillDelete08", "skillDelete09", "skillDelete10", "skillDelete11", "skillDelete12", "skillDelete13", "skillDelete14", "skillDelete15", "skillDelete16", "skillDelete17", "skillDelete18", "skillDelete19", "skillDelete20", "skillDelete21", "skillDelete22", "skillDelete23", "skillDelete24", "skillDelete25", "skillDelete26", "skillDelete27", "skillDelete28", "skillDelete29", "skillDelete30",
|
|
"skillDelete31", "skillDelete32", "skillDelete33", "skillDelete34", "skillDelete36", "skillDelete37", "skillDelete38", "skillDelete39", "skillDelete40", "skillDelete41", "skillDelete42", "skillDelete43", "skillDelete44", "skillDelete45", "skillDelete46", "skillDelete47", "skillDelete48", "skillDelete49", "skillDelete50", "skillDelete61", "skillDelete62", "skillDelete63", "skillDelete64", "skillDelete65", "skillDelete66", "skillDelete67", "skillDelete68", "skillDelete69", "skillDelete70", "skillDelete71", "skillDelete72", "skillDelete76", "skillDelete77", "skillDelete78", "skillDelete79", "skillDelete80", "skillDelete81", "skillDelete82", "skillDelete83", "skillDelete84", "optionFewerLanguages"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
let startCount = 1;
|
|
let endCount = maxSkillNum;
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.skillChecks = "delete";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearSkillDeleteChecks();
|
|
} else {
|
|
attributes.skillChecks = "move";
|
|
|
|
// Standard skills.
|
|
for (var i = startCount; i <= endCount; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["skillDelete"+itemId] === "on") {
|
|
// Reset the skill to defaults.
|
|
attributes["skillDelete"+itemId] = 0;
|
|
attributes["skillName"+itemId] = "";
|
|
attributes["skillType"+itemId] = "none";
|
|
attributes["skillCP"+itemId] = 0;
|
|
}
|
|
}
|
|
|
|
// Combat skills.
|
|
startCount = maxSkillNum + reserveSkillNum + 1;
|
|
endCount = startCount - 1 + baseCombatSkillNum + ( (values.optionFewerLanguages === "on") ? flexSkillNum : 0 );
|
|
|
|
for (var i = startCount; i <= endCount; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["skillDelete"+itemId] === "on") {
|
|
// Reset the skill to defaults.
|
|
attributes["skillDelete"+itemId] = 0;
|
|
attributes["skillName"+itemId] = "";
|
|
attributes["skillType"+itemId] = "none";
|
|
attributes["skillLevels"+itemId] = 0;
|
|
attributes["skillCP"+itemId] = 0;
|
|
}
|
|
}
|
|
|
|
// Language skills.
|
|
startCount = maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + 1;
|
|
endCount = startCount - 1 + maxLanguageSkillNum - ( (values.optionFewerLanguages === "on") ? flexSkillNum : 0 );
|
|
|
|
for (var i = startCount; i <= endCount; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["skillDelete"+itemId] === "on") {
|
|
// Reset the skill to defaults.
|
|
attributes["skillDelete"+itemId] = 0;
|
|
attributes["skillName"+itemId] = "";
|
|
attributes["skillFluency"+itemId] = "none";
|
|
attributes["skillLiteracy"+itemId] = 0;
|
|
attributes["skillCP"+itemId] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearSkillDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
// Standard skills.
|
|
let startCount = 1;
|
|
let endCount = maxSkillNum;
|
|
|
|
for (var i = startCount; i <= endCount; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["skillDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Combat skills.
|
|
startCount = maxSkillNum + reserveSkillNum + 1;
|
|
endCount = startCount + baseCombatSkillNum + flexSkillNum;
|
|
|
|
for (var i = startCount; i <= endCount; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["skillDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Language skills.
|
|
startCount = maxSkillNum + reserveSkillNum + baseCombatSkillNum + flexSkillNum + maxCombatLevelNum + 1;
|
|
endCount = startCount + maxLanguageSkillNum;
|
|
|
|
for (var i = startCount; i <= endCount; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["skillDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Prepare for or delete marked powers.
|
|
// DANGER: Risk of data loss.
|
|
on("change:activateDeleteChecks", function() {
|
|
getAttrs(["activateDeleteChecks", "powerDelete01", "powerDelete02", "powerDelete03", "powerDelete04", "powerDelete05", "powerDelete06", "powerDelete07", "powerDelete08", "powerDelete09", "powerDelete10", "powerDelete11", "powerDelete12", "powerDelete13", "powerDelete14", "powerDelete15", "powerDelete16", "powerDelete17", "powerDelete18", "powerDelete19", "powerDelete20"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.upperPowerChecks = "delete";
|
|
attributes.lowerPowerChecks = "delete";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearPowerDeleteChecks();
|
|
} else {
|
|
attributes.upperPowerChecks = "hide";
|
|
attributes.lowerPowerChecks = "hide";
|
|
|
|
for (var i = 1; i <= maxPowerNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["powerDelete"+itemId] === "on") {
|
|
// Reset the talent to defaults.
|
|
attributes["powerDelete"+itemId] = 0;
|
|
attributes["powerAction"+itemId] = "false";
|
|
attributes["powerName"+itemId] = "";
|
|
attributes["powerCP"+itemId] = 0;
|
|
attributes["powerType"+itemId] = "single";
|
|
attributes["powerEffect"+itemId] = "";
|
|
attributes["powerDice"+itemId] = "0";
|
|
attributes["powerDamageType"+itemId] = "power";
|
|
attributes["powerAttack"+itemId] = 0;
|
|
attributes["powerDamageAdvantage"+itemId] = 0;
|
|
attributes["powerStunMod"+itemId] = 0;
|
|
attributes["powerActivate"+itemId] = 0;
|
|
attributes["powerSkillRoll"+itemId] = 18;
|
|
attributes["powerAoE"+itemId] = 0;
|
|
attributes["powerDCV"+itemId] = "full";
|
|
attributes["powerRMod"+itemId] = "standard";
|
|
attributes["powerReducedEND"+itemId] = "standardEND";
|
|
attributes["powerEND"+itemId] = 0;
|
|
attributes["powerAdvantages"+itemId] = 0;
|
|
attributes["powerLimitations"+itemId] = 0;
|
|
attributes["powerBaseCost"+itemId] = 0;
|
|
attributes["powerActiveCost"+itemId] = 0;
|
|
attributes["powerText"+itemId] = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearPowerDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
for (var i = 1; i <= maxPowerNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["powerDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Prepare for or delete marked talents.
|
|
// DANGER: Risk of data loss.
|
|
on("change:activateDeleteChecks", function() {
|
|
getAttrs(["activateDeleteChecks", "talentDelete01", "talentDelete02", "talentDelete03", "talentDelete04", "talentDelete05", "talentDelete06", "talentDelete07", "talentDelete08", "talentDelete09", "talentDelete10"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.talentChecks = "delete";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearTalentDeleteChecks();
|
|
} else {
|
|
attributes.talentChecks = "hide";
|
|
|
|
for (var i = 1; i <= maxTalentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["talentDelete"+itemId] === "on") {
|
|
// Reset the talent to defaults.
|
|
attributes["talentDelete"+itemId] = 0;
|
|
attributes["talentName"+itemId] = "";
|
|
attributes["talentCP"+itemId] = 0;
|
|
attributes["talentDice"+itemId] = "0";
|
|
attributes["talentActivate"+itemId] = 0;
|
|
attributes["talentRollChance"+itemId] = 18;
|
|
attributes["talentText"+itemId] = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearTalentDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
for (var i = 1; i <= maxTalentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["talentDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Prepare for or delete marked complications.
|
|
// DANGER: Risk of data loss.
|
|
on("change:activateDeleteChecks", function() {
|
|
getAttrs(["activateDeleteChecks", "complicationDelete01", "complicationDelete02", "complicationDelete03", "complicationDelete04", "complicationDelete05", "complicationDelete06", "complicationDelete07", "complicationDelete08", "complicationDelete09", "complicationDelete10"], function(values) {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
if (values.activateDeleteChecks === "on") {
|
|
attributes.complicationChecks = "delete";
|
|
|
|
// Clear all delete checks for safety.
|
|
clearComplicationDeleteChecks();
|
|
} else {
|
|
attributes.complicationChecks = "hide";
|
|
|
|
for (var i = 1; i <= maxComplicationNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
|
|
if (values["complicationDelete"+itemId] === "on") {
|
|
// Reset the complication to defaults.
|
|
attributes["complicationDelete"+itemId] = 0;
|
|
attributes["complicationType"+itemId] = "none";
|
|
attributes["complicationName"+itemId] = "";
|
|
attributes["complicationCP"+itemId] = 0;
|
|
attributes["complicationDice"+itemId] = "0";
|
|
attributes["complicationActivate"+itemId] = 0;
|
|
attributes["complicationRollChance"+itemId] = 18;
|
|
attributes["complicationText"+itemId] = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
function clearComplicationDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
for (var i = 1; i <= maxComplicationNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["complicationDelete"+itemId] = 0;
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
// Clear all delete checks
|
|
function clearDeleteChecks() {
|
|
var attributes = new Object();
|
|
var itemId = "";
|
|
|
|
// Armor
|
|
for (var i = 1; i <= maxArmorNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["armorDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Shield
|
|
attributes["weaponDelete06"] = 0;
|
|
|
|
// Weapons
|
|
for (var i = 1; i <= maxWeaponNum-1; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["weaponDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Equipment
|
|
for (var i = 1; i <= maxEquipmentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["equipDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Martial Maneuver Skills
|
|
for (var i = 1; i <= maxManeuverNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["martialManeuverDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Standard skills.
|
|
for (var i = 1; i <= maxSkillNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["skillDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Combat skills.
|
|
for (var i = maxSkillNum + reserveSkillNum + 1; i <= maxSkillNum + reserveSkillNum + baseCombatSkillNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["skillDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Language skills.
|
|
for (var i = maxSkillNum + reserveSkillNum + baseCombatSkillNum + maxCombatLevelNum + 1; i <= maxSkillNum + reserveSkillNum + baseCombatSkillNum + maxCombatLevelNum + maxLanguageSkillNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["skillDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Powers
|
|
for (var i = 1; i <= maxPowerNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["powerDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Talents
|
|
for (var i = 1; i <= maxTalentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["talentDelete"+itemId] = 0;
|
|
}
|
|
|
|
// Complications
|
|
for (var i = 1; i <= maxComplicationNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
attributes["complicationDelete"+itemId] = 0;
|
|
}
|
|
|
|
attributes.activateDeleteChecks = 0;
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
|
|
|
|
/* Gear Tab sum up equipment weight */
|
|
on("change:liftWeight change:optionCarryAllSets change:armorEND01 change:armorEND02 change:armorEND03 change:armorEND04 change:armorCarried01 change:armorCarried02 change:armorCarried03 change:armorCarried04 change:armorMass01 change:armorMass01 change:armorMass02 change:armorMass03 change:armorMass04 change:shieldCarried change:shieldMass change:weaponCarried01 change:weaponCarried02 change:weaponCarried03 change:weaponCarried04 change:weaponCarried05 change:weaponMass01 change:weaponMass02 change:weaponMass03 change:weaponMass04 change:weaponMass05 change:equipMass01 change:equipMass02 change:equipMass03 change:equipMass04 change:equipMass05 change:equipMass06 change:equipMass07 change:equipMass08 change:equipMass09 change:equipMass10 change:equipMass11 change:equipMass12 change:equipMass13 change:equipMass14 change:equipMass15 change:equipMass16 change:equipCarried01 change:equipCarried02 change:equipCarried03 change:equipCarried04 change:equipCarried05 change:equipCarried06 change:equipCarried07 change:equipCarried08 change:equipCarried09 change:equipCarried10 change:equipCarried11 change:equipCarried12 change:equipCarried13 change:equipCarried14 change:equipCarried15 change:equipCarried16", function () {
|
|
// Add the masses of all items of equipment.
|
|
// Determine END used per turn, DCV/DEX roll penalty, and Movement Penalty.
|
|
|
|
getAttrs(["liftWeight", "optionCarryAllSets", "armorEND01", "armorEND02", "armorEND03", "armorEND04", "armorCarried01", "armorCarried02", "armorCarried03", "armorCarried04", "armorCarried11", "armorCarried12", "armorCarried13", "armorCarried14", "armorMass01", "armorMass02", "armorMass03", "armorMass04", "armorMass11", "armorMass12", "armorMass13", "armorMass14", "shieldCarried", "shieldMass", "weaponCarried01", "weaponCarried02", "weaponCarried03", "weaponCarried04", "weaponCarried05", "weaponCarried11", "weaponCarried12", "weaponCarried13", "weaponCarried14", "weaponCarried15", "weaponMass01", "weaponMass02", "weaponMass03", "weaponMass04", "weaponMass05", "weaponMass11", "weaponMass12", "weaponMass13", "weaponMass14", "weaponMass15", "equipMass01", "equipMass02", "equipMass03", "equipMass04", "equipMass05", "equipMass06", "equipMass07", "equipMass08", "equipMass09", "equipMass10", "equipMass11", "equipMass12", "equipMass13", "equipMass14", "equipMass15", "equipMass16", "equipMass17", "equipMass18", "equipMass19", "equipMass20", "equipMass21", "equipMass22", "equipMass23", "equipMass24", "equipMass25", "equipMass26", "equipMass27", "equipMass28", "equipMass29", "equipMass30", "equipMass31", "equipMass32", "equipCarried01", "equipCarried02", "equipCarried03", "equipCarried04", "equipCarried05", "equipCarried06", "equipCarried07", "equipCarried08", "equipCarried09", "equipCarried10", "equipCarried11", "equipCarried12", "equipCarried13", "equipCarried14", "equipCarried15", "equipCarried16", "equipCarried17", "equipCarried18", "equipCarried19", "equipCarried20", "equipCarried21", "equipCarried22", "equipCarried23", "equipCarried24", "equipCarried25", "equipCarried26", "equipCarried27", "equipCarried28", "equipCarried29", "equipCarried30", "equipCarried31", "equipCarried32"], function(values) {
|
|
|
|
const carryAll = (values.optionCarryAllSets === "on") ? true : false;
|
|
|
|
var itemId = '';
|
|
let stepId = 10;
|
|
let armorCarried = 0;
|
|
let weaponsCarried = 0;
|
|
let equipCarried = 0;
|
|
let carriedWeight = 0;
|
|
|
|
// Add up carried mass
|
|
|
|
// Set A armor
|
|
for (let i=1; i<=maxArmorNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
armorCarried += (values["armorCarried"+itemId] === "on") ? (parseFloat(values["armorMass"+itemId])||0) : 0;
|
|
}
|
|
|
|
// Set B armor
|
|
if (carryAll) {
|
|
for (let i=stepId+1; i<=stepId+maxArmorNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
armorCarried += (values["armorCarried"+itemId] === "on") ? (parseFloat(values["armorMass"+itemId])||0) : 0;
|
|
}
|
|
}
|
|
|
|
// Set A weapons
|
|
weaponsCarried += (values.shieldCarried === "on") ? (parseFloat(values.shieldMass)||0) : 0;
|
|
|
|
for (let i=1; i<=maxWeaponNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
weaponsCarried += (values["weaponCarried"+itemId] === "on") ? (parseFloat(values["weaponMass"+itemId])||0) : 0;
|
|
}
|
|
|
|
// Set B weapons
|
|
if (carryAll) {
|
|
for (let i=stepId+1; i<=stepId+maxWeaponNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
weaponsCarried += (values["weaponCarried"+itemId] === "on") ? (parseFloat(values["weaponMass"+itemId])||0) : 0;
|
|
}
|
|
}
|
|
|
|
// Set A equipment
|
|
for (let i=1; i<=maxEquipmentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
equipCarried += (values["equipCarried"+itemId] === "on") ? (parseFloat(values["equipMass"+itemId])||0) : 0;
|
|
}
|
|
|
|
// Set B equipment
|
|
stepId = 16;
|
|
|
|
if (carryAll) {
|
|
for (let i=stepId+1; i<=stepId+maxEquipmentNum; i++) {
|
|
itemId = String(i).padStart(2,'0');
|
|
equipCarried += (values["equipCarried"+itemId] === "on") ? (parseFloat(values["equipMass"+itemId])||0) : 0;
|
|
}
|
|
}
|
|
|
|
carriedWeight=armorCarried+weaponsCarried+equipCarried;
|
|
|
|
// Determine encumbrance penalty
|
|
const lift=(parseFloat(values.liftWeight)||0);
|
|
const armorENDcost = (parseInt(values.armorEND01)||0)+(parseInt(values.armorEND02)||0)+(parseInt(values.armorEND03)||0)+(parseInt(values.armorEND04)||0);
|
|
let enduranceCost = 0;
|
|
let dexPenalty = 0;
|
|
let movePenalty = 0;
|
|
|
|
if (carriedWeight < lift * 0.10) {
|
|
dexPenalty = 0;
|
|
movePenalty = 0;
|
|
enduranceCost = 0 + armorENDcost;
|
|
} else if (carriedWeight < lift * 0.25) {
|
|
dexPenalty = -1;
|
|
movePenalty = 0;
|
|
enduranceCost = 0 + armorENDcost;
|
|
} else if (carriedWeight < lift * 0.50) {
|
|
dexPenalty = -2;
|
|
movePenalty = -2;
|
|
enduranceCost = 1 + armorENDcost;
|
|
} else if (carriedWeight < lift*0.75) {
|
|
dexPenalty = -3;
|
|
movePenalty = -4;
|
|
enduranceCost = 2 + armorENDcost;
|
|
} else if (carriedWeight < lift * 0.90) {
|
|
dexPenalty = -4;
|
|
movePenalty = -8;
|
|
enduranceCost = 3 + armorENDcost;
|
|
} else {
|
|
dexPenalty = -5;
|
|
movePenalty = -16;
|
|
enduranceCost = 4 + armorENDcost;
|
|
}
|
|
|
|
setAttrs({
|
|
"carriedWeight": carriedWeight,
|
|
"carriedWeightDisplay": displayMass(carriedWeight),
|
|
"weightEndPenalty": enduranceCost,
|
|
"weightDexDCVPenalty": dexPenalty,
|
|
"weightMovePenalty": movePenalty,
|
|
"runningPenalty": movePenalty,
|
|
"leapingPenalty": movePenalty,
|
|
"swimmingPenalty": movePenalty
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Num to text for display mass.
|
|
function displayMass(theMass) {
|
|
let mass = theMass;
|
|
let theString = theMass.toString();
|
|
|
|
if (theMass > 1e6) {
|
|
if (theMass < 1e7) {
|
|
mass = (Math.round(mass/1e5))/10;
|
|
theString = mass.toString();
|
|
theString += " kt";
|
|
} else {
|
|
mass = Math.round(mass/1e6);
|
|
theString = mass.toString();
|
|
theString += " kt";
|
|
}
|
|
} else if (theMass > 1000) {
|
|
if (theMass < 1e4) {
|
|
mass = (Math.round(mass/100))/10;
|
|
theString = mass.toString();
|
|
theString += " t";
|
|
} else {
|
|
mass = Math.round(mass/1000);
|
|
theString = mass.toString();
|
|
theString += " t";
|
|
}
|
|
} else {
|
|
if (theMass < 100) {
|
|
mass = (Math.round(mass*10))/10;
|
|
theString = mass.toString();
|
|
} else {
|
|
mass = Math.round(mass);
|
|
theString = mass.toString();
|
|
}
|
|
}
|
|
|
|
return theString;
|
|
}
|
|
|
|
|
|
/* ----------------------- */
|
|
/* --- Armor Functions --- */
|
|
/* ----------------------- */
|
|
|
|
arrayOf(maxArmorNum).forEach(num => {
|
|
var armorId = String(num).padStart(2,'0');
|
|
on(`clicked:activateArmor${armorId}`, (info) => {
|
|
getAttrs(["whisperToGM", "character_title", "displayDegreeOfSuccess", "armorActivation"+armorId, "armorLocations"+armorId, "totalPD"+armorId, "totalED"+armorId, "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var actOn = values["armorActivation"+armorId]||18;
|
|
var locations = values["armorLocations"+armorId]||"";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
|
|
theRoll += "&{template:custom-activate} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Defends with @{armorName"+armorId+"}**}} ";
|
|
|
|
if (actOn >= 18 && locations != "") {
|
|
theRoll += "{{Locations=@{armorLocations"+armorId+"}}}";
|
|
} else if (values.displayDegreeOfSuccess != 0) {
|
|
theRoll += "{{SUCCESS=[[@{armorActivation"+armorId+"}[Armor Activation]-3d6cf6cs1[Roll]]]}} ";
|
|
} else {
|
|
theRoll += "{{Activate on = [[@{armorActivation"+armorId+"}]] **or less**}} "
|
|
+ "{{Result = [[3d6cf6cs1]]}} ";
|
|
}
|
|
|
|
theRoll += "{{Resistant Defense = **rPD ``@{armorPD"+armorId+"}`` rED ``@{armorED"+armorId+"}``**}} "
|
|
+ "{{Total Defense = ";
|
|
|
|
// if TotalPD is not filled, then calcluate Character + Armor
|
|
if (values["totalPD"+armorId] == 0)
|
|
theRoll += "**PD [[@{pd}[Character PD]+@{armorPD"+armorId+"}[Armor PD]]] ";
|
|
else
|
|
theRoll += "**PD ``@{totalPD"+armorId+"}`` ";
|
|
|
|
// if TotalED is not filled, then calcluate Character + Armor
|
|
if (values["totalED"+armorId] == 0)
|
|
theRoll += "ED [[@{ed}[Character ED]+@{armorED"+armorId+"}[Armor ED]]]**}}";
|
|
else
|
|
theRoll += "ED ``@{totalED"+armorId+"}``**}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* ----------------- */
|
|
/* Armor Movers */
|
|
/* ----------------- */
|
|
|
|
arrayOf(maxArmorNum).forEach(num => {
|
|
// For armor 01 and 04 we need to swap with the alternates 14 and 11.
|
|
|
|
const stepId = 10;
|
|
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num === maxArmorNum ? maxArmorNum + stepId : num + 1).padStart(2,'0');
|
|
|
|
on("clicked:armorDown"+lowId, function() {
|
|
swapArmorPositions(lowId, highId);
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(maxArmorNum).forEach(num => {
|
|
// For armor 01 and 04 we need to swap with the alternates 14 and 11.
|
|
|
|
const stepId = 10;
|
|
|
|
var lowId = String(num === 1 ? stepId + 1 : num - 1).padStart(2,'0');
|
|
var highId = String(num).padStart(2,'0');
|
|
|
|
on("clicked:armorUp"+highId, function() {
|
|
swapArmorPositions(lowId, highId);
|
|
});
|
|
});
|
|
|
|
|
|
function swapArmorPositions(lowId, highId) {
|
|
getAttrs(["armorName"+lowId, "armorPD"+lowId, "totalPD"+lowId, "armorED"+lowId, "totalED"+lowId, "armorEND"+lowId, "armorActivation"+lowId, "armorLocations"+lowId, "armorCarried"+lowId, "armorMass"+lowId, "armorName"+highId, "armorPD"+highId, "totalPD"+highId, "armorED"+highId, "totalED"+highId, "armorEND"+highId, "armorActivation"+highId, "armorLocations"+highId, "armorCarried"+highId, "armorMass"+highId], function(values)
|
|
{
|
|
var attributes = new Object();
|
|
|
|
let theString = values["armorName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["armorName"+lowId] = "";
|
|
} else {
|
|
attributes["armorName"+lowId] = values["armorName"+highId];
|
|
}
|
|
|
|
theString = values["armorName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["armorName"+highId] = "";
|
|
} else {
|
|
attributes["armorName"+highId] = values["armorName"+lowId];
|
|
}
|
|
|
|
theString = values["armorLocations"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["armorLocations"+lowId] = "";
|
|
} else {
|
|
attributes["armorLocations"+lowId] = values["armorLocations"+highId];
|
|
}
|
|
|
|
theString = values["armorLocations"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["armorLocations"+highId] = "";
|
|
} else {
|
|
attributes["armorLocations"+highId] = values["armorLocations"+lowId];
|
|
}
|
|
|
|
attributes["armorPD"+lowId] = values["armorPD"+highId];
|
|
attributes["armorPD"+highId] = values["armorPD"+lowId];
|
|
attributes["totalPD"+lowId] = values["totalPD"+highId];
|
|
attributes["totalPD"+highId] = values["totalPD"+lowId];
|
|
attributes["armorED"+lowId] = values["armorED"+highId];
|
|
attributes["armorED"+highId] = values["armorED"+lowId];
|
|
attributes["totalED"+lowId] = values["totalED"+highId];
|
|
attributes["totalED"+highId] = values["totalED"+lowId];
|
|
attributes["armorEND"+lowId] = values["armorEND"+highId];
|
|
attributes["armorEND"+highId] = values["armorEND"+lowId];
|
|
attributes["armorActivation"+lowId] = values["armorActivation"+highId];
|
|
attributes["armorActivation"+highId] = values["armorActivation"+lowId];
|
|
attributes["armorCarried"+lowId] = values["armorCarried"+highId];
|
|
attributes["armorCarried"+highId] = values["armorCarried"+lowId];
|
|
attributes["armorMass"+lowId] = values["armorMass"+highId];
|
|
attributes["armorMass"+highId] = values["armorMass"+lowId];
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
}
|
|
|
|
|
|
// Exchange all armor in a set.
|
|
on("clicked:armorSetAtoB", function() {
|
|
getAttrs(["activateDeleteChecks"], function(values) {
|
|
if (values.activateDeleteChecks !== "on") {
|
|
swapArmorSet();
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
function swapArmorSet() {
|
|
const stepId = 10;
|
|
|
|
for (let i=1; i <= maxArmorNum; i++) {
|
|
lowId = String(i).padStart(2,'0');
|
|
highId = String(i+stepId).padStart(2,'0');
|
|
|
|
swapArmorPositions(lowId, highId);
|
|
}
|
|
}
|
|
|
|
|
|
/* -------------------------- */
|
|
/* --- Maneuver Functions --- */
|
|
/* -------------------------- */
|
|
|
|
/* Update Basic HTH Strike */
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
// If strength changes enough so that hiddenBasicDamage and hiddenBasicEndurance change,
|
|
// look at each maneuver effect to see if it includes the keyword phrase "Damage by STR." If so, update its damage and endurance values.
|
|
// A basic strike does normal damage, so hold off if the maneuver's normal damage option is unchecked.
|
|
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
|
|
on(`change:hiddenBasicDamage change:hiddenBasicEndurance change:martialManeuverNormal${maneuverId} change:martialManeuverDamage${maneuverId} change:martialManeuverCP${maneuverId} change:martialManeuverBlock${maneuverId}`, function() {
|
|
getAttrs(["hiddenBasicEndurance", "hiddenBasicDamage", "martialManeuverEffect"+maneuverId, "martialManeuverEndurance"+maneuverId, "hiddenMartialManeuverDamage"+maneuverId, "martialManeuverNormal"+maneuverId, "martialManeuverBlock"+maneuverId, "martialManeuverCP"+maneuverId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let keywordPhrase = "damage by str";
|
|
let hasKeywordPhrase = (values["martialManeuverEffect"+maneuverId].toLowerCase()).includes(keywordPhrase);
|
|
let isNormal = (values["martialManeuverNormal"+maneuverId] === "on") ? true : false;
|
|
let isAttack = (values["martialManeuverBlock"+maneuverId] === "on") ? false : true;
|
|
|
|
if (hasKeywordPhrase && isNormal && isAttack) {
|
|
attributes["martialManeuverDamage"+maneuverId] = values.hiddenBasicDamage;
|
|
attributes["hiddenMartialManeuverDamage"+maneuverId] = values.hiddenBasicDamage;
|
|
|
|
// Martial maneuvers have zero END.
|
|
if ( (parseInt(values["martialManeuverCP"+maneuverId])||0) === 0 ) {
|
|
attributes["martialManeuverEndurance"+maneuverId] = parseInt(values["hiddenBasicEndurance"])||0;
|
|
} else {
|
|
attributes["martialManeuverEndurance"+maneuverId] = 0;
|
|
}
|
|
}
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* Show Maneuver XX */
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
on(`clicked:showManeuverRoll${maneuverId}`, (info) => {
|
|
getAttrs(["whisperToGM", "character_title", "martialManeuverNormal"+maneuverId, "martialManeuverStunMod"+maneuverId, "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
let isNormal = values["martialManeuverNormal"+maneuverId] != 0;
|
|
let theStunMod = parseInt(values["martialManeuverStunMod"+maneuverId])||0;
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const lesserDingbat = " ⬩ ";
|
|
|
|
theRoll += "&{template:custom-show} {{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Maneuver" + lesserDingbat + "@{martialManeuverName"+maneuverId+"}}} ";
|
|
theRoll += "{{Phases=@{martialManeuverPhase"+maneuverId+"}}} ";
|
|
theRoll += "{{END = @{martialManeuverEndurance"+maneuverId+"}}} ";
|
|
theRoll += "{{OCV = @{martialManeuverOCV"+maneuverId+"}}} ";
|
|
theRoll += "{{DCV = @{martialManeuverDCV"+maneuverId+"}}} ";
|
|
|
|
if (!isNormal && (theStunMod > 0) ) {
|
|
theRoll += "{{STUNx = @{martialManeuverStunMod"+maneuverId+"}}} ";
|
|
}
|
|
|
|
theRoll += "{{Damage = @{martialManeuverDamage"+maneuverId+"}" + (isNormal ? " N" : " K") + "}} "
|
|
+ "{{desc=@{martialManeuverEffect"+maneuverId+"}}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Activate Maneuver XX
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
on(`clicked:maneuverAttack${maneuverId}`, (info) => {
|
|
// Roll attack and damage dice for Martial Maneuver XX if the maneuver is not a weapon maneuver.
|
|
|
|
getAttrs(["hiddenMartialManeuverDamage"+maneuverId, "martialManeuverNormal"+maneuverId, "martialManeuverPhase"+maneuverId, "martialManeuverEffect"+maneuverId, "martialManeuverStunMod"+maneuverId, "martialManeuverOCVmod"+maneuverId, "martialManeuverDCVmod"+maneuverId, "martialManeuverCSLmod"+maneuverId, "martialManeuverStrMod"+maneuverId, "martialManeuverOCV"+maneuverId, "martialManeuverDCV"+maneuverId, "martialManeuverName"+maneuverId, "martialManeuverEndurance"+maneuverId, "martialManeuverType"+maneuverId, "martialConcentrationDCV"+maneuverId, "optionAutoSubtractEND", "optionHitLocationSystem", "optionD6MinusOne", "whisperToGM", "character_title", "displayDegreeOfSuccess", "rangeMartial", "strengthNet", "currentDCV", "dingbat", "ocvNet", "targetOCVpenalty", "rangeOCVpenalty", "checkBrace", "checkSet"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var attributes = new Object();
|
|
|
|
const dispDoS = (values.displayDegreeOfSuccess === "on") ? true : false;
|
|
const optionMinusOne = (values.optionD6MinusOne === "on") ? true : false;
|
|
let isNormal = (values["martialManeuverNormal"+maneuverId] === "on") ? true : false;
|
|
let isAttack = (values["martialManeuverType"+maneuverId] === "attack") ? true : false;
|
|
let isBlocking = (values["martialManeuverType"+maneuverId] === "block") ? true : false;
|
|
let isContest = (values["martialManeuverType"+maneuverId] === "contest") ? true : false;
|
|
let isDodging = (values["martialManeuverType"+maneuverId] === "dodge") ? true : false;
|
|
let stunMod = parseInt(values["martialManeuverStunMod"+maneuverId])||0;
|
|
let ocvMod = parseInt(values["martialManeuverOCVmod"+maneuverId])||0;
|
|
let dcvMod = parseInt(values["martialManeuverDCVmod"+maneuverId])||0;
|
|
let cslMod = parseInt(values["martialManeuverCSLmod"+maneuverId])||0;
|
|
let modDC = Math.max(0, (parseInt(cslMod/2)||0) );
|
|
let rollMessage = (isNormal ? "Normal" : "Killing") + " Attack";
|
|
let damageLabel = "Damage";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const modLimit = 20;
|
|
let damageObject = {};
|
|
|
|
// Contest Dice
|
|
const statValue = parseInt(values.strengthNet)||0;
|
|
const statMod = parseInt(values["martialManeuverStrMod"+maneuverId])||0;
|
|
let contestDice = calculateBasicDamage(Math.max(0, statValue + statMod));
|
|
|
|
// CV
|
|
let netDCV = parseInt(values["currentDCV"])||3;
|
|
let maneuverDCV = parseInt(values["martialManeuverDCV"+maneuverId])||0;
|
|
let halfDCV = (isDodging && (values["martialConcentrationDCV"+maneuverId] === "half")) ? true : false;
|
|
let zeroDCV = (isDodging && (values["martialConcentrationDCV"+maneuverId] === "zero")) ? true : false;
|
|
let netOCV = parseInt(values["ocvNet"])||3;
|
|
let maneuverOCV = parseInt(values["martialManeuverOCV"+maneuverId])||0;
|
|
let targetPenalty = parseInt(values["targetOCVpenalty"])||0;
|
|
|
|
// Martial maneuvers by default cost no endurance. Endurance costs used for flexibility.
|
|
let subtractENDAmt = parseInt(values["martialManeuverEndurance"+maneuverId])||0;
|
|
let isSet = (values.checkSet === "on") ? true : false;
|
|
let isBraced = (values.checkBrace === "on") ? true : false;
|
|
let braceMod = 0;
|
|
let isAoE = false;
|
|
let theRangePenalty = parseInt(values.rangeOCVpenalty)||0;
|
|
let hasRangePenalty = (theRangePenalty > 0) ? true : false;
|
|
let isRanged = (values.rangeMartial > 8) ? true : false;
|
|
|
|
// Keep mods within reasonable limits.
|
|
ocvMod = Math.max(0, (Math.min(modLimit, ocvMod)) );
|
|
dcvMod = Math.max(0, (Math.min(modLimit, dcvMod)) );
|
|
cslMod = Math.max(0, (Math.min(modLimit, cslMod)) );
|
|
|
|
// Defense Maneuver DCV modifier
|
|
|
|
// Braced modifiers.
|
|
if (isBraced) {
|
|
braceMod = 2;
|
|
halfDCV = true;
|
|
|
|
// Check to see if Brace nullifies the RMod penalty.
|
|
if (braceMod >= theRangePenalty) {
|
|
hasRangePenalty = false;
|
|
}
|
|
}
|
|
|
|
// Without Brace or another 1/2 DCV modifier, DCV should be the characters current DCV plus the Maneuver DCV and adds.
|
|
netDCV = zeroDCV ? 0 : getNetDCV(netDCV, maneuverDCV+dcvMod, halfDCV);
|
|
netOCV += maneuverOCV + ocvMod;
|
|
|
|
// Prepare hidden variables for the maneuver roll.
|
|
if (isBlocking) {
|
|
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (isContest) {
|
|
rollMessage = values["martialManeuverName"+maneuverId];
|
|
damageLabel = "Contest";
|
|
|
|
attributes.hiddenDamage = contestDice;
|
|
attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsContest = "true";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
|
|
} else if (isAttack) {
|
|
// Damage
|
|
damageObject = createDamageObject(values["hiddenMartialManeuverDamage"+maneuverId], isNormal, 0);
|
|
|
|
attributes.hiddenDamage = getDamageDice(damageObject.DC + modDC, 0, damageObject.normal, damageObject.pip);
|
|
attributes.hiddenStunMod = stunMod;
|
|
attributes.hiddenIsNormal = isNormal ? "true" : "false";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
|
|
} else if (isDodging) {
|
|
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else {
|
|
return;
|
|
}
|
|
|
|
// Display momentary OCV and DCV values (ephemeral)
|
|
if (! isDodging) {
|
|
netOCV -= (isAoE ? 0 : 1)*targetPenalty;
|
|
netOCV += isSet ? 1 : 0;
|
|
netOCV -= (hasRangePenalty ? (theRangePenalty - (isBraced ? braceMod : 0)) : 0);
|
|
}
|
|
attributes.ephemeralOCV = netOCV;
|
|
attributes.ephemeralDCV = netDCV;
|
|
|
|
// Send changes for use with damage roll template functions.
|
|
setAttrs(attributes);
|
|
|
|
// Create dice rolling script to send to a roll dialog.
|
|
if (isAttack || isContest) {
|
|
// Use the attack roll template.
|
|
|
|
// Contest or Attack Heading.
|
|
if (isContest) {
|
|
theRoll += "&{template:custom-contest} ";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=@{martialManeuverName"+maneuverId+"}}}";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
} else {
|
|
// If isNormal is TRUE, use the Normal Damage template. Else use the killing template.
|
|
theRoll += "&{template:custom"+(isNormal ? "-normal" : "") + "-attack} ";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}} ";
|
|
theRoll += "{{subtitle= " + (isNormal ? "Normal" : "Killing") + " Attack with @{martialManeuverName"+maneuverId+"}}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
}
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{ocvMod}[CSL]-@{targetOCVPenalty}[TargetOCV]-@{rangeOCVPenalty}[RangeOCV]+(?{Modifiers|0})[Modifiers]]]}}";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]-@{targetOCVPenalty}[TargetOCV]+@{ocvMod}[CSL]-@{rangeOCVPenalty}[RangeOCV]+(?{Modifiers|0})[Modifiers] ]]}}" + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
theRoll += (subtractENDAmt ? "{{END=[[@{martialManeuverEndurance"+maneuverId+"}]] (@{CurrentEND})}}" : "");
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
} else if (isBlocking) {
|
|
// Use the Defense template for a block.
|
|
theRoll += "&{template:custom-defense}";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}} ";
|
|
theRoll += "{{subtitle=Blocks with @{martialManeuverName"+maneuverId+"}}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{versus OCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{ocvMod}[CSL]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{ocvMod}[CSL]+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}} ";
|
|
}
|
|
if (subtractENDAmt != 0) {
|
|
theRoll += "{{END=[[@{martialManeuverEndurance"+maneuverId+"}]] (@{CurrentEND})}}";
|
|
}
|
|
} else if (isDodging) {
|
|
// Use the Defense template for a dodge.
|
|
theRoll += "&{template:custom-defense} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=@{martialManeuverName"+maneuverId+"}}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
if (subtractENDAmt != 0) {
|
|
theRoll += "{{END=[[@{martialManeuverEndurance"+maneuverId+"}]] (@{CurrentEND})}}";
|
|
}
|
|
} else {
|
|
return;
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
let theResult = new Object();
|
|
|
|
// Subtract END cost if option checked.
|
|
if (values.optionAutoSubtractEND != 0) {
|
|
subtractEndurance(subtractENDAmt);
|
|
}
|
|
|
|
finishRoll(results.rollId, theResult);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Add 1 to maneuverDamageCSL
|
|
on("clicked:damagePlus", function () {
|
|
getAttrs(["maneuverDamageCSL"], function(values) {
|
|
const currentValue = parseInt(values.maneuverDamageCSL)||0;
|
|
const modLimit = 20;
|
|
|
|
setAttrs({
|
|
"maneuverDamageCSL": Math.min(modLimit, currentValue+2)
|
|
});
|
|
|
|
});
|
|
});
|
|
|
|
// Subtract 1 from maneuverDamageCSL
|
|
on("clicked:damageMinus", function () {
|
|
getAttrs(["maneuverDamageCSL"], function(values) {
|
|
const currentValue = parseInt(values.maneuverDamageCSL)||0;
|
|
|
|
setAttrs({
|
|
"maneuverDamageCSL": Math.max(0, currentValue-2)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Correct out of range STUNx of maneuvers
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
on(`change:martialManeuverStunMod${maneuverId}`, (info) => {
|
|
getAttrs(["martialManeuverStunMod"+maneuverId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let min = 0;
|
|
let max = 2;
|
|
let STUNx = parseInt(values["martialManeuverStunMod"+maneuverId]||0);
|
|
|
|
attributes["martialManeuverStunMod"+maneuverId] = Math.min(Math.max(STUNx, min), max);
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* Use Maneuver XX Endurance */
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
on("clicked:buttonManeuverEND"+maneuverId, function() {
|
|
getAttrs(["martialManeuverEndurance"+maneuverId], function(values) {
|
|
subtractEndurance(parseInt(values["martialManeuverEndurance"+maneuverId]));
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* Update range penalty */
|
|
on("change:rangeMartial", function () {
|
|
getAttrs(["rangeMartial"], function(values) {
|
|
let theSelection = parseFloat(values.rangeMartial)||0;
|
|
let theOCVpenalty = parseInt(getRangePenalty(theSelection));
|
|
|
|
setAttrs({
|
|
"rangeOCVpenalty":theOCVpenalty
|
|
})
|
|
});
|
|
});
|
|
|
|
|
|
/* Clean Maneuver Damage Dice */
|
|
arrayOf(maxManeuverNum).forEach(num => {
|
|
// This function attempts to clean damage text input into text more likely to be rollable dice.
|
|
// Only characters 0-9, d, D, +, and - are passed to martial attack rolls.
|
|
|
|
var maneuverId = String(num).padStart(2,'0');
|
|
|
|
on(`change:martialManeuverDamage${maneuverId}`, function () {
|
|
getAttrs(["martialManeuverDamage"+maneuverId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
var martialManeuverDamage = values["martialManeuverDamage"+maneuverId];
|
|
martialManeuverDamage = martialManeuverDamage.replace(/[^\ddD\\+\\-]/g,"");
|
|
|
|
attributes["hiddenMartialManeuverDamage"+maneuverId] = martialManeuverDamage;
|
|
|
|
setAttrs(attributes);
|
|
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* ------------------------------------------------ */
|
|
/* --- Weapon Attacks and Hit Location Helpers --- */
|
|
/* ------------------------------------------------ */
|
|
|
|
// Update targetOCVpenalty.
|
|
on("change:optionHitLocationSystem change:targetSelection change:halveTargetOCVpenalty change:penaltySkillLevels", function () {
|
|
getAttrs(["optionHitLocationSystem","targetSelection","halveTargetOCVpenalty","penaltySkillLevels"], function(values) {
|
|
|
|
let penalty = 0;
|
|
let targetString = "3d6cs0cf0";
|
|
|
|
if (values.optionHitLocationSystem != 0) {
|
|
switch (parseInt(values.targetSelection)||1) {
|
|
case 1: penalty = 0;
|
|
break;
|
|
case 2: penalty = -8;
|
|
targetString = "1d3cs0cf0+2";
|
|
break;
|
|
case 3: penalty = -6;
|
|
targetString = "6";
|
|
break;
|
|
case 4: penalty = -5;
|
|
targetString = "1d2cs0cf0+6";
|
|
break;
|
|
case 5: penalty = -5;
|
|
targetString = "9";
|
|
break;
|
|
case 6: penalty = -3;
|
|
targetString = "1d2cs0cf0+9";
|
|
break;
|
|
case 7: penalty = -7;
|
|
targetString = "12";
|
|
break;
|
|
case 8: penalty = -8;
|
|
targetString = "13";
|
|
break;
|
|
case 9: penalty = -4;
|
|
targetString = "14";
|
|
break;
|
|
case 10: penalty = -6;
|
|
targetString = "1d2cs0cf0+14";
|
|
break;
|
|
case 11: penalty = -8;
|
|
targetString = "1d2cs0cf0+16";
|
|
break;
|
|
case 12: penalty = -4;
|
|
targetString = "1d6cs0cf0+3";
|
|
break;
|
|
case 13: penalty = -2;
|
|
targetString = "2d6cs0cf0+1";
|
|
break;
|
|
case 14: penalty = -1;
|
|
targetString = "2d6cs0cf0+4";
|
|
break;
|
|
case 15: penalty = -2;
|
|
targetString = "2d6cs0cf0+7";
|
|
break;
|
|
case 16: penalty = -4;
|
|
targetString = "1d6cs0cf0+12";
|
|
break;
|
|
default: penalty = 0;
|
|
}
|
|
|
|
if (values.halveTargetOCVpenalty != 0) {
|
|
penalty = heroRoundHigh(penalty/2);
|
|
}
|
|
|
|
// Apply penalty skill levels.
|
|
penalty = Math.min(0,penalty+(parseInt(values.penaltySkillLevels)||0));
|
|
}
|
|
|
|
// Update OCV penalty.. We flip it here so we can subtract it later.
|
|
setAttrs({
|
|
"targetOCVpenalty": -penalty,
|
|
"targetHitRoll": targetString
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
function hitLocationDetails(hitLocation) {
|
|
// Used to get information about a hit location.
|
|
let theMessage = "Chest";
|
|
let STUNx = 1;
|
|
let NSTUN = 1;
|
|
let BODYx = 1;
|
|
|
|
// Determine target location and stun multiplier.
|
|
switch (hitLocation) {
|
|
case 3:
|
|
case 4:
|
|
case 5:
|
|
theMessage = "Head";
|
|
STUNx = 5;
|
|
NSTUN = 2;
|
|
BODYx = 2;
|
|
break;
|
|
case 6:
|
|
theMessage = "Hands";
|
|
STUNx = 1;
|
|
NSTUN = 1/2;
|
|
BODYx = 1/2;
|
|
break;
|
|
case 7:
|
|
case 8:
|
|
theMessage = "Arms";
|
|
STUNx = 2;
|
|
NSTUN = 1/2;
|
|
BODYx = 1/2;
|
|
break;
|
|
case 9:
|
|
theMessage = "Shoulders";
|
|
STUNx = 3;
|
|
NSTUN = 1;
|
|
BODYx = 1;
|
|
break;
|
|
case 10:
|
|
case 11:
|
|
theMessage = "Chest";
|
|
STUNx = 3;
|
|
NSTUN = 1;
|
|
BODYx = 1;
|
|
break;
|
|
case 12:
|
|
theMessage = "Stomach";
|
|
STUNx = 4;
|
|
NSTUN = 3/2;
|
|
BODYx = 1;
|
|
break;
|
|
case 13:
|
|
theMessage = "Vitals";
|
|
STUNx = 4;
|
|
NSTUN = 3/2;
|
|
BODYx = 2;
|
|
break;
|
|
case 14:
|
|
theMessage = "Thighs";
|
|
STUNx = 2;
|
|
NSTUN = 1;
|
|
BODYx = 1;
|
|
break;
|
|
case 15:
|
|
case 16:
|
|
theMessage = "Legs";
|
|
STUNx = 2;
|
|
NSTUN = 1/2;
|
|
BODYx = 1/2;
|
|
break;
|
|
case 17:
|
|
case 18:
|
|
case 19: // Low Shot only
|
|
theMessage = "Feet";
|
|
STUNx = 1;
|
|
NSTUN = 1/2;
|
|
BODYx = 1/2;
|
|
break;
|
|
}
|
|
|
|
normalMessage = hitLocation + ": " + theMessage;
|
|
killMessage = normalMessage;
|
|
|
|
if (NSTUN != 1) {
|
|
normalMessage += " STUNx" + NSTUN;
|
|
}
|
|
if (BODYx != 1) {
|
|
normalMessage += " BODYx" + BODYx;
|
|
killMessage += " BODYx" + BODYx;
|
|
}
|
|
|
|
var theHitLocation = {
|
|
normalMessage: normalMessage,
|
|
killMessage: killMessage,
|
|
roll: hitLocation,
|
|
STUNx: STUNx,
|
|
NSTUN: NSTUN,
|
|
BODYx: BODYx
|
|
};
|
|
|
|
return theHitLocation;
|
|
}
|
|
|
|
function convertStunToBody(diceRolls) {
|
|
let computed = 0;
|
|
|
|
for(let groupOfDice of diceRolls) {
|
|
if (groupOfDice.sides == 3) {
|
|
// calculate normal damage of d3 dice.
|
|
for (let element of groupOfDice.results) {
|
|
if (element === 3) {
|
|
computed = computed+1;
|
|
} else if (element === 2) {
|
|
computed = computed + Math.floor(Math.random()*2); // Flip a coin. 0 or 1 BODY corresponding to a '3' or '4' on a d6.
|
|
} else {
|
|
computed = computed+0; // Add nothing.
|
|
}
|
|
}
|
|
} else if (groupOfDice.sides == 6) {
|
|
// calculate normal damage of d6 dice.
|
|
for (let element of groupOfDice.results) {
|
|
if (element === 1) {
|
|
computed = computed+0; // Add nothing.
|
|
} else if (element === 6) {
|
|
computed = computed+2;
|
|
} else {
|
|
computed = computed+1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return computed;
|
|
}
|
|
|
|
|
|
function getRangePenalty(range) {
|
|
// Uses a lookup table or for longer ranges calculates the range penalty for an attack.
|
|
let thePenalty = 0;
|
|
range = heroRoundLow(range);
|
|
|
|
if (range <= 8) {
|
|
thePenalty = 0;
|
|
} else if (range <= 16) {
|
|
thePenalty = -2;
|
|
} else if (range <= 32) {
|
|
thePenalty = -4;
|
|
} else if (range <= 64) {
|
|
thePenalty = -6;
|
|
} else if (range <= 125) {
|
|
thePenalty = -8;
|
|
} else {
|
|
thePenalty = -(8 + 2 * Math.ceil((Math.log2( range/125 ))));
|
|
}
|
|
|
|
// Return positive value. We'll make it negative in the roll.
|
|
return -thePenalty;
|
|
}
|
|
|
|
|
|
/* ------------------------ */
|
|
/* --- Weapon Attacks --- */
|
|
/* ------------------------ */
|
|
|
|
function createDamageObject(theDamage, isNormal, theAdvantage) {
|
|
// theDamage should be a string of dice.
|
|
// isNormal is a boolean.
|
|
// theAdvantage is a float.
|
|
|
|
let theDC = 0;
|
|
let dice = "0";
|
|
let mods = "0";
|
|
let halfDice = "0";
|
|
let theAdds = "0";
|
|
let thePip = 0;
|
|
|
|
// First parse damage text for valid Hero damage dice.
|
|
// Remove extraneous characters.
|
|
theDamage = theDamage.replace(/[^\ddD\\+\\-]/g,"");
|
|
|
|
// Check for d6 dice.
|
|
if (theDamage.includes('d6')) {
|
|
dice = theDamage.split('d6')[0];
|
|
mods = theDamage.split('d6')[1];
|
|
} else {
|
|
dice = "0";
|
|
mods = theDamage;
|
|
}
|
|
|
|
// Check for "d6", without a "1"
|
|
if (dice.length === 0) {
|
|
dice = "1";
|
|
}
|
|
|
|
// Check for half d6 dice.
|
|
if (theDamage.includes('d3')) {
|
|
halfDice = mods.split('d3')[0];
|
|
theAdds = mods.split('d3')[1];
|
|
} else {
|
|
halfDice = "0";
|
|
theAdds = mods;
|
|
}
|
|
|
|
halfDice = halfDice.replace(/\D/g,'');
|
|
|
|
// Check for "d3" without a "1".
|
|
if (halfDice.length === 0) {
|
|
halfDice = "1";
|
|
}
|
|
|
|
theAdds = theAdds.replace(/\D-/g,'');
|
|
|
|
if (theAdds.length > 0) {
|
|
if ( ( theAdds === "1" ) || ( theAdds === "+1" )) {
|
|
thePip = +1;
|
|
} else if (theAdds === "-1") {
|
|
thePip = -1;
|
|
} else {
|
|
thePip = 0;
|
|
}
|
|
} else {
|
|
thePip = 0;
|
|
}
|
|
|
|
// Calculate damage class, trying to match HERO DC tables.
|
|
if (isNormal) {
|
|
theDC = (1 + theAdvantage) * (Number(dice) + 0.5 * Number(halfDice));
|
|
if (theAdvantage === 0.25) {
|
|
theDC = Math.round(theDC);
|
|
if (Number(dice) === 1) {
|
|
theDC = 2;
|
|
}
|
|
} else if (theAdvantage === 0.75) {
|
|
theDC = Math.floor(theDC + 0.5);
|
|
} else {
|
|
theDC = Math.ceil(theDC);
|
|
}
|
|
} else {
|
|
if (theAdvantage === 0) {
|
|
theDC = (1 + theAdvantage) * ( 3 * Number(dice) + 2 * Number(halfDice) + thePip);
|
|
theDC = Math.round(theDC);
|
|
} else if (theAdvantage === 0.25) {
|
|
// Standard 3:2:1 points ratio doesn't work.
|
|
theDC = (1 + theAdvantage) * ( 3.2 * Number(dice) + 1.8 * Number(halfDice) + 1 * thePip);
|
|
theDC = Math.round(theDC);
|
|
} else if (theAdvantage === 0.5) {
|
|
// Standard 3:2:1 points ratio doesn't work.
|
|
theDC = (1 + theAdvantage) * ( 3 * Number(dice) + 1.8 * Number(halfDice) + 1 * thePip);
|
|
theDC = Math.round(theDC);
|
|
} else if (theAdvantage === 0.75) {
|
|
// Standard 3:2:1 points ratio doesn't work.
|
|
theDC = (1 + theAdvantage) * ( 2.96 * Number(dice) + 1.65 * Number(halfDice) + 0.71 * thePip);
|
|
theDC = Math.ceil(theDC);
|
|
} else if (theAdvantage === 1) {
|
|
theDC = (1 + theAdvantage) * ( 3 * Number(dice) + 2 * Number(halfDice) + 1 * thePip);
|
|
// Need disambiguation.
|
|
if (thePip === -1) {
|
|
theDC += 1;
|
|
}
|
|
theDC = Math.round(theDC);
|
|
} else if (theAdvantage === 1.25) {
|
|
theDC = (1 + theAdvantage) * ( 3.2 * Number(dice) + 1.8 * Number(halfDice) + 1 * thePip);
|
|
// Need disambiguation.
|
|
if (thePip === -1) {
|
|
theDC += 1;
|
|
if (theDC === 19) {
|
|
theDC += 1;
|
|
}
|
|
}
|
|
theDC = Math.ceil(theDC);
|
|
} else if (theAdvantage === 1.5) {
|
|
theDC = (1 + theAdvantage) * ( 3 * Number(dice) + 2 * Number(halfDice) + 1 * thePip);
|
|
// Need disambiguation.
|
|
if (thePip === -1) {
|
|
theDC += 2;
|
|
if (theDC === 14.5) {
|
|
theDC -= 1;
|
|
} else if (theDC === 29) {
|
|
theDC -= 1;
|
|
}
|
|
}
|
|
theDC = Math.ceil(theDC);
|
|
} else if (theAdvantage === 1.75) {
|
|
theDC = (1 + theAdvantage) * ( 3 * Number(dice) + 2 * Number(halfDice) + 1 * thePip);
|
|
// Need disambiguation.
|
|
if (thePip === -1) {
|
|
theDC += 2;
|
|
}
|
|
theDC = Math.ceil(theDC);
|
|
} else {
|
|
// (theAdvantage === 2)
|
|
theDC = (1 + theAdvantage) * ( 3 * Number(dice) + 2 * Number(halfDice) + 1 * thePip);
|
|
if (thePip === -1) {
|
|
theDC += 2;
|
|
}
|
|
theDC = Math.ceil(theDC);
|
|
}
|
|
}
|
|
|
|
return {
|
|
advantage: theAdvantage,
|
|
normal: isNormal,
|
|
DC: theDC,
|
|
d6: Number(dice),
|
|
d3: Number(halfDice),
|
|
pip: thePip,
|
|
adds: Number(theAdds)
|
|
};
|
|
}
|
|
|
|
|
|
function getDamageDice(damageClass, advantage, isNormal, thePip) {
|
|
// Converts Damage Class into Damage Dice following the tables of 6E2 101 and the Expanded Damage Tables.
|
|
// This is not exactly straightforward and requires special cases.
|
|
//
|
|
// Note that for killing damage cases with zero advantage AND
|
|
// if thePip is -1 the function will convert xd6+d3 to (x+1)d6-1.
|
|
// Pass -1 to thePip if base damage has -1 or if the player option is for (x+1)d6-1.
|
|
|
|
let normDC = (damageClass/(1+advantage)).toFixed(3);
|
|
let integerPart = Math.floor(normDC);
|
|
let remainder = (normDC - integerPart).toFixed(3);
|
|
let numberOfD6 = 0;
|
|
let numberOfD3 = 0;
|
|
let theAdds = 0;
|
|
let plusPipHigh = 0;
|
|
let plusPipLow = 0;
|
|
let minusPipHigh = 0;
|
|
let minusPipLow = 0;
|
|
let limitD3 = 0;
|
|
let limitD6 = 0;
|
|
let dice = "0";
|
|
|
|
if (isNormal) {
|
|
// Conditions leading to zero, half, or full d6 rounding differs by advantage.
|
|
if (advantage === 0.25) {
|
|
limitD3 = 0.4;
|
|
limitD6 = 0.7;
|
|
} else if (advantage === 0.5) {
|
|
limitD3 = 0.60;
|
|
} else if (advantage === 0.75) {
|
|
limitD3 = 0.4;
|
|
limitD6 = 0.8;
|
|
} else if (advantage === 1) {
|
|
limitD3 = 0.45;
|
|
} else if (advantage === 1.25) {
|
|
limitD3 = 0.55;
|
|
} else if (advantage === 1.5) {
|
|
limitD3 = 0.55;
|
|
} else if (advantage === 1.75) {
|
|
limitD3 = 0.50;
|
|
} else {
|
|
limitD3 = 0.50;
|
|
}
|
|
} else {
|
|
// Killing damage dice conditions.
|
|
if (advantage === 0) {
|
|
plusPipLow = 0.2;
|
|
plusPipHigh = 0.4;
|
|
limitD3 = 0.65;
|
|
} else if (advantage === 0.25) {
|
|
// Not used.
|
|
} else if (advantage === 0.5) {
|
|
plusPipLow = 0.2;
|
|
plusPipHigh = 0.5;
|
|
limitD3 = 0.55;
|
|
minusPipLow = 0.75;
|
|
} else if (advantage === 0.75) {
|
|
plusPipLow = 0.18;
|
|
plusPipHigh = 0.4;
|
|
limitD3 = 0.47;
|
|
minusPipLow = 0.72;
|
|
minusPipHigh = 0.91;
|
|
} else if (advantage === 1) {
|
|
plusPipLow = 0.2;
|
|
plusPipHigh = 0.51;
|
|
limitD3 = 0.55;
|
|
minusPipLow = 0.8;
|
|
} else if (advantage === 1.25) {
|
|
plusPipLow = 0.2;
|
|
plusPipHigh = 0.45;
|
|
limitD3 = 0.5;
|
|
minusPipLow = 0.8;
|
|
} else if (advantage === 1.5) {
|
|
plusPipLow = 0.27;
|
|
plusPipHigh = 0.61;
|
|
limitD3 = 0.62;
|
|
minusPipLow = 0.85;
|
|
} else if (advantage === 1.75) {
|
|
plusPipLow = 0.33;
|
|
plusPipHigh = 0.64;
|
|
limitD3 = 0.65;
|
|
minusPipLow = 0.905;
|
|
} else {
|
|
// advantage === 2
|
|
plusPipLow = 0.25;
|
|
plusPipHigh = 0.64;
|
|
limitD3 = 0.65;
|
|
minusPipLow = 0.85;
|
|
}
|
|
}
|
|
|
|
// Construct Hero standard dice string.
|
|
if (isNormal) {
|
|
// Determine xd6 + (0 or 1)d3.
|
|
if (advantage === 0) {
|
|
numberOfD6 = damageClass;
|
|
numberOfD3 = 0;
|
|
} else if (advantage === 0.25) {
|
|
if (damageClass ===1) {
|
|
numberOfD6 = 0;
|
|
numberOfD3 = 1;
|
|
} else if (damageClass == 2) {
|
|
numberOfD6 = 1;
|
|
numberOfD3 = 0;
|
|
} else {
|
|
numberOfD6 = Math.floor(normDC);
|
|
numberOfD6 += (normDC - numberOfD6 > limitD6) ? 1 : 0;
|
|
numberOfD3 = ((normDC - numberOfD6 > limitD3) && (normDC - numberOfD6 < limitD6)) ? 1 : 0;
|
|
}
|
|
} else if (advantage === 0.75) {
|
|
numberOfD6 = Math.floor(normDC);
|
|
|
|
if ((remainder > limitD3) && (remainder < limitD6)) {
|
|
numberOfD3 = 1;
|
|
} else if (remainder > limitD6) {
|
|
numberOfD6 += 1;
|
|
}
|
|
} else {
|
|
numberOfD6 = Math.floor(normDC);
|
|
|
|
if (remainder > limitD3) {
|
|
numberOfD3 = 1;
|
|
}
|
|
}
|
|
|
|
// Assemble standard hero normal damage string.
|
|
if (numberOfD6 !== 0) {
|
|
dice = numberOfD6.toString() + "d6";
|
|
if (numberOfD3 !== 0) {
|
|
dice = dice + "+" + numberOfD3.toString() + "d3";
|
|
}
|
|
} else if ((numberOfD6 === 0) && (numberOfD3 !== 0)) {
|
|
dice = numberOfD3.toString() + "d3";
|
|
}
|
|
} else {
|
|
normDC = (damageClass/(1+advantage)/3).toFixed(3);
|
|
integerPart = Math.floor(normDC);
|
|
remainder = (normDC - integerPart).toFixed(3);
|
|
numberOfD6 = integerPart;
|
|
|
|
if (advantage === 0) {
|
|
if ((remainder > plusPipLow) && (remainder < plusPipHigh)) {
|
|
theAdds = 1;
|
|
} else if (remainder > limitD3) {
|
|
if (thePip === -1) {
|
|
numberOfD6 += 1;
|
|
numberOfD3 = 0;
|
|
theAdds = -1;
|
|
} else {
|
|
numberOfD3 = 1;
|
|
}
|
|
}
|
|
} else if (advantage === 0.25) {
|
|
// 0.25 works differently.
|
|
integerPart = Math.floor(damageClass/4);
|
|
numberOfD6 = integerPart + ((damageClass % 4) === 3 ? 1 : 0);
|
|
numberOfD3 = ((damageClass % 4) === 2 ? 1 : 0);
|
|
theAdds = ((damageClass % 4) === 1 ? 1 : ((damageClass % 4) === 3 ? -1 : 0));
|
|
} else if (advantage === 0.5) {
|
|
if ((remainder > plusPipLow) && (remainder < plusPipHigh)) {
|
|
theAdds = 1;
|
|
} else if (remainder > minusPipLow) {
|
|
theAdds = -1;
|
|
numberOfD6 += 1;
|
|
} else if (remainder > limitD3) {
|
|
numberOfD3 = 1;
|
|
theAdds = 0;
|
|
}
|
|
|
|
// Special case: player wants xd6-1, which isn't in the table.
|
|
if (( (damageClass % 9) === 3) && (thePip === -1)) {
|
|
numberOfD6 += 1;
|
|
numberOfD3 = 0;
|
|
theAdds = -1;
|
|
} else if (( (damageClass % 9) === 4) && (thePip === -1)) {
|
|
theAdds = 0;
|
|
}
|
|
} else if (advantage === 0.75) {
|
|
if ((remainder > plusPipLow) && (remainder < plusPipHigh)) {
|
|
theAdds = 1;
|
|
} else if ((remainder > minusPipLow) && (remainder < minusPipHigh)) {
|
|
theAdds = -1;
|
|
numberOfD6 += 1;
|
|
} else if (remainder > limitD3) {
|
|
numberOfD3 = 1;
|
|
}
|
|
|
|
// More special cases
|
|
if (damageClass === 26) {
|
|
numberOfD6 = 5;
|
|
numberOfD3 = 0;
|
|
} else if (damageClass === 30) {
|
|
numberOfD6 = 6;
|
|
numberOfD3 = 0;
|
|
theAdds = -1;
|
|
}
|
|
} else {
|
|
if ((remainder > plusPipLow) && (remainder < plusPipHigh)) {
|
|
theAdds = 1;
|
|
} else if (remainder > minusPipLow) {
|
|
theAdds = -1;
|
|
numberOfD6 += 1;
|
|
} else if (remainder > limitD3) {
|
|
numberOfD3 = 1;
|
|
}
|
|
}
|
|
|
|
// Assemble standard hero killing damage string.
|
|
if (numberOfD6 !== 0) {
|
|
dice = numberOfD6.toString() + "d6";
|
|
if (numberOfD3 !== 0) {
|
|
dice += "+" + numberOfD3.toString() + "d3";
|
|
}
|
|
if (theAdds > 0) {
|
|
dice += "+1";
|
|
} else if (theAdds < 0) {
|
|
dice += "-1";
|
|
}
|
|
} else if (numberOfD3 !== 0) {
|
|
dice = numberOfD3.toString() + "d3";
|
|
if (theAdds > 0) {
|
|
dice += "+1";
|
|
} else if (theAdds < 0) {
|
|
dice += "-1";
|
|
}
|
|
} else {
|
|
if (theAdds > 0) {
|
|
dice = "+1";
|
|
} else {
|
|
dice = "0";
|
|
}
|
|
}
|
|
}
|
|
|
|
// Return text string.
|
|
return dice;
|
|
}
|
|
|
|
|
|
function standardDamageString(d6, d3, pip, adds) {
|
|
return d6.toString()+"d6+"+d3.toString()+"d3+"+(pip+adds).toString();
|
|
}
|
|
|
|
|
|
arrayOf(maxWeaponNum).forEach(num => {
|
|
// This function attempts to clean weapon damage text input into text more likely to be rollable dice.
|
|
// Only characters 0-9, d, D, +, and - are passed to attack rolls.
|
|
// Calculates base damage class (DC) accounting for weapon advantages.
|
|
// Dice other than d6 and d3 will break the DC. **** Or do we refuse to allow them? ****
|
|
|
|
var weaponId = String(num).padStart(2,'0');
|
|
|
|
on(`change:weaponDamage${weaponId} change:weaponAdvantage${weaponId} change:weaponDamageType${weaponId} change:weaponCSL${weaponId} change:weaponEnhancedByStr${weaponId} change:weaponStrengthMin${weaponId} change:weaponStrength${weaponId} change:optionD6MinusOne change:optionWeaponDamageCap`, function () {
|
|
getAttrs(["weaponDamage"+weaponId, "weaponAdvantage"+weaponId, "weaponDamageType"+weaponId, "weaponCSL"+weaponId, "optionWeaponDamageCap", "optionD6MinusOne", "weaponEnhancedByStr"+weaponId, "weaponStrengthMin"+weaponId, "weaponStrength"+weaponId, "strengthNet"], function(values) {
|
|
|
|
var attributes = new Object();
|
|
|
|
let theDamage = values["weaponDamage"+weaponId]||"";
|
|
let theAdvantage = parseFloat(values["weaponAdvantage"+weaponId])||0;
|
|
let isNormal = (values["weaponDamageType"+weaponId] === "normal") ? true : false;
|
|
let isPower = ( (values["weaponDamageType"+weaponId] === "power") || (values["weaponDamageType"+weaponId] === "mental")) ? true : false;
|
|
|
|
// Parse damage string
|
|
let damageObject = createDamageObject(theDamage, (isNormal ? true : isPower), theAdvantage);
|
|
let theDC = damageObject.DC;
|
|
let thePip = damageObject.pip;
|
|
|
|
// Modifiers and options
|
|
let capDamage = (values.optionWeaponDamageCap === "on") ? true : false;
|
|
let optionMinusOne = (values.optionD6MinusOne === "on") ? true : false;
|
|
let damageLevels = Math.max(0, (parseInt(values["weaponCSL"+weaponId]/2)||0) );
|
|
let strengthEnhanced = (values["weaponEnhancedByStr"+weaponId] === "on") ? true : false;
|
|
let strengthApplied = parseInt(values["weaponStrength"+weaponId])||0;
|
|
let minStrength = parseInt(values["weaponStrengthMin"+weaponId])||0;
|
|
let strengthLevels = 0;
|
|
let adjustedDC = 0;
|
|
let adjustedDamage = theDamage;
|
|
let penaltyOCV = 0;
|
|
|
|
// Override optionMinusOne if the base damage is Xd6+1d3 or Xd6-1.
|
|
if (damageObject.d3 === 1) {
|
|
optionMinusOne = false;
|
|
} else if (thePip === -1) {
|
|
optionMinusOne = true;
|
|
}
|
|
|
|
// Prevent out of range strength.
|
|
if (minStrength < 0) {
|
|
minStrength = 0;
|
|
attributes["weaponStrengthMin"+weaponId] = 0;
|
|
} else if (strengthApplied > values.strengthNet) {
|
|
strengthApplied = values.strengthNet;
|
|
attributes["weaponStrength"+weaponId] = strengthApplied;
|
|
}
|
|
|
|
// Determine DCs increased by strength.
|
|
if (strengthApplied >= minStrength) {
|
|
strengthLevels = Math.floor((strengthApplied - minStrength)/5);
|
|
if (strengthEnhanced) {
|
|
damageLevels += strengthLevels;
|
|
}
|
|
} else {
|
|
strengthLevels = -heroRoundLow(-(strengthApplied - minStrength)/5);
|
|
penaltyOCV = strengthLevels;
|
|
if (strengthEnhanced) {
|
|
damageLevels += strengthLevels;
|
|
}
|
|
}
|
|
|
|
// Adjust DC due to Strength levels and CSLs.
|
|
if (capDamage && (damageLevels > theDC)) {
|
|
adjustedDC = 2*theDC;
|
|
} else {
|
|
adjustedDC = theDC + damageLevels;
|
|
}
|
|
|
|
// Prevent a negative DC.
|
|
if (adjustedDC < 0) {
|
|
adjustedDC = 0;
|
|
}
|
|
|
|
// Make preference for d6-1 over d3 where ambiguous as per player option.
|
|
if ( (optionMinusOne) && (!isNormal) && (theAdvantage === 0) ) {
|
|
thePip = -1;
|
|
} else if ( (optionMinusOne) && (!isNormal) && (theAdvantage === 0.5) && ( (theDC % 9) === 3) ) {
|
|
thePip = -1;
|
|
}
|
|
|
|
// Calculate final weapon damage
|
|
adjustedDamage = getDamageDice(adjustedDC, theAdvantage, (isNormal ? true : isPower), thePip);
|
|
|
|
attributes["hiddenWeaponSign"+weaponId] = thePip;
|
|
attributes["hiddenWeaponDamage"+weaponId] = adjustedDamage;
|
|
attributes["weaponAdjustedDamage"+weaponId] = adjustedDamage;
|
|
attributes["weaponAdjustedDC"+weaponId] = adjustedDC;
|
|
attributes["WeaponDC"+weaponId] = theDC;
|
|
attributes["weaponPenalty"+weaponId] = penaltyOCV;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Synchronize range choices with target range.
|
|
on("change:rangeManeuver change:rangeMartial change:rangePower", function () {
|
|
getAttrs(["rangeManeuver", "rangeMartial", "rangePower"], function(values) {
|
|
|
|
let newRange;
|
|
const maneuverRange = parseInt(values.rangeManeuver)||0;
|
|
const martialRange = parseInt(values.rangeMartial)||0;
|
|
const powerRange = parseInt(values.rangePower)||0;
|
|
|
|
if (martialRange === maneuverRange) {
|
|
newRange = powerRange;
|
|
} else if (martialRange === powerRange) {
|
|
newRange = maneuverRange;
|
|
} else {
|
|
newRange = martialRange;
|
|
}
|
|
|
|
setAttrs({
|
|
"rangeManeuver":newRange,
|
|
"rangeMartial":newRange,
|
|
"rangePower":newRange,
|
|
"rangeToTarget":newRange
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Show set weapon damage dialog
|
|
arrayOf(maxWeaponNum).forEach(num => {
|
|
var weaponId = String(num).padStart(2,'0');
|
|
on(`clicked:setDamage${weaponId}`, (info) => {
|
|
getAttrs(["activateDeleteChecks"], function(values) {
|
|
|
|
if (values.activateDeleteChecks !== "on") {
|
|
|
|
setAttrs({
|
|
"setDamageToggle":weaponId
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Correct out of range STUNx
|
|
arrayOf(maxWeaponNum).forEach(num => {
|
|
var weaponId = String(num).padStart(2,'0');
|
|
on(`change:weaponStunMod${weaponId}`, (info) => {
|
|
getAttrs(["weaponStunMod"+weaponId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let min = 0;
|
|
let max = 2;
|
|
let STUNx = parseInt(values["weaponStunMod"+weaponId]||0);
|
|
|
|
attributes["weaponStunMod"+weaponId] = Math.min(Math.max(STUNx, min), max);
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Range Based on Strength
|
|
arrayOf(maxWeaponNum-1).forEach(num => {
|
|
var weaponId = String(num).padStart(2,'0');
|
|
on(`change:rangeBasedOnStr${weaponId} change:weaponMass${weaponId} change:weaponStrength${weaponId}`, (info) => {
|
|
getAttrs(["rangeBasedOnStr"+weaponId, "weaponMass"+weaponId, "weaponStrength"+weaponId], function(values) {
|
|
|
|
var attributes = new Object();
|
|
|
|
let getRange = (values["rangeBasedOnStr"+weaponId] === "on") ? true : false;
|
|
let mass = parseInt(values["weaponMass"+weaponId])||0;
|
|
let strengthUsed = parseInt(values["weaponStrength"+weaponId])||0;
|
|
let range = 0;
|
|
let strMin = 0;
|
|
let delta = 0;
|
|
|
|
if (getRange) {
|
|
if (mass <= 8) {
|
|
strMin = 1;
|
|
} else if (mass <= 16) {
|
|
strMin = 2;
|
|
} else if (mass <= 25) {
|
|
strMin = 3;
|
|
} else if (mass <= 38) {
|
|
strMin = 4;
|
|
} else {
|
|
strMin = 5 * Math.log2(mass/25);
|
|
}
|
|
|
|
delta = Math.floor(strengthUsed - strMin);
|
|
|
|
if ((getRange) && (delta > 0)) {
|
|
for (let i = 1; i < delta; i++) {
|
|
if (i < 4) {
|
|
range += 2;
|
|
} else if ( (i % 5) < 2) {
|
|
range += 1;
|
|
} else {
|
|
range += 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
attributes["weaponRange"+weaponId] = range/2;
|
|
|
|
setAttrs(attributes);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Show weapons
|
|
on("clicked:buttonSetOK", function () {
|
|
setAttrs({
|
|
"setDamageToggle":0
|
|
});
|
|
});
|
|
|
|
|
|
// Roll weapon damage
|
|
on("clicked:hiddenDamageRoll", function () {
|
|
getAttrs(["hiddenIsNormal", "hiddenIsContest", "hiddenIsPower", "hiddenIsAoE", "hiddenStunMod", "hiddenMessage", "optionHitLocationSystem", "whisperToGM", "character_title", "dingbat"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
let useHitLocations = (values.optionHitLocationSystem === "on") ? true : false;
|
|
let isNormal = (values.hiddenIsNormal === "true") ? true : false;
|
|
let isContest = (values.hiddenIsContest === "true") ? true : false;
|
|
let isPower = (values.hiddenIsPower === "true") ? true : false;
|
|
let isAoE = (values.hiddenIsAoE === "true") ? true : false;
|
|
let dmgType = (isContest || isPower) ? "ATTR" : (isNormal ? "STUN" : "BODY");
|
|
let otherDmgType = (isContest || isPower) ? "PIPS" : (isNormal ? "BODY" : "STUN");
|
|
let stunMod = Math.max(-2, Math.min(2, (parseInt(values.hiddenStunMod)||0)));
|
|
let theMessage;
|
|
let theHitLocation;
|
|
let theSTUNMultiplier = Math.floor(Math.random()*3 + 1);
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
|
|
theRoll += "&{template:custom"+ (isPower ? "-power" : "") + (isNormal ? "-normal" : "") + (isContest ? "-contest" : "") + "-damage} ";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}} ";
|
|
theRoll += "{{subtitle=" + values.hiddenMessage + (isContest ? " Strength Contest " : (isPower ? " Result " : " Damage ")) + "}} ";
|
|
|
|
theRoll += "{{"+dmgType+"=[[@{hiddenDamage}]]}}";
|
|
theRoll += "{{"+otherDmgType+"=[[0[See "+dmgType+"]]]}}";
|
|
|
|
if (useHitLocations && !isContest & !isPower) {
|
|
theRoll += " {{HITLOC=[[@{targetHitRoll}]]}}";
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
let theResult = new Object();
|
|
var computed = parseInt(results.results[dmgType].result)||0;
|
|
|
|
// Get hit location message if system used.
|
|
if (useHitLocations && !isContest && !isAoE && !isPower) {
|
|
theHitLocation = hitLocationDetails(results.results.HITLOC.result);
|
|
theMessage = isNormal ? theHitLocation.normalMessage : theHitLocation.killMessage;
|
|
theSTUNMultiplier = Math.max(1, (theHitLocation.STUNx + stunMod));
|
|
} else if (!useHitLocations && !isContest && !isAoE && !isPower) {
|
|
theSTUNMultiplier = Math.max(1, (theSTUNMultiplier + stunMod));
|
|
} else if (isAoE && !isContest && !isPower) {
|
|
theMessage = "AoE";
|
|
theSTUNMultiplier = Math.max(1, (theSTUNMultiplier + stunMod));
|
|
}
|
|
|
|
if (isPower || isContest || isNormal) {
|
|
// Convert dice roll to equivalent BODY damage.
|
|
computed = convertStunToBody(results.results[dmgType].rolls);
|
|
} else {
|
|
computed *= theSTUNMultiplier;
|
|
computed = String(computed) + " (BODY x" + theSTUNMultiplier + ")";
|
|
}
|
|
|
|
theResult[otherDmgType] = computed;
|
|
|
|
if (useHitLocations && !isContest) {
|
|
theResult.HITLOC = theMessage;
|
|
}
|
|
|
|
finishRoll(results.rollId, theResult);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Roll attack for Weapon XX.
|
|
arrayOf(maxWeaponNum).forEach(num => {
|
|
var weaponId = String(num).padStart(2,'0');
|
|
on(`clicked:attackWeapon${weaponId}`, (info) => {
|
|
getAttrs(["useManeuvers", "martialManeuverSelection"], function(values) {
|
|
if (values.useManeuvers === "false") {
|
|
// Activate martial maneuver
|
|
let martialManeuverSelection = values.martialManeuverSelection;
|
|
let maneuverId = martialManeuverSelection.slice(-2);
|
|
|
|
weaponMartialAttack(weaponId, maneuverId);
|
|
} else {
|
|
// Activate standard maneuver
|
|
weaponAttack(weaponId);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Function for handling standard maneuver weapon attacks.
|
|
function weaponAttack(weaponId) {
|
|
getAttrs(["weaponName"+weaponId, "weaponDamageType"+weaponId, "weaponStunMod"+weaponId, "weaponEndurance"+weaponId, "weaponAreaEffect"+weaponId, "weaponRangeMod"+weaponId, "hiddenWeaponSign"+weaponId, "weaponAdjustedDC"+weaponId, "hiddenWeaponDamage"+weaponId, "weaponDC"+weaponId, "weaponDamage"+weaponId, "weaponOCV"+weaponId, "weaponStrength"+weaponId, , "weaponStrengthMin"+weaponId, "weaponEnhancedByStr"+weaponId, "weaponAdvantage"+weaponId, "weaponCSL"+weaponId, "optionAutoSubtractEND", "optionHitLocationSystem", "optionD6MinusOne", "optionWeaponDamageCap", "whisperToGM", "character_title", "displayDegreeOfSuccess", "rangeToTarget", "rangeOCVpenalty", "maneuverSelection", "maneuverDCVmod", "maneuverOCVmod", "variableOCVmod", "checkBrace", "checkSet", "strengthNet", "currentDCV", "velocity", "hiddenBasicDamage", "dingbat", "ocvNet", "targetOCVpenalty", "variableOCVmod"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var attributes = new Object();
|
|
|
|
let isAoE = (values["weaponAreaEffect"+weaponId] === "on") ? true : false;
|
|
const useHitLocations = (values.optionHitLocationSystem === "on") ? true : false;
|
|
let isNormal = (values["weaponDamageType"+weaponId] === "normal") ? true : false;
|
|
let isPower = ( (values["weaponDamageType"+weaponId] === "power") || (values["weaponDamageType"+weaponId] === "mental")) ? true : false;
|
|
let isMental = (values["weaponDamageType"+weaponId] === "mental") ? true : false;
|
|
let dispDoS = (values.displayDegreeOfSuccess === "on") ? true : false;
|
|
let stunMod = parseInt(values["weaponStunMod"+weaponId])||0;
|
|
let subtractENDAmt = parseInt(values["weaponEndurance"+weaponId])||0;
|
|
let dmgType = isNormal ? "STUN" : "BODY";
|
|
let otherDmgType = isNormal ? "BODY" : "STUN";
|
|
let rollMessage = "attack";
|
|
let damageLabel = "Damage";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const modLimit = 20;
|
|
|
|
// Update weapon damage for maneuvers that add damage.
|
|
let adjustedDC = parseInt(values["weaponAdjustedDC"+weaponId])||0;
|
|
let baseDC = parseInt(values["weaponDC"+weaponId])||0;
|
|
let theAdvantage = parseFloat(values["weaponAdvantage"+weaponId])||0;
|
|
let theSign = parseInt(values["hiddenWeaponSign"+weaponId])||0;
|
|
let capDamage = (values.optionWeaponDamageCap === "on") ? true : false;
|
|
let strengthApplied = parseInt(values["weaponStrength"+weaponId])||0;
|
|
let minStrength = parseInt(values["weaponStrengthMin"+weaponId])||0;
|
|
let strengthEnhanced = (values["weaponEnhancedByStr"+weaponId] === "on") ? true : false;
|
|
let damageLevels = parseInt(values["weaponCSL"+weaponId]/2)||0;
|
|
let velocity = parseInt(values["velocity"])||0;
|
|
let velocityDC = 0;
|
|
|
|
// CV
|
|
let netDCV = parseInt(values["currentDCV"])||3;
|
|
let netOCV = parseInt(values["ocvNet"])||3;
|
|
let maneuverOCV = 0;
|
|
let maneuverDCV = 0;
|
|
let weaponOCV =parseInt(values["weaponOCV"+weaponId])||0;
|
|
let penaltyOCV = 0;
|
|
let strengthPenalty = false;
|
|
let halfDCV = false;
|
|
|
|
// Modifiers
|
|
let isShield = (weaponId === "06") ? true : false;
|
|
let isSet = (values.checkSet === "on") ? true : false;
|
|
let isBraced = (values.checkBrace === "on") ? true : false;
|
|
let braceMod = 0;
|
|
let rangeMod = (parseInt(values["weaponRangeMod"+weaponId])||0);
|
|
let dcvMod = parseInt(values.maneuverDCVmod)||0;
|
|
let ocvMod = parseInt(values.maneuverOCVmod)||0;
|
|
let isRanged = false;
|
|
let theRangePenalty = parseInt(values.rangeOCVpenalty)||0;
|
|
let hasRangePenalty = true;
|
|
let targetPenalty = parseInt(values["targetOCVpenalty"])||0;
|
|
|
|
// Limit DCV mod.
|
|
dcvMod = Math.max(0, (Math.min(modLimit, dcvMod)) );
|
|
ocvMod = Math.max(0, (Math.min(modLimit, ocvMod)) );
|
|
|
|
// Braced modifiers.
|
|
if (isBraced) {
|
|
braceMod = 2;
|
|
halfDCV = true;
|
|
}
|
|
|
|
// Maneuver message and DCV and damage mods.
|
|
if (values.maneuverSelection === "haymaker") {
|
|
rollMessage = "Haymaker " + (isNormal ? "" : (isPower ? "Power" : "Killing") ) + " Attack";
|
|
|
|
// CV
|
|
maneuverOCV = 0;
|
|
maneuverDCV = -5;
|
|
halfDCV = isBraced ? true : false;
|
|
|
|
// Damage
|
|
if (capDamage) {
|
|
if ((adjustedDC + 4) > 2 * baseDC) {
|
|
adjustedDC = 2 * baseDC;
|
|
} else {
|
|
adjustedDC += 4;
|
|
}
|
|
} else {
|
|
adjustedDC += 4;
|
|
}
|
|
|
|
attributes.hiddenDamage = getDamageDice(adjustedDC, theAdvantage, (isNormal ? true : isPower), theSign);
|
|
attributes.hiddenStunMod = stunMod;
|
|
attributes.hiddenIsNormal = isNormal ? "true" : "false";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = isPower ? "true" : "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = isAoE ? "true" : "false";
|
|
|
|
} else if ( (values.maneuverSelection === "moveBy") || (values.maneuverSelection === "moveThrough") ) {
|
|
|
|
if (values.maneuverSelection === "moveBy") {
|
|
// Message
|
|
rollMessage = "Move By " + (isNormal ? "" : (isPower ? "Power" : "Killing") ) + " Attack";
|
|
|
|
// CV
|
|
maneuverOCV = -2;
|
|
maneuverDCV = -2;
|
|
|
|
// Velocity DC added
|
|
velocityDC = Math.floor(velocity/10);
|
|
|
|
} else {
|
|
// Message
|
|
rollMessage = "Move Through " + (isNormal ? "" : (isPower ? "Power" : "Killing") ) + " Attack";
|
|
|
|
// CV
|
|
maneuverDCV = -3;
|
|
maneuverOCV = -1 * Math.floor(velocity/10);
|
|
|
|
// Velocity DC added
|
|
velocityDC = Math.floor(velocity/6);
|
|
}
|
|
|
|
// Move By reduces Strength by 1/2, which means we need to recalculate the weapon's DC.
|
|
adjustedDC = baseDC;
|
|
if (heroRoundHigh( (parseInt(values.strengthNet)||0)/2) < strengthApplied) {
|
|
strengthApplied = heroRoundHigh( (parseInt(values.strengthNet)||0)/2);
|
|
}
|
|
|
|
if (strengthApplied >= minStrength) {
|
|
strengthLevels = Math.floor((strengthApplied - minStrength)/5);
|
|
if (strengthEnhanced) {
|
|
damageLevels += strengthLevels;
|
|
}
|
|
} else {
|
|
strengthLevels = -heroRoundLow(-(strengthApplied - minStrength)/5);
|
|
penaltyOCV += strengthLevels;
|
|
strengthPenalty = true;
|
|
|
|
if (strengthEnhanced) {
|
|
damageLevels += strengthLevels;
|
|
}
|
|
}
|
|
|
|
// Recalculate damage with velocity and new strength.
|
|
if (capDamage) {
|
|
if ( (adjustedDC + velocityDC + damageLevels) > (2 * baseDC) ) {
|
|
adjustedDC = 2 * baseDC;
|
|
} else {
|
|
adjustedDC += velocityDC + damageLevels;
|
|
}
|
|
} else {
|
|
adjustedDC += velocityDC + damageLevels;
|
|
}
|
|
|
|
// Prevent a negative DC.
|
|
if (adjustedDC < 0) {
|
|
adjstedDC = 0;
|
|
}
|
|
|
|
attributes.hiddenDamage = getDamageDice(adjustedDC, theAdvantage, (isNormal ? true : isPower), theSign);
|
|
attributes.hiddenStunMod = stunMod;
|
|
attributes.hiddenIsNormal = isNormal ? "true" : "false";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = isPower ? "true" : "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} if (values.maneuverSelection === "multipleAttack") {
|
|
rollMessage = "Multiple " + (isNormal ? "" : (isPower ? "Power" : "Killing") ) + " Attack";
|
|
|
|
// CV
|
|
maneuverOCV = parseInt(values.variableOCVmod)||0;
|
|
maneuverDCV = 0;
|
|
halfDCV = true;
|
|
|
|
attributes.hiddenDamage = getDamageDice(adjustedDC, theAdvantage, (isNormal ? true : isPower), theSign);
|
|
attributes.hiddenStunMod = stunMod;
|
|
attributes.hiddenIsNormal = isNormal ? "true" : "false";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = isPower ? "true" : "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = isAoE ? "true" : "false";
|
|
|
|
} else if (values.maneuverSelection === "strike") {
|
|
rollMessage = (isNormal ? "" : (isPower ? "Power " : "Killing ") ) + "Strike";
|
|
|
|
// CV
|
|
maneuverOCV = 0;
|
|
maneuverDCV = 0;
|
|
halfDCV = isBraced ? true : false;
|
|
|
|
attributes.hiddenDamage = values["hiddenWeaponDamage"+weaponId]||0;
|
|
attributes.hiddenStunMod = stunMod;
|
|
attributes.hiddenIsNormal = isNormal ? "true" : "false";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = isPower ? "true" : "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = isAoE ? "true" : "false";
|
|
|
|
} else if (values.maneuverSelection === "disarm") {
|
|
rollMessage = "Disarm";
|
|
damageLabel = "Contest";
|
|
|
|
maneuverOCV = -2;
|
|
maneuverDCV = 0;
|
|
|
|
if ( ((parseInt(values.rangeToTarget)||0) > 8) || isBraced || isSet) {
|
|
isRanged = true;
|
|
}
|
|
|
|
attributes.hiddenDamage = isRanged ? getDamageDice(baseDC, 0, true, 1) : values.hiddenBasicDamage;
|
|
attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsContest = "true";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
|
|
} else if (values.maneuverSelection === "block") {
|
|
|
|
// CV
|
|
maneuverOCV = parseInt(values.variableOCVmod)||0;
|
|
maneuverDCV = 0;
|
|
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
}
|
|
|
|
netDCV = getNetDCV(netDCV, maneuverDCV+dcvMod, halfDCV);
|
|
netOCV += maneuverOCV + ocvMod + weaponOCV;
|
|
|
|
// Display momentary OCV and DCV values (ephemeral)
|
|
netOCV -= (isAoE ? 0 : 1)*targetPenalty;
|
|
netOCV += isSet ? 1 : 0;
|
|
netOCV -= Math.max(0, theRangePenalty - rangeMod - (isBraced ? braceMod : 0));
|
|
|
|
attributes.ephemeralOCV = netOCV;
|
|
attributes.ephemeralDCV = netDCV;
|
|
|
|
// Send changes for use with damage roll template functions.
|
|
setAttrs(attributes);
|
|
|
|
// Create dice rolling text to send to a roll dialog.
|
|
if ((values.maneuverSelection === "haymaker") || (values.maneuverSelection === "multipleAttack") || (values.maneuverSelection === "strike") || (values.maneuverSelection === "moveThrough") || (values.maneuverSelection === "moveBy") || (values.maneuverSelection === "disarm")) {
|
|
|
|
// First, check to see if this is a ranged attack.
|
|
if ( (values.maneuverSelection === "moveThrough") || (values.maneuverSelection === "moveBy") ) {
|
|
isRanged = false;
|
|
} else if ( ((parseInt(values.rangeToTarget)||0) > 8) || isBraced || isSet) {
|
|
isRanged = true;
|
|
rollMessage = "Ranged " + rollMessage;
|
|
}
|
|
|
|
// However, if the weapon's RMod plus braceMod is better than the range penalty, we'll skip range modifiers.
|
|
if (((parseInt(values["weaponRangeMod"+weaponId])||0) + braceMod) > (parseInt(values.rangeOCVpenalty)||0)) {
|
|
hasRangePenalty = false;
|
|
}
|
|
|
|
// Begin roll template
|
|
if (values.maneuverSelection === "disarm") {
|
|
theRoll += "&{template:custom-contest} ";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=" + rollMessage + " with " + values["weaponName"+weaponId] + "}}";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
} else if (isMental) {
|
|
theRoll += "&{template:custom-power-attack} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle=" + rollMessage + " with " + values["weaponName"+weaponId] + "}}";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
} else {
|
|
// If isNormal or isPower is TRUE use the normal or power damage template.
|
|
theRoll += "&{template:custom" + (isNormal ? "-normal" : (isPower ? "-power" : "")) + "-attack} ";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=" + rollMessage + " with " + values["weaponName"+weaponId] + "}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
}
|
|
|
|
// Attack and damage rolls.
|
|
if (isMental) {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DMCV=[[11-3d6cf6cs1[Roll]+@{omcv}[OMCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]+@{weaponOCV"+weaponId+"}[WeaponOCV]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OMCV=[[@{omcv}[OMCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]+@{weaponOCV"+weaponId+"}[WeaponOCV]+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}"
|
|
}
|
|
} else if (isRanged && hasRangePenalty) {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]+@{weaponPenalty"+weaponId+"}[Strength]-@{rangeOCVPenalty}[RangeOCV]+@{weaponRangeMod"+weaponId+"}[RangeMod]"+ (isBraced ? "+2[Braced]" :"") +"+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]+@{weaponPenalty"+weaponId+"}[Strength]-@{rangeOCVPenalty}[RangeOCV]+@{weaponRangeMod"+weaponId+"}[RangeMod]"+ (isBraced ? "+2[Braced]" :"") +"+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}"
|
|
}
|
|
} else {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]" + (isShield ? "-[[@{shieldDCV}]][ShieldDCV]" : "") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]" + (strengthPenalty ? ("+" + penaltyOCV.toString() + "[Strength]") : ("+@{weaponPenalty"+weaponId+"}[Strength]")) + (isRanged ? "-0[NetRangePenalty]" :"") +"+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]"+ (isShield ? "-[[@{shieldDCV}]][ShieldDCV]" : "") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]" + (strengthPenalty ? ("+" + penaltyOCV.toString() + "[Strength]") : ("+@{weaponPenalty"+weaponId+"}[Strength]")) + (isRanged ? "-0[NetRangePenalty]" :"") +"+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}"
|
|
}
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[@{weaponEndurance"+weaponId+"}]] (@{CurrentEND})}}" : "");
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
|
|
} else if (values.maneuverSelection === "block") {
|
|
// Blocking Roll
|
|
theRoll += "&{template:custom-defense} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=Blocks with @{weaponName"+weaponId+"}}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{versus OCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]+@{weaponOCV"+weaponId+"}[WeaponOCV]" + (isShield ? "+[[@{shieldDCV}]][ShieldDCV]" : "") + "+@{weaponPenalty"+weaponId+"}[Strength]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+@{weaponOCV"+weaponId+"}[WeaponOCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isShield ? "+[[@{shieldDCV}]][ShieldDCV]" : "") + "+@{weaponPenalty"+weaponId+"}[Strength]+(?{Modifiers|0})[Modifiers]]]}} " + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
theRoll += (subtractENDAmt ? "{{END=[[1]] (@{CurrentEND})}}" : "");
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
let theResult = new Object();
|
|
|
|
// Subtract END cost if option checked.
|
|
if (values.optionAutoSubtractEND != 0) {
|
|
subtractEndurance(subtractENDAmt);
|
|
}
|
|
|
|
finishRoll(results.rollId, theResult);
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
// Function for handling martial maneuver weapon attack XX.
|
|
function weaponMartialAttack(weaponId, maneuverId) {
|
|
getAttrs(["weaponName"+weaponId, "weaponDamageType"+weaponId, "weaponStunMod"+weaponId, "weaponEndurance"+weaponId, "weaponAreaEffect"+weaponId, "weaponRangeMod"+weaponId, "hiddenWeaponSign"+weaponId, "weaponAdjustedDC"+weaponId, "hiddenWeaponDamage"+weaponId, "weaponOCV"+weaponId, "weaponDC"+weaponId, "weaponDamage"+weaponId, "weaponStrength"+weaponId, "weaponStrengthMin"+weaponId, "weaponEnhancedByStr"+weaponId, "weaponAdvantage"+weaponId, "martialManeuverCSLmod"+maneuverId, "hiddenMartialManeuverDamage"+maneuverId, "martialManeuverNormal"+maneuverId, "martialManeuverPhase"+maneuverId, "martialManeuverEffect"+maneuverId, "martialManeuverStunMod"+maneuverId, "martialManeuverStrMod"+maneuverId, "martialManeuverOCVmod"+maneuverId, "martialManeuverDCVmod"+maneuverId, "martialManeuverRNGmod"+maneuverId, "martialManeuverOCV"+maneuverId,"martialManeuverDCV"+maneuverId, "martialManeuverDC"+maneuverId, "martialManeuverName"+maneuverId, "martialManeuverEndurance"+maneuverId, "martialManeuverType"+maneuverId, "optionAutoSubtractEND", "optionHitLocationSystem", "optionWeaponDamageCap", "whisperToGM", "character_title", "displayDegreeOfSuccess", "rangeToTarget", "rangeOCVpenalty", "maneuverSelection", "checkBrace", "checkSet", "strengthNet", "currentDCV", "velocity", "hiddenBasicDamage", "dingbat", "ocvNet", "targetOCVpenalty"],
|
|
function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var attributes = new Object();
|
|
|
|
let isAoE = (values["weaponAreaEffect"+weaponId] === "on") ? true : false;
|
|
let useHitLocations = values.optionHitLocationSystem != 0;
|
|
let dispDoS = (values.displayDegreeOfSuccess === "on") ? true : false;
|
|
let isNormal = (values["weaponDamageType"+weaponId] === "normal") ? true : false;
|
|
let isPower = ( (values["weaponDamageType"+weaponId] === "power") || (values["weaponDamageType"+weaponId] === "mental")) ? true : false;
|
|
let isMental = (values["weaponDamageType"+weaponId] === "mental") ? true : false;
|
|
let isAttack = (values["martialManeuverType"+maneuverId] === "weaponAttack") ? true : false;
|
|
let isBlocking = (values["martialManeuverType"+maneuverId] === "weaponBlock") ? true : false;
|
|
let isContest = (values["martialManeuverType"+maneuverId] === "weaponContest") ? true : false;
|
|
let stunMod = parseInt(values["weaponStunMod"+weaponId])||0;
|
|
let rollMessage = (isNormal ? "Normal" : (isPower ? "Power" : "Killing")) + " Attack";
|
|
let damageLabel = "Damage";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
|
|
// Update weapon damage for maneuvers that add damage.
|
|
let adjustedDC = parseInt(values["weaponAdjustedDC"+weaponId])||0;
|
|
let baseDC = parseInt(values["weaponDC"+weaponId])||0;
|
|
let theAdvantage = parseFloat(values["weaponAdvantage"+weaponId])||0;
|
|
let theSign = parseInt(values["hiddenWeaponSign"+weaponId])||0;
|
|
let capDamage = (values.optionWeaponDamageCap === "on") ? true : false;
|
|
let strengthApplied = parseInt(values["weaponStrength"+weaponId])||0;
|
|
let minStrength = parseInt(values["weaponStrengthMin"+weaponId])||0;
|
|
let strengthEnhanced = (values["weaponEnhancedByStr"+weaponId] === "on") ? true : false;
|
|
|
|
const statValue = parseInt(values.strengthNet)||0;
|
|
const statMod = parseInt(values["martialManeuverStrMod"+maneuverId])||0;
|
|
let contestDice = calculateBasicDamage(Math.max(0, statValue + statMod));
|
|
let maneuverCSLmod = parseInt(values["martialManeuverCSLmod"+maneuverId]/2)||0;
|
|
let maneuverDC = parseInt(values["martialManeuverDC"+maneuverId])||0;
|
|
|
|
// CV
|
|
let netDCV = parseInt(values["currentDCV"])||3;
|
|
let netOCV = parseInt(values["ocvNet"])||3;
|
|
let maneuverOCV = parseInt(values["martialManeuverOCV"+maneuverId])||0;
|
|
let maneuverDCV = parseInt(values["martialManeuverDCV"+maneuverId])||0;
|
|
let weaponOCV =parseInt(values["weaponOCV"+weaponId])||0;
|
|
let penaltyOCV = 0;
|
|
let strengthPenalty = false;
|
|
let halfDCV = false;
|
|
|
|
// Modifiers
|
|
const modLimit = 20;
|
|
let isShield = (weaponId === "06") ? true : false;
|
|
let isSet = (values.checkSet === "on") ? true : false;
|
|
let isBraced = (values.checkBrace === "on") ? true : false;
|
|
let braceMod = 0;
|
|
let maneuverRmod = parseInt(values["martialManeuverRNGmod"+maneuverId])||0;
|
|
let rangeMod = (parseInt(values["weaponRangeMod"+weaponId])||0) + maneuverRmod;
|
|
let dcvMod = parseInt(values["martialManeuverDCVmod"+maneuverId])||0;
|
|
let ocvMod = parseInt(values["martialManeuverOCVmod"+maneuverId])||0;
|
|
let isRanged = ( ((parseInt(values.rangeMartial)||0) > 8) || isSet || isBraced ) ? true : false;
|
|
let theRangePenalty = parseInt(values.rangeOCVpenalty)||0;
|
|
let hasRangePenalty = true;
|
|
let targetPenalty = parseInt(values["targetOCVpenalty"])||0;
|
|
|
|
// Add the weapon's base END cost to the maneuver's listed END.
|
|
let subtractENDAmt = parseInt(values["martialManeuverEndurance"+maneuverId])||0;
|
|
|
|
// Keep mod within reasonable limits.
|
|
dcvMod = Math.max(0, (Math.min(modLimit, dcvMod)) );
|
|
ocvMod = Math.max(0, (Math.min(modLimit, ocvMod)) );
|
|
|
|
// Braced modifiers.
|
|
if (isBraced) {
|
|
braceMod = 2;
|
|
halfDCV = true;
|
|
}
|
|
|
|
// Prepare hidden variables for the maneuver roll.
|
|
if (isBlocking) {
|
|
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (isContest) {
|
|
rollMessage = values["martialManeuverName"+maneuverId];
|
|
subtractENDAmt += parseInt(values["weaponEndurance"+weaponId])||0;
|
|
damageLabel = "Contest";
|
|
|
|
attributes.hiddenDamage = contestDice;
|
|
attributes.hiddenIsContest = "true";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = isAoE ? "true" : "false";
|
|
|
|
} else if (isAttack){
|
|
rollMessage = values["weaponName"+weaponId] + " Attack";
|
|
subtractENDAmt += parseInt(values["weaponEndurance"+weaponId])||0;
|
|
|
|
if (capDamage) {
|
|
if ((adjustedDC + maneuverDC + maneuverCSLmod) > 2 * baseDC) {
|
|
adjustedDC = 2 * baseDC;
|
|
} else {
|
|
adjustedDC += maneuverDC + maneuverCSLmod;
|
|
}
|
|
} else {
|
|
adjustedDC += maneuverDC + maneuverCSLmod;
|
|
}
|
|
|
|
attributes.hiddenDamage = getDamageDice(adjustedDC, theAdvantage, (isNormal ? true : isPower), theSign);
|
|
attributes.hiddenStunMod = stunMod;
|
|
attributes.hiddenIsNormal = isNormal ? "true" : "false";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = isPower ? "true" : "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = isAoE ? "true" : "false";
|
|
|
|
} else {
|
|
return;
|
|
}
|
|
|
|
netDCV = getNetDCV(netDCV, maneuverDCV+dcvMod, isBraced);
|
|
netOCV += maneuverOCV + ocvMod + weaponOCV;
|
|
|
|
// Display momentary OCV and DCV values (ephemeral)
|
|
netOCV -= (isAoE ? 0 : 1)*targetPenalty;
|
|
netOCV += isSet ? 1 : 0;
|
|
netOCV -= Math.max(0, theRangePenalty - rangeMod - (isBraced ? braceMod : 0));
|
|
|
|
attributes.ephemeralOCV = netOCV;
|
|
attributes.ephemeralDCV = netDCV;
|
|
|
|
// Send changes for use with damage roll template functions.
|
|
setAttrs(attributes);
|
|
|
|
// Create dice rolling script to send to a roll dialog.
|
|
if (isBlocking) {
|
|
// Use the Defense template for a block.
|
|
theRoll += "&{template:custom-defense}";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}} ";
|
|
theRoll += "{{subtitle=Blocks with @{martialManeuverName"+maneuverId+"}}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{versus OCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod"+maneuverId+"}[CSL]+@{weaponOCV"+weaponId+"}[WeaponOCV]" + (isShield ? "+[[@{shieldDCV}]][ShieldDCV]" : "") + "+@{weaponPenalty"+weaponId+"}[STR]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod"+maneuverId+"}[CSL]+@{weaponOCV"+weaponId+"}[WeaponOCV]" + (isShield ? "+[[@{shieldDCV}]][ShieldDCV]" : "") + "+@{weaponPenalty"+weaponId+"}[Strength]+(?{Modifiers|0})[Modifiers]]]}} " + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
|
|
if (subtractENDAmt != 0) {
|
|
theRoll += (subtractENDAmt ? "{{END=[[@{martialManeuverEndurance"+maneuverId+"}]] (@{CurrentEND})}}" : "");
|
|
}
|
|
} else {
|
|
// Use the attack roll template.
|
|
|
|
// First, check to see if this is a ranged attack.
|
|
if ( ((parseInt(values.rangeToTarget)||0) > 8) || isBraced || isSet) {
|
|
isRanged = true;
|
|
rollMessage = "Ranged " + rollMessage;
|
|
}
|
|
|
|
// However, if the weapon's RMod plus braceMod plus maneuverRmod is better than the range penalty, we'll skip range modifiers.
|
|
if (((parseInt(values["weaponRangeMod"+weaponId])||0) + braceMod + maneuverRmod) > (parseInt(values.rangeOCVpenalty)||0)) {
|
|
hasRangePenalty = false;
|
|
}
|
|
|
|
// Contest or Attack Heading.
|
|
if (isContest) {
|
|
theRoll += "&{template:custom-contest} ";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=@{martialManeuverName"+maneuverId+"}" + " with " + values["weaponName"+weaponId] + "}}";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
} else if (isMental) {
|
|
theRoll += "&{template:custom-power-attack} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle=@{martialManeuverName"+maneuverId+"}" + " with " + values["weaponName"+weaponId] + "}}";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
} else {
|
|
// If isNormal is TRUE, use the Normal Damage template. Else use the killing template.
|
|
theRoll += "&{template:custom" + (isNormal ? "-normal" : (isPower ? "-power" : "")) + "-attack} ";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}} ";
|
|
theRoll += "{{subtitle= " + (isRanged ? "Ranged " : "") + (isNormal ? "Normal" : (isPower ? "Power" : "Killing")) + " Attack with @{martialManeuverName"+maneuverId+"}}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
}
|
|
|
|
// Roll details.
|
|
if (isMental) {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DMCV=[[11-3d6cf6cs1[Roll]+@{omcv}[OMCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod}[CSL]+@{weaponOCV"+weaponId+"}[WeaponOCV]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OMCV=[[@{omcv}[OMCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod}[CSL]+@{weaponOCV"+weaponId+"}[WeaponOCV]+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}"
|
|
}
|
|
} else if (isRanged && hasRangePenalty) {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod"+maneuverId+"}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]+@{weaponPenalty"+weaponId+"}[STR]-@{rangeOCVPenalty}[RangeOCV]+@{weaponRangeMod"+weaponId+"}[RMod]+@{martialManeuverRNGmod"+maneuverId+"}[ManRMod]"+ (isBraced ? "+2[Braced]" :"") +"+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod"+maneuverId+"}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]+@{weaponPenalty"+weaponId+"}[STR]-@{rangeOCVPenalty}[RangeOCV]+@{weaponRangeMod"+weaponId+"}[RMod]+@{martialManeuverRNGmod"+maneuverId+"}[ManRMod]"+ (isBraced ? "+2[Braced]" :"") +"+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}"
|
|
}
|
|
} else {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod"+maneuverId+"}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]" + (isShield ? "-[[@{shieldDCV}]][ShieldDCV]" : "") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]" + (strengthPenalty ? ("+" + penaltyOCV.toString() + "[STR]") : ("+@{weaponPenalty"+weaponId+"}[STR]")) + (isRanged ? "-0[NetRangePenalty]" :"") +"+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+@{martialManeuverOCV"+maneuverId+"}[ManOCV]+@{martialManeuverOCVmod"+maneuverId+"}[CSL]" + (isSet ? "+1[Set]" :"") +"+@{weaponOCV"+weaponId+"}[WeaponOCV]"+ (isShield ? "-[[@{shieldDCV}]][ShieldDCV]" : "") + "-[[" + (isAoE ? 0 : 1) + "*@{targetOCVPenalty}]][TargetOCV]" + (strengthPenalty ? ("+" + penaltyOCV.toString() + "[STR]") : ("+@{weaponPenalty"+weaponId+"}[STR]")) + (isRanged ? "-0[NetRangePenalty]" :"") +"+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}"
|
|
}
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[@{weaponEndurance"+weaponId+"}+@{martialManeuverEndurance"+maneuverId+"}]] (@{CurrentEND})}}" : "");
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
let theResult = new Object();
|
|
|
|
// Subtract END cost if option checked.
|
|
if (values.optionAutoSubtractEND != 0) {
|
|
subtractEndurance(subtractENDAmt);
|
|
}
|
|
|
|
finishRoll(results.rollId, theResult);
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
function getNetDCV (base, mods, isHalved) {
|
|
let DCV = Math.max(0, base + mods);
|
|
|
|
return isHalved ? Math.round(DCV/2) : DCV;
|
|
}
|
|
|
|
|
|
on('clicked:maneuverDodge', (info) => {
|
|
// Display chat message and add DCV.
|
|
|
|
getAttrs(["currentDCV", "maneuverDCVmod", "whisperToGM", "character_title", "dingbat", "ocvNet"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var attributes = new Object();
|
|
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const maneuverDCV = +3;
|
|
const subtractENDAmt = 1;
|
|
let netDCV = getNetDCV (parseInt(values.currentDCV)||0, maneuverDCV, false);
|
|
let netOCV = parseInt(values["ocvNet"])||3;
|
|
let dcvMod = parseInt(values.maneuverDCVmod)||0;
|
|
const modLimit = 20;
|
|
|
|
// Limit DCV mod.
|
|
dcvMod = Math.max(0, Math.min(modLimit, dcvMod));
|
|
netDCV = getNetDCV(netDCV, dcvMod, false);
|
|
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
attributes.ephemeralOCV = netOCV;
|
|
attributes.ephemeralDCV = netDCV;
|
|
|
|
// Send changes for use with damage roll template functions.
|
|
setAttrs(attributes);
|
|
|
|
theRoll += "&{template:custom-defense} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=Dodges}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
theRoll += (subtractENDAmt ? "{{END=[[1]] (@{CurrentEND})}}" : "");
|
|
|
|
startRoll(theRoll, (results) => {
|
|
let theResult = new Object();
|
|
|
|
// Subtract END cost if option checked.
|
|
if (values.optionAutoSubtractEND != 0) {
|
|
subtractEndurance(subtractENDAmt);
|
|
}
|
|
|
|
finishRoll(results.rollId, theResult);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
on('clicked:maneuverSet', (info) => {
|
|
// Display chat message and add DCV.
|
|
|
|
getAttrs(["currentDCV", "whisperToGM", "character_title", "dingbat", "ocvNet"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var attributes = new Object();
|
|
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const maneuverDCV = 0;
|
|
const subtractENDAmt = 1;
|
|
let netDCV = getNetDCV (parseInt(values.currentDCV)||0, maneuverDCV, false);
|
|
let netOCV = parseInt(values["ocvNet"])||3;
|
|
|
|
attributes.checkSet = "on";
|
|
attributes.ephemeralOCV = netOCV;
|
|
attributes.ephemeralDCV = netDCV;
|
|
|
|
// Send changes for use with damage roll template functions.
|
|
setAttrs(attributes);
|
|
|
|
theRoll += "&{template:custom-contest} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=Set}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
theRoll += (subtractENDAmt ? "{{END=[[1]] (@{CurrentEND})}}" : "");
|
|
|
|
startRoll(theRoll, (results) => {
|
|
let theResult = new Object();
|
|
|
|
// Subtract END cost if option checked.
|
|
if (values.optionAutoSubtractEND != 0) {
|
|
subtractEndurance(subtractENDAmt);
|
|
}
|
|
|
|
finishRoll(results.rollId, theResult);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Roll attack and damage dice for Weapon XX.
|
|
on(`clicked:attackStrength`, (info) => {
|
|
|
|
getAttrs(["hiddenBasicDamage", "hiddenBasicEndurance", "optionAutoSubtractEND", "optionHitLocationSystem", "optionD6MinusOne", "optionWeaponDamageCap", "whisperToGM", "character_title", "displayDegreeOfSuccess", "rangeToTarget", "rangeOCVpenalty", "maneuverSelection", "maneuverDCVmod", "maneuverOCVmod", "variableOCVmod", "maneuverDamageCSL", "checkBrace", "checkSet", "strengthNet", "currentDCV", "velocity", "maneuverDCLimit", "dingbat", "ocvNet", "targetOCVpenalty"], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
var attributes = new Object();
|
|
|
|
const isAoE = false;
|
|
const useHitLocations = (values.optionHitLocationSystem === "on") ? true : false;
|
|
let isNormal = true;
|
|
let dispDoS = (values.displayDegreeOfSuccess === "on") ? true : false;
|
|
let isBraced = (values.checkBrace === "on") ? true : false;
|
|
let braceMod = 0;
|
|
let isSet = (values.checkSet === "on") ? true : false;
|
|
let isRanged = ( ((parseInt(values.rangeToTarget)||0) > 8) || isSet || isBraced ) ? true : false;
|
|
let theRangePenalty = parseInt(values.rangeOCVpenalty)||0;
|
|
let hasRangePenalty = isRanged;
|
|
let subtractENDAmt = parseInt(values.hiddenBasicEndurance)||0;
|
|
let rollMessage = "attack";
|
|
let damageLabel = "Damage";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const modLimit = 20;
|
|
|
|
// Update damage for maneuvers that add damage.
|
|
let adjustedStatValue = parseInt(values.strengthNet)||0;
|
|
let modifyDC = Math.floor( (parseInt(values.maneuverDamageCSL)||0)/2 );
|
|
let velocity = parseInt(values["velocity"])||0;
|
|
let velocityDC = 0;
|
|
|
|
// CV
|
|
let netDCV = parseInt(values["currentDCV"])||3;
|
|
let netOCV = parseInt(values["ocvNet"])||3;
|
|
let maneuverOCV = 0;
|
|
let maneuverDCV = 0;
|
|
|
|
// CV Mods
|
|
let halfDCV = isBraced ? true : false;
|
|
let dcvMod = parseInt(values.maneuverDCVmod)||0;
|
|
let ocvMod = parseInt(values.maneuverOCVmod)||0;
|
|
let targetPenalty = parseInt(values["targetOCVpenalty"])||0;
|
|
|
|
// Keep mod within reasonable limits.
|
|
dcvMod = Math.max(0, (Math.min(modLimit, dcvMod)) );
|
|
ocvMod = Math.max(0, (Math.min(modLimit, ocvMod)) );
|
|
|
|
// Braced modifiers.
|
|
if (isBraced) {
|
|
braceMod = 2;
|
|
halfDCV = true;
|
|
}
|
|
|
|
if (values.maneuverSelection === "haymaker") {
|
|
rollMessage = "Haymaker Attack";
|
|
|
|
// CV
|
|
maneuverOCV = 0;
|
|
maneuverDCV = -5;
|
|
|
|
// Damage
|
|
modifyDC += 4;
|
|
adjustedStatValue += modifyDC * 5;
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage(adjustedStatValue);
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
|
|
} else if (values.maneuverSelection === "moveBy") {
|
|
|
|
// Message
|
|
rollMessage = "Move By Attack";
|
|
|
|
// CV
|
|
maneuverOCV = -2;
|
|
maneuverDCV = -2;
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
// Damage
|
|
adjustedStatValue = heroRoundHigh(parseInt(adjustedStatValue/2)) + Math.floor(velocity/10)*5 + modifyDC*5;
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage(adjustedStatValue);
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (values.maneuverSelection === "moveThrough") {
|
|
|
|
// Message
|
|
rollMessage = "Move Through Attack";
|
|
|
|
// CV
|
|
maneuverDCV = -3;
|
|
maneuverOCV = -1 * Math.floor(velocity/10);
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
// Damage
|
|
adjustedStatValue += Math.floor(velocity/6)*5 + modifyDC*5;
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage( adjustedStatValue );
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (values.maneuverSelection === "multipleAttack") {
|
|
rollMessage = "Multiple Attack";
|
|
|
|
// CV
|
|
maneuverOCV = parseInt(values.variableOCVmod)||0;
|
|
maneuverDCV = 0;
|
|
halfDCV = true;
|
|
|
|
// Damage
|
|
adjustedStatValue += modifyDC * 5;
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage( adjustedStatValue );
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
|
|
} else if (values.maneuverSelection === "strike") {
|
|
rollMessage = "Normal Strike";
|
|
|
|
// CV
|
|
maneuverOCV = 0;
|
|
maneuverDCV = 0;
|
|
|
|
// Damage
|
|
adjustedStatValue += modifyDC * 5;
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage( adjustedStatValue );
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
|
|
} else if (values.maneuverSelection === "grab") {
|
|
rollMessage = "Grab";
|
|
|
|
maneuverOCV = -1;
|
|
maneuverDCV = -2;
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
subtractENDAmt = 1;
|
|
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (values.maneuverSelection === "grabBy") {
|
|
rollMessage = "Grab By";
|
|
damageLabel = "Contest";
|
|
|
|
// CV
|
|
maneuverOCV = -3;
|
|
maneuverDCV = -4;
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage(parseInt(values.strengthNet) + Math.floor(velocity/10));
|
|
attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsContest = "true";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (values.maneuverSelection === "shove") {
|
|
rollMessage = "Shove up to " + Math.floor((parseInt(values.strengthNet)||0)/5) + " m";
|
|
|
|
// CV
|
|
maneuverOCV = -1;
|
|
maneuverDCV = -1;
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
// Damage
|
|
// Do CSLs add to shove damage?
|
|
// adjustedStatValue = Math.min(adjustedStatValue + modifyDC*5, (parseInt(values.maneuverDCLimit)||0)*5 );
|
|
adjustedStatValue = Math.min(adjustedStatValue, (parseInt(values.maneuverDCLimit)||0)*5 );
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage(adjustedStatValue);
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (values.maneuverSelection === "throw") {
|
|
rollMessage = "Throw Object";
|
|
|
|
// CV
|
|
maneuverOCV = 0;
|
|
maneuverDCV = 0;
|
|
|
|
// Damage
|
|
adjustedStatValue = Math.min(adjustedStatValue + modifyDC*5, (parseInt(values.maneuverDCLimit)||0)*5 );
|
|
|
|
attributes.hiddenDamage = calculateBasicDamage(adjustedStatValue);
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
|
|
} else if (values.maneuverSelection === "trip") {
|
|
// Message
|
|
rollMessage = "Trip Attack";
|
|
|
|
// CV
|
|
maneuverOCV = -1;
|
|
maneuverDCV = -2;
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
// Damage
|
|
velocityDC = Math.floor(velocity/20);
|
|
|
|
// Endurance
|
|
subtractENDAmt = 1;
|
|
|
|
attributes.hiddenDamage = getDamageDice(velocityDC, 0, true, 1);
|
|
attributes.hiddenIsNormal = "true";
|
|
attributes.hiddenIsContest = "false";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.hiddenIsAoE = "false";
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (values.maneuverSelection === "disarm") {
|
|
rollMessage = "Unarmed Disarm";
|
|
damageLabel = "Contest";
|
|
|
|
// CV
|
|
maneuverOCV = -2;
|
|
maneuverDCV = 0;
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
attributes.hiddenDamage = values.hiddenBasicDamage;
|
|
attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsContest = "true";
|
|
attributes.hiddenIsPower = "false";
|
|
attributes.hiddenMessage = rollMessage;
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
|
|
} else if (values.maneuverSelection === "block") {
|
|
// CV
|
|
maneuverOCV = parseInt(values.variableOCVmod)||0;
|
|
maneuverDCV = 0;
|
|
|
|
isBraced = false;
|
|
isSet = false;
|
|
theRangePenalty = 0;
|
|
|
|
attributes.rangeManeuver = 0;
|
|
attributes.checkSet = 0;
|
|
attributes.checkBrace = 0;
|
|
}
|
|
|
|
netDCV = getNetDCV(netDCV, maneuverDCV+dcvMod, halfDCV);
|
|
netOCV += maneuverOCV + ocvMod;
|
|
|
|
// Display momentary OCV and DCV values (ephemeral)
|
|
netOCV -= (isAoE ? 0 : 1)*targetPenalty;
|
|
netOCV += isSet ? 1 : 0;
|
|
netOCV -= Math.max(0, theRangePenalty - (isBraced ? braceMod : 0));
|
|
|
|
attributes.ephemeralOCV = netOCV;
|
|
attributes.ephemeralDCV = netDCV;
|
|
|
|
// Send changes for use with damage roll template functions.
|
|
setAttrs(attributes);
|
|
|
|
|
|
// Create dice rolling text to send to a roll dialog.
|
|
if ((values.maneuverSelection === "haymaker") || (values.maneuverSelection === "multipleAttack") || (values.maneuverSelection === "strike") || (values.maneuverSelection === "moveThrough") || (values.maneuverSelection === "moveBy") || (values.maneuverSelection === "shove") || (values.maneuverSelection === "throw") || (values.maneuverSelection === "disarm")) {
|
|
|
|
// First, check to see if this is a ranged attack.
|
|
if ( (values.maneuverSelection === "moveThrough") || (values.maneuverSelection === "moveBy") || (values.maneuverSelection === "shove") || (values.maneuverSelection === "disarm") ) {
|
|
isRanged = false;
|
|
} else if ( ((parseInt(values.rangeToTarget)||0) > 0) || isBraced || isSet || (values.maneuverSelection === "throw")) {
|
|
isRanged = true;
|
|
|
|
if (values.maneuverSelection !== "throw") {
|
|
rollMessage = "Ranged " + rollMessage;
|
|
}
|
|
}
|
|
|
|
// However, if braceMod is negates the range penalty, we'll skip range modifiers.
|
|
if (braceMod > (parseInt(values.rangeOCVpenalty)||0)) {
|
|
hasRangePenalty = false;
|
|
}
|
|
|
|
// Begin roll template
|
|
if (values.maneuverSelection === "disarm") {
|
|
theRoll += "&{template:custom-contest} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=" + rollMessage + "}}";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
} else {
|
|
// If isNormal is TRUE, use the Normal Damage template.
|
|
theRoll += "&{template:custom"+(isNormal ? "-normal" : "") + "-attack}";
|
|
theRoll += "{{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=" + rollMessage + " with Strength}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
// theRoll += "{{data=[[@{currentDCV}[CurrentDCV]+"+maneuverDCV.toString()+"]]}}";
|
|
}
|
|
|
|
// Attack and damage rolls.
|
|
if (isRanged && hasRangePenalty) {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") + "-[[@{targetOCVPenalty}]][TargetOCV]-@{rangeOCVPenalty}[RangeOCV]"+ (isBraced ? "+2[Braced]+" :"+") +"(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") + "-[[@{targetOCVPenalty}]][TargetOCV]-@{rangeOCVPenalty}[RangeOCV]"+ (isBraced ? "+2[Braced]+" :"+") +"(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
} else {
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() +"[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") + "-[[@{targetOCVPenalty}]][TargetOCV]"+ (isRanged ? "-0[NetRangePenalty]+" :"+") +"(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]" + (isSet ? "+1[Set]" :"") + "-[[@{targetOCVPenalty}]][TargetOCV]"+ (isRanged ? "-0[NetRangePenalty]+" :"+") +"(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[@{hiddenBasicEndurance}]] (@{CurrentEND})}}" : "");
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
|
|
} else if (values.maneuverSelection === "block") {
|
|
// Blocking Roll
|
|
theRoll += "&{template:custom-defense} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=Unarmed Block}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{versus OCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]+(?{Modifiers|0})[Modifiers]]]}} " + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[1]] (@{CurrentEND})}}" : "");
|
|
} else if (values.maneuverSelection === "grab") {
|
|
// Grab Roll
|
|
theRoll += "&{template:custom-contest} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=Grab}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{Grabs DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]-[[@{targetOCVPenalty}]][TargetOCV]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]-[[@{targetOCVPenalty}]][TargetOCV]+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[1]] (@{CurrentEND})}}" : "");
|
|
} else if (values.maneuverSelection === "grabBy") {
|
|
// Grab By Roll
|
|
theRoll += "&{template:custom-contest} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=Grab By}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{Grabs DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[@{hiddenBasicEndurance}]] (@{CurrentEND})}}" : "");
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
|
|
} else if (values.maneuverSelection === "trip") {
|
|
// Trip Roll
|
|
theRoll += "&{template:custom-normal-attack} {{title=@{character_name}"+dingbat+"@{character_title}}}";
|
|
theRoll += "{{subtitle=" + rollMessage + "}} ";
|
|
theRoll += "{{label=DCV}}";
|
|
theRoll += "{{data="+netDCV+"}}";
|
|
|
|
if (dispDoS) {
|
|
theRoll += "{{Hit DCV=[[11-3d6cf6cs1[Roll]+@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]-[[@{targetOCVPenalty}]][TargetOCV]+(?{Modifiers|0})[Modifiers]]]}} ";
|
|
} else {
|
|
theRoll += "{{OCV=[[@{ocv}[OCV]+" + maneuverOCV.toString() + "[ManOCV]+@{maneuverOCVmod}[CSL]-[[@{targetOCVPenalty}]][TargetOCV]+(?{Modifiers|0})[Modifiers]]]}}" + "{{Result=[[3d6cf6cs1]]}}";
|
|
}
|
|
|
|
theRoll += (subtractENDAmt ? "{{END=[[1]] (@{CurrentEND})}}" : "");
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
}
|
|
|
|
startRoll(theRoll, (results) => {
|
|
let theResult = new Object();
|
|
|
|
// Subtract END cost if option checked.
|
|
if (values.optionAutoSubtractEND != 0) {
|
|
subtractEndurance(subtractENDAmt);
|
|
}
|
|
|
|
finishRoll(results.rollId, theResult);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* ----------------- */
|
|
/* Weapon Movers */
|
|
/* ----------------- */
|
|
|
|
|
|
arrayOf(maxWeaponNum-1).forEach(num => {
|
|
// We want to skip weapon06, which is the shield, hence maxWeaponNum-1.
|
|
// For weapons 01 and 05 we need to swap with the alternates 15 and 11.
|
|
|
|
const stepId = 10;
|
|
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num === (maxWeaponNum-1) ? maxWeaponNum + stepId - 1 : num + 1).padStart(2,'0');
|
|
|
|
on("clicked:weaponDown"+lowId, function() {
|
|
swapWeaponPositions(lowId, highId);
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(maxWeaponNum-1).forEach(num => {
|
|
// We want to skip weapon06, which is the shield, hence maxWeaponNum-1.
|
|
// For weapons 01 and 05 we need to swap with the alternates 15 and 11.
|
|
|
|
const stepId = 10;
|
|
|
|
var lowId = String(num === 1 ? stepId + 1 : num - 1).padStart(2,'0');
|
|
var highId = String(num).padStart(2,'0');
|
|
|
|
on("clicked:weaponUp"+highId, function() {
|
|
swapWeaponPositions(lowId, highId);
|
|
});
|
|
});
|
|
|
|
|
|
function swapWeaponPositions(lowId, highId) {
|
|
getAttrs(["weaponName"+lowId, "weaponDamage"+lowId, "weaponAdjustedDamage"+lowId, "weaponDC"+lowId, "weaponAdjustedDC"+lowId, "weaponDamageType"+lowId, "weaponCSL"+lowId, "weaponOCV"+lowId, "weaponPenalty"+lowId, "weaponAdvantage"+lowId, "weaponRangeMod"+lowId, "weaponStunMod"+lowId, "weaponShots"+lowId, "weaponStrength"+lowId, "weaponStrengthMin"+lowId, "weaponEnhancedByStr"+lowId, "weaponEndurance"+lowId, "weaponEndMod"+lowId, "weaponRange"+lowId, "weaponAreaEffect"+lowId, "weaponCarried"+lowId, "weaponMass"+lowId, "weaponName"+highId, "weaponDamage"+highId, "weaponAdjustedDamage"+highId, "weaponDC"+highId, "weaponAdjustedDC"+highId, "rangeBasedOnStr"+lowId, "weaponDamageType"+highId, "weaponAdvantage"+highId, "weaponCSL"+highId, "weaponOCV"+highId, "weaponPenalty"+highId, "weaponRangeMod"+highId, "weaponStunMod"+highId,"weaponShots"+highId, "weaponStrength"+highId, "weaponStrengthMin"+highId, "weaponEnhancedByStr"+highId, "weaponEndurance"+highId, "weaponEndMod"+highId, "weaponRange"+highId, "weaponAreaEffect"+highId, "weaponCarried"+highId, "weaponMass"+highId, "rangeBasedOnStr"+highId], function(values)
|
|
{
|
|
var attributes = new Object();
|
|
|
|
|
|
let theString = values["weaponName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["weaponName"+lowId] = "";
|
|
} else {
|
|
attributes["weaponName"+lowId] = values["weaponName"+highId];
|
|
}
|
|
|
|
theString = values["weaponName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["weaponName"+highId] = "";
|
|
} else {
|
|
attributes["weaponName"+highId] = values["weaponName"+lowId];
|
|
}
|
|
|
|
theString = values["weaponDamage"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["weaponDamage"+lowId] = "";
|
|
} else {
|
|
attributes["weaponDamage"+lowId] = values["weaponDamage"+highId];
|
|
}
|
|
|
|
theString = values["weaponDamage"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["weaponDamage"+highId] = "";
|
|
} else {
|
|
attributes["weaponDamage"+highId] = values["weaponDamage"+lowId];
|
|
}
|
|
|
|
attributes["weaponAdjustedDamage"+lowId] = values["weaponAdjustedDamage"+highId];
|
|
attributes["weaponAdjustedDamage"+highId] = values["weaponAdjustedDamage"+lowId];
|
|
attributes["weaponDC"+lowId] = values["weaponDC"+highId];
|
|
attributes["weaponDC"+highId] = values["weaponDC"+lowId];
|
|
attributes["weaponAdjustedDC"+lowId] = values["weaponAdjustedDC"+highId];
|
|
attributes["weaponAdjustedDC"+highId] = values["weaponAdjustedDC"+lowId];
|
|
attributes["weaponDamageType"+lowId] = values["weaponDamageType"+highId];
|
|
attributes["weaponDamageType"+highId] = values["weaponDamageType"+lowId];
|
|
attributes["weaponAdvantage"+lowId] = values["weaponAdvantage"+highId];
|
|
attributes["weaponAdvantage"+highId] = values["weaponAdvantage"+lowId];
|
|
attributes["weaponCSL"+lowId] = values["weaponCSL"+highId];
|
|
attributes["weaponCSL"+highId] = values["weaponCSL"+lowId];
|
|
attributes["weaponOCV"+lowId] = values["weaponOCV"+highId];
|
|
attributes["weaponOCV"+highId] = values["weaponOCV"+lowId];
|
|
attributes["weaponPenalty"+lowId] = values["weaponPenalty"+highId];
|
|
attributes["weaponPenalty"+highId] = values["weaponPenalty"+lowId];
|
|
attributes["weaponRangeMod"+lowId] = values["weaponRangeMod"+highId];
|
|
attributes["weaponRangeMod"+highId] = values["weaponRangeMod"+lowId];
|
|
attributes["weaponStunMod"+lowId] = values["weaponStunMod"+highId];
|
|
attributes["weaponStunMod"+highId] = values["weaponStunMod"+lowId];
|
|
attributes["weaponShots"+lowId] = values["weaponShots"+highId];
|
|
attributes["weaponShots"+highId] = values["weaponShots"+lowId];
|
|
attributes["weaponStrength"+lowId] = values["weaponStrength"+highId];
|
|
attributes["weaponStrength"+highId] = values["weaponStrength"+lowId];
|
|
attributes["weaponStrengthMin"+lowId] = values["weaponStrengthMin"+highId];
|
|
attributes["weaponStrengthMin"+highId] = values["weaponStrengthMin"+lowId];
|
|
attributes["weaponEnhancedByStr"+lowId] = values["weaponEnhancedByStr"+highId];
|
|
attributes["weaponEnhancedByStr"+highId] = values["weaponEnhancedByStr"+lowId];
|
|
attributes["weaponEndurance"+lowId] = values["weaponEndurance"+highId];
|
|
attributes["weaponEndurance"+highId] = values["weaponEndurance"+lowId];
|
|
attributes["weaponEndMod"+lowId] = values["weaponEndMod"+highId];
|
|
attributes["weaponEndMod"+highId] = values["weaponEndMod"+lowId];
|
|
attributes["weaponRange"+lowId] = values["weaponRange"+highId];
|
|
attributes["weaponRange"+highId] = values["weaponRange"+lowId];
|
|
attributes["weaponAreaEffect"+lowId] = values["weaponAreaEffect"+highId];
|
|
attributes["weaponAreaEffect"+highId] = values["weaponAreaEffect"+lowId];
|
|
attributes["weaponMass"+lowId] = values["weaponMass"+highId];
|
|
attributes["weaponMass"+highId] = values["weaponMass"+lowId];
|
|
attributes["weaponCarried"+lowId] = values["weaponCarried"+highId];
|
|
attributes["weaponCarried"+highId] = values["weaponCarried"+lowId];
|
|
attributes["rangeBasedOnStr"+lowId] = values["rangeBasedOnStr"+highId];
|
|
attributes["rangeBasedOnStr"+highId] = values["rangeBasedOnStr"+lowId];
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
}
|
|
|
|
|
|
// Exchange all weapons in a set.
|
|
on("clicked:weaponSetAtoB", function() {
|
|
getAttrs(["activateDeleteChecks"], function(values) {
|
|
if (values.activateDeleteChecks !== "on") {
|
|
swapWeaponSet();
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
function swapWeaponSet() {
|
|
const stepId = 10;
|
|
|
|
for (let i=1; i <= maxWeaponNum-1; i++) {
|
|
lowId = String(i).padStart(2,'0');
|
|
highId = String(i+stepId).padStart(2,'0');
|
|
|
|
swapWeaponPositions(lowId, highId);
|
|
}
|
|
}
|
|
|
|
|
|
/* ---------------- */
|
|
/* Equipment Movers */
|
|
/* ---------------- */
|
|
|
|
arrayOf(maxEquipmentNum).forEach(num => {
|
|
// For equipment 01 and 16 we need to swap with the alternates 17 and 32.
|
|
|
|
const stepId = 16;
|
|
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num === (maxEquipmentNum) ? maxEquipmentNum + stepId : num + 1).padStart(2,'0');
|
|
|
|
on("clicked:equipDown"+lowId, function() {
|
|
swapEquipmentPositions(lowId, highId);
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(maxEquipmentNum).forEach(num => {
|
|
// For equipment 01 and 16 we need to swap with the alternates 17 and 32.
|
|
|
|
const stepId = 16;
|
|
|
|
var lowId = String(num === 1 ? stepId + 1 : num - 1).padStart(2,'0');
|
|
var highId = String(num).padStart(2,'0');
|
|
|
|
on("clicked:equipUp"+highId, function() {
|
|
swapEquipmentPositions(lowId, highId);
|
|
});
|
|
});
|
|
|
|
|
|
function swapEquipmentPositions(lowId, highId) {
|
|
getAttrs(["equipText"+lowId, "equipText"+highId, "equipCarried"+lowId, "equipCarried"+highId, "equipMass"+lowId, "equipMass"+highId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let theString = values["equipText"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["equipText"+highId] = "";
|
|
} else {
|
|
attributes["equipText"+highId] = values["equipText"+lowId];
|
|
}
|
|
|
|
theString = values["equipText"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["equipText"+lowId] = "";
|
|
} else {
|
|
attributes["equipText"+lowId] = values["equipText"+highId];
|
|
}
|
|
|
|
attributes["equipCarried"+lowId] = values["equipCarried"+highId];
|
|
attributes["equipCarried"+highId] = values["equipCarried"+lowId];
|
|
attributes["equipMass"+lowId] = values["equipMass"+highId];
|
|
attributes["equipMass"+highId] = values["equipMass"+lowId];
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
}
|
|
|
|
|
|
// Exchange all equipment by set.
|
|
on("clicked:equipSetAtoB", function() {
|
|
getAttrs(["activateDeleteChecks"], function(values) {
|
|
if (values.activateDeleteChecks !== "on") {
|
|
swapEquipmentSet();
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
function swapEquipmentSet() {
|
|
const stepId = 16;
|
|
|
|
for (let i=1; i <= maxEquipmentNum; i++) {
|
|
lowId = String(i).padStart(2,'0');
|
|
highId = String(i+stepId).padStart(2,'0');
|
|
|
|
if (i===1) {
|
|
setAttrs({
|
|
"complicationsTextRight":lowId + " " + highId
|
|
});
|
|
}
|
|
|
|
swapEquipmentPositions(lowId, highId);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/* ---------------- */
|
|
/* Talent Functions */
|
|
/* ---------------- */
|
|
|
|
|
|
// Talent Selection
|
|
arrayOf(maxTalentNum).forEach(num => {
|
|
var button = "talent"+String(num).padStart(2,'0');
|
|
on(`clicked:${button}`, function() {
|
|
var attributes = new Object();
|
|
|
|
attributes.talentSelection = button;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
/* Talent Movers */
|
|
|
|
arrayOf(maxTalentNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxTalentNum ? 1 : num + 1).padStart(2,'0');
|
|
|
|
swapTalentPositions(lowId, highId);
|
|
});
|
|
|
|
|
|
function swapTalentPositions(lowId, highId) {
|
|
on("clicked:talentDown"+lowId+" clicked:talentUp"+highId, function () {
|
|
getAttrs(["talentName"+lowId, "talentName"+highId, "talentActivate"+lowId, "talentActivate"+highId, "talentDice"+lowId, "talentDice"+highId, "talentRollChance"+lowId, "talentRollChance"+highId, "talentText"+lowId, "talentText"+highId, "talentCP"+lowId, "talentCP"+highId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let theString = values["talentName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["talentName"+lowId] = "";
|
|
} else {
|
|
attributes["talentName"+lowId] = values["talentName"+highId];
|
|
}
|
|
|
|
theString = values["talentName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["talentName"+highId] = "";
|
|
} else {
|
|
attributes["talentName"+highId] = values["talentName"+lowId];
|
|
}
|
|
|
|
attributes["talentText"+lowId] = values["talentText"+highId];
|
|
attributes["talentText"+highId] = values["talentText"+lowId];
|
|
attributes["talentDice"+lowId] = values["talentDice"+highId];
|
|
attributes["talentDice"+highId] = values["talentDice"+lowId];
|
|
attributes["talentActivate"+lowId] = values["talentActivate"+highId];
|
|
attributes["talentActivate"+highId] = values["talentActivate"+lowId];
|
|
attributes["talentRollChance"+lowId] = values["talentRollChance"+highId];
|
|
attributes["talentRollChance"+highId] = values["talentRollChance"+lowId];
|
|
attributes["talentCP"+lowId] = values["talentCP"+highId];
|
|
attributes["talentCP"+highId] = values["talentCP"+lowId];
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
/* Keep selected talent slide visible when moved. */
|
|
arrayOf(maxTalentNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxTalentNum ? 1 : num + 1).padStart(2,'0');
|
|
on("clicked:talentDown"+lowId, function() {
|
|
setAttrs({
|
|
"talentSelection":"talent"+highId
|
|
});
|
|
});
|
|
});
|
|
|
|
arrayOf(maxTalentNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxTalentNum ? 1 : num + 1).padStart(2,'0');
|
|
on("clicked:talentUp"+highId, function() {
|
|
setAttrs({
|
|
"talentSelection":"talent"+lowId
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
arrayOf(maxTalentNum).forEach(num => {
|
|
var talentId = String(num).padStart(2,'0');
|
|
on(`clicked:showTalentRoll${talentId}`, (info) => {
|
|
getAttrs(["whisperToGM", "character_title", "dingbat", "talentDice"+talentId, "talentActivate"+talentId], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const lesserDingbat = " ⬩ ";
|
|
const needsActivation = (values["talentActivate"+talentId] === "on") ? true : false;
|
|
const hasDice = ((values["talentDice"+talentId] === "") || (values["talentDice"+talentId] === "0")) ? false : true;
|
|
let talentDice = values["talentDice"+talentId];
|
|
|
|
theRoll += "&{template:custom-show} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Perks & Talents" + lesserDingbat + "@{talentName"+talentId+"}}} ";
|
|
|
|
if (needsActivation) {
|
|
theRoll += "{{Activate On=@{talentRollChance"+talentId+"}}}";
|
|
}
|
|
|
|
if (hasDice) {
|
|
theRoll += "{{Talent Dice=@{talentDice"+talentId+"}}}";
|
|
}
|
|
|
|
theRoll += "{{desc=@{talentText"+talentId+"}}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Activate Talent XX
|
|
arrayOf(maxTalentNum).forEach(num => {
|
|
var talentId = String(num).padStart(2,'0');
|
|
on(`clicked:talentRoll${talentId}`, (info) => {
|
|
getAttrs(["whisperToGM", "character_title", "dingbat", "displayDegreeOfSuccess", "talentName"+talentId, "talentDice"+talentId, "talentActivate"+talentId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
var theRoll = values.whisperToGM||"";
|
|
const dispDoS = (values.displayDegreeOfSuccess === "on") ? true : false;
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const lesserDingbat = " ⬩ ";
|
|
const needsActivation = (values["talentActivate"+talentId] === "on") ? true : false;
|
|
const hasDice = ((values["talentDice"+talentId] === "") || (values["talentDice"+talentId] === "0")) ? false : true;
|
|
let talentDice = values["talentDice"+talentId];
|
|
let damageLabel = "Result";
|
|
|
|
theRoll += "&{template:custom-power-attack} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Perks & Talents " + lesserDingbat + "@{talentName"+talentId+"}}} ";
|
|
|
|
if (needsActivation) {
|
|
if (dispDoS) {
|
|
theRoll += "{{SUCCESS=[[@{talentRollChance" + talentId + "}[Talent Activation]-3d6cf6cs1[Roll]+(?{Modifiers|0})[Modifiers]]] }}";
|
|
} else {
|
|
theRoll += "{{Activate On = [[@{talentRollChance" + talentId + "}[Talent Activation]+(?{Modifiers|0})[Modifiers]]] }} {{Roll=[[3d6cf6cs1]]}}";
|
|
}
|
|
}
|
|
|
|
if (hasDice) {
|
|
talentDice = talentDice.replace(/[^\ddD\\+\\-]/g,"");
|
|
|
|
attributes.hiddenDamage = talentDice;
|
|
attributes.hiddenDamageType = "power";
|
|
attributes.hiddenMessage = values["talentName"+talentId];
|
|
attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsPower = "true";
|
|
attributes.hiddenIsMental = "false";
|
|
|
|
setAttrs(attributes);
|
|
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
}
|
|
|
|
theRoll += "{{desc=@{talentText"+talentId+"}}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/* ---------------------- */
|
|
/* Complication Functions */
|
|
/* ---------------------- */
|
|
|
|
// Complication Selection
|
|
arrayOf(maxComplicationNum).forEach(num => {
|
|
var button = "complication"+String(num).padStart(2,'0');
|
|
on(`clicked:${button}`, function() {
|
|
var attributes = new Object();
|
|
|
|
attributes.complicationSelection = button;
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
|
|
|
|
// Complication movers
|
|
arrayOf(maxComplicationNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxComplicationNum ? 1 : num + 1).padStart(2,'0');
|
|
|
|
swapComplicationPositions(lowId, highId);
|
|
});
|
|
|
|
|
|
function swapComplicationPositions(lowId, highId) {
|
|
on("clicked:complicationDown"+lowId+" clicked:complicationUp"+highId, function () {
|
|
getAttrs(["complicationName"+lowId, "complicationName"+highId, "complicationType"+lowId, "complicationType"+highId, "complicationDice"+lowId, "complicationDice"+highId, "complicationActivate"+lowId, "complicationActivate"+highId, "complicationRollChance"+lowId, "complicationRollChance"+highId, "complicationText"+lowId, "complicationText"+highId, "complicationCP"+lowId, "complicationCP"+highId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
let theString = values["complicationName"+highId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["complicationName"+lowId] = "";
|
|
} else {
|
|
attributes["complicationName"+lowId] = values["complicationName"+highId];
|
|
}
|
|
|
|
theString = values["complicationName"+lowId];
|
|
if ( (theString.length === 0) || (theString === null) ) {
|
|
attributes["complicationName"+highId] = "";
|
|
} else {
|
|
attributes["complicationName"+highId] = values["complicationName"+lowId];
|
|
}
|
|
|
|
attributes["complicationType"+lowId] = values["complicationType"+highId];
|
|
attributes["complicationType"+highId] = values["complicationType"+lowId];
|
|
attributes["complicationDice"+lowId] = values["complicationDice"+highId];
|
|
attributes["complicationDice"+highId] = values["complicationDice"+lowId];
|
|
attributes["complicationActivate"+lowId] = values["complicationActivate"+highId];
|
|
attributes["complicationActivate"+highId] = values["complicationActivate"+lowId];
|
|
attributes["complicationRollChance"+lowId] = values["complicationRollChance"+highId];
|
|
attributes["complicationRollChance"+highId] = values["complicationRollChance"+lowId];
|
|
attributes["complicationText"+lowId] = values["complicationText"+highId];
|
|
attributes["complicationText"+highId] = values["complicationText"+lowId];
|
|
attributes["complicationCP"+lowId] = values["complicationCP"+highId];
|
|
attributes["complicationCP"+highId] = values["complicationCP"+lowId];
|
|
|
|
setAttrs(attributes);
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
/* Keep selected complication slide visible when moved. */
|
|
arrayOf(maxComplicationNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxComplicationNum ? 1 : num + 1).padStart(2,'0');
|
|
on("clicked:complicationDown"+lowId, function() {
|
|
setAttrs({
|
|
"complicationSelection":"complication"+highId
|
|
});
|
|
});
|
|
});
|
|
|
|
arrayOf(maxComplicationNum).forEach(num => {
|
|
var lowId = String(num).padStart(2,'0');
|
|
var highId = String(num == maxComplicationNum ? 1 : num + 1).padStart(2,'0');
|
|
on("clicked:complicationUp"+highId, function() {
|
|
setAttrs({
|
|
"complicationSelection":"complication"+lowId
|
|
});
|
|
});
|
|
});
|
|
|
|
/* Show selected complication details. */
|
|
arrayOf(maxComplicationNum).forEach(num => {
|
|
var complicationId = String(num).padStart(2,'0');
|
|
on(`clicked:showComplicationRoll${complicationId}`, (info) => {
|
|
getAttrs(["whisperToGM", "character_title", "dingbat", "complicationDice"+complicationId, "complicationActivate"+complicationId], function(values) {
|
|
var theRoll = values.whisperToGM||"";
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const lesserDingbat = " ⬩ ";
|
|
const needsActivation = (values["complicationActivate"+complicationId] === "on") ? true : false;
|
|
const hasDice = ((values["complicationDice"+complicationId] === "") || (values["complicationDice"+complicationId] === "0")) ? false : true;
|
|
let talentDice = values["complicationDice"+complicationId];
|
|
|
|
theRoll += "&{template:custom-show} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Complication " + lesserDingbat + "@{complicationName"+complicationId+"}}} ";
|
|
|
|
if (needsActivation) {
|
|
theRoll += "{{Activate On=@{complicationRollChance"+complicationId+"}}}";
|
|
}
|
|
|
|
if (hasDice) {
|
|
theRoll += "{{Complication Dice=@{complicationDice"+complicationId+"}}}";
|
|
}
|
|
|
|
theRoll += "{{desc=@{complicationText"+complicationId+"}}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
// Activate Complication XX
|
|
arrayOf(maxComplicationNum).forEach(num => {
|
|
var complicationId = String(num).padStart(2,'0');
|
|
on(`clicked:complicationRoll${complicationId}`, (info) => {
|
|
getAttrs(["whisperToGM", "character_title", "dingbat", "displayDegreeOfSuccess", "complicationName"+complicationId, "complicationDice"+complicationId, "complicationActivate"+complicationId], function(values) {
|
|
var attributes = new Object();
|
|
|
|
var theRoll = values.whisperToGM||"";
|
|
const dispDoS = (values.displayDegreeOfSuccess === "on") ? true : false;
|
|
const dingbat = ((values.character_title).replace(/\s/g, '') != '') ? (" "+values.dingbat+" ") : "";
|
|
const lesserDingbat = " ⬩ ";
|
|
const needsActivation = (values["complicationActivate"+complicationId] === "on") ? true : false;
|
|
const hasDice = ((values["complicationDice"+complicationId] === "") || (values["complicationDice"+complicationId] === "0")) ? false : true;
|
|
let complicationDice = values["complicationDice"+complicationId];
|
|
let damageLabel = "Result";
|
|
|
|
theRoll += "&{template:custom-power-attack} ";
|
|
theRoll += "{{title=@{character_name}" + dingbat + "@{character_title}}} ";
|
|
theRoll += "{{subtitle= Complication " + lesserDingbat + "@{complicationName"+complicationId+"}}} ";
|
|
|
|
if (needsActivation) {
|
|
if (dispDoS) {
|
|
theRoll += "{{SUCCESS=[[@{complicationRollChance" + complicationId + "}[Complication Activation]-3d6cf6cs1[Roll]+(?{Modifiers|0})[Modifiers]]] }}";
|
|
} else {
|
|
theRoll += "{{Activate On = [[@{complicationRollChance" + complicationId + "}[Complication Activation]+(?{Modifiers|0})[Modifiers]]] }} {{Roll=[[3d6cf6cs1]]}}";
|
|
}
|
|
}
|
|
|
|
if (hasDice) {
|
|
complicationDice = complicationDice.replace(/[^\ddD\\+\\-]/g,"");
|
|
|
|
attributes.hiddenDamage = complicationDice;
|
|
attributes.hiddenDamageType = "power";
|
|
attributes.hiddenMessage = values["complicationName"+complicationId];
|
|
attributes.hiddenIsNormal = "false";
|
|
attributes.hiddenIsPower = "true";
|
|
attributes.hiddenIsMental = "false";
|
|
|
|
setAttrs(attributes);
|
|
|
|
theRoll += "{{" + damageLabel + " = [Roll](~hiddenDamageRoll)}}";
|
|
}
|
|
|
|
theRoll += "{{desc=@{complicationText"+complicationId+"}}}";
|
|
|
|
startRoll(theRoll, (results) => {
|
|
finishRoll(results.rollId, {});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
// End sheet workers
|
|
|
|
</script> |